/*!
 * Materialize v0.97.0 (http://materializecss.com)
 * Copyright 2014-2015 Materialize
 * MIT License (https://raw.githubusercontent.com/Dogfalo/materialize/master/LICENSE)
 */
/*
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
 *
 * Uses the built in easing capabilities added In jQuery 1.1
 * to offer multiple easing options
 *
 * TERMS OF USE - jQuery Easing
 *
 * Open source under the BSD License.
 *
 * Copyright © 2008 George McGinley Smith
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice, this list of
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list
 * of conditions and the following disclaimer in the documentation and/or other materials
 * provided with the distribution.
 *
 * Neither the name of the author nor the names of contributors may be used to endorse
 * or promote products derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 *
*/

// t: current time, b: begInnIng value, c: change In value, d: duration
jQuery.easing['jswing'] = jQuery.easing['swing'];

jQuery.extend( jQuery.easing,
{
	def: 'easeOutQuad',
	swing: function (x, t, b, c, d) {
		//alert(jQuery.easing.default);
		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
	},
	easeInQuad: function (x, t, b, c, d) {
		return c*(t/=d)*t + b;
	},
	easeOutQuad: function (x, t, b, c, d) {
		return -c *(t/=d)*(t-2) + b;
	},
	easeInOutQuad: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t + b;
		return -c/2 * ((--t)*(t-2) - 1) + b;
	},
	easeInCubic: function (x, t, b, c, d) {
		return c*(t/=d)*t*t + b;
	},
	easeOutCubic: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t + 1) + b;
	},
	easeInOutCubic: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t + b;
		return c/2*((t-=2)*t*t + 2) + b;
	},
	easeInQuart: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t + b;
	},
	easeOutQuart: function (x, t, b, c, d) {
		return -c * ((t=t/d-1)*t*t*t - 1) + b;
	},
	easeInOutQuart: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;
	},
	easeInQuint: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t*t + b;
	},
	easeOutQuint: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t*t*t + 1) + b;
	},
	easeInOutQuint: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
		return c/2*((t-=2)*t*t*t*t + 2) + b;
	},
	easeInSine: function (x, t, b, c, d) {
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
	},
	easeOutSine: function (x, t, b, c, d) {
		return c * Math.sin(t/d * (Math.PI/2)) + b;
	},
	easeInOutSine: function (x, t, b, c, d) {
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
	},
	easeInExpo: function (x, t, b, c, d) {
		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
	},
	easeOutExpo: function (x, t, b, c, d) {
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
	},
	easeInOutExpo: function (x, t, b, c, d) {
		if (t==0) return b;
		if (t==d) return b+c;
		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
	},
	easeInCirc: function (x, t, b, c, d) {
		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
	},
	easeOutCirc: function (x, t, b, c, d) {
		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
	},
	easeInOutCirc: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
	},
	easeInElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
	},
	easeOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
	},
	easeInOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
	},
	easeInBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*(t/=d)*t*((s+1)*t - s) + b;
	},
	easeOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
	},
	easeInOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
	},
	easeInBounce: function (x, t, b, c, d) {
		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
	},
	easeOutBounce: function (x, t, b, c, d) {
		if ((t/=d) < (1/2.75)) {
			return c*(7.5625*t*t) + b;
		} else if (t < (2/2.75)) {
			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
		} else if (t < (2.5/2.75)) {
			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
		} else {
			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
		}
	},
	easeInOutBounce: function (x, t, b, c, d) {
		if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
	}
});

/*
 *
 * TERMS OF USE - EASING EQUATIONS
 *
 * Open source under the BSD License.
 *
 * Copyright © 2001 Robert Penner
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification,
 * are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice, this list of
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list
 * of conditions and the following disclaimer in the documentation and/or other materials
 * provided with the distribution.
 *
 * Neither the name of the author nor the names of contributors may be used to endorse
 * or promote products derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 */;    // Custom Easing
    jQuery.extend( jQuery.easing,
    {
      easeInOutMaterial: function (x, t, b, c, d) {
        if ((t/=d/2) < 1) return c/2*t*t + b;
        return c/4*((t-=2)*t*t + 2) + b;
      }
    });

;/*! VelocityJS.org (1.2.2). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */
/*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */
!function(e){function t(e){var t=e.length,r=$.type(e);return"function"===r||$.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===r||0===t||"number"==typeof t&&t>0&&t-1 in e}if(!e.jQuery){var $=function(e,t){return new $.fn.init(e,t)};$.isWindow=function(e){return null!=e&&e==e.window},$.type=function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?a[o.call(e)]||"object":typeof e},$.isArray=Array.isArray||function(e){return"array"===$.type(e)},$.isPlainObject=function(e){var t;if(!e||"object"!==$.type(e)||e.nodeType||$.isWindow(e))return!1;try{if(e.constructor&&!n.call(e,"constructor")&&!n.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}for(t in e);return void 0===t||n.call(e,t)},$.each=function(e,r,a){var n,o=0,i=e.length,s=t(e);if(a){if(s)for(;i>o&&(n=r.apply(e[o],a),n!==!1);o++);else for(o in e)if(n=r.apply(e[o],a),n===!1)break}else if(s)for(;i>o&&(n=r.call(e[o],o,e[o]),n!==!1);o++);else for(o in e)if(n=r.call(e[o],o,e[o]),n===!1)break;return e},$.data=function(e,t,a){if(void 0===a){var n=e[$.expando],o=n&&r[n];if(void 0===t)return o;if(o&&t in o)return o[t]}else if(void 0!==t){var n=e[$.expando]||(e[$.expando]=++$.uuid);return r[n]=r[n]||{},r[n][t]=a,a}},$.removeData=function(e,t){var a=e[$.expando],n=a&&r[a];n&&$.each(t,function(e,t){delete n[t]})},$.extend=function(){var e,t,r,a,n,o,i=arguments[0]||{},s=1,l=arguments.length,u=!1;for("boolean"==typeof i&&(u=i,i=arguments[s]||{},s++),"object"!=typeof i&&"function"!==$.type(i)&&(i={}),s===l&&(i=this,s--);l>s;s++)if(null!=(n=arguments[s]))for(a in n)e=i[a],r=n[a],i!==r&&(u&&r&&($.isPlainObject(r)||(t=$.isArray(r)))?(t?(t=!1,o=e&&$.isArray(e)?e:[]):o=e&&$.isPlainObject(e)?e:{},i[a]=$.extend(u,o,r)):void 0!==r&&(i[a]=r));return i},$.queue=function(e,r,a){function n(e,r){var a=r||[];return null!=e&&(t(Object(e))?!function(e,t){for(var r=+t.length,a=0,n=e.length;r>a;)e[n++]=t[a++];if(r!==r)for(;void 0!==t[a];)e[n++]=t[a++];return e.length=n,e}(a,"string"==typeof e?[e]:e):[].push.call(a,e)),a}if(e){r=(r||"fx")+"queue";var o=$.data(e,r);return a?(!o||$.isArray(a)?o=$.data(e,r,n(a)):o.push(a),o):o||[]}},$.dequeue=function(e,t){$.each(e.nodeType?[e]:e,function(e,r){t=t||"fx";var a=$.queue(r,t),n=a.shift();"inprogress"===n&&(n=a.shift()),n&&("fx"===t&&a.unshift("inprogress"),n.call(r,function(){$.dequeue(r,t)}))})},$.fn=$.prototype={init:function(e){if(e.nodeType)return this[0]=e,this;throw new Error("Not a DOM node.")},offset:function(){var t=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:t.top+(e.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:t.left+(e.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function e(){for(var e=this.offsetParent||document;e&&"html"===!e.nodeType.toLowerCase&&"static"===e.style.position;)e=e.offsetParent;return e||document}var t=this[0],e=e.apply(t),r=this.offset(),a=/^(?:body|html)$/i.test(e.nodeName)?{top:0,left:0}:$(e).offset();return r.top-=parseFloat(t.style.marginTop)||0,r.left-=parseFloat(t.style.marginLeft)||0,e.style&&(a.top+=parseFloat(e.style.borderTopWidth)||0,a.left+=parseFloat(e.style.borderLeftWidth)||0),{top:r.top-a.top,left:r.left-a.left}}};var r={};$.expando="velocity"+(new Date).getTime(),$.uuid=0;for(var a={},n=a.hasOwnProperty,o=a.toString,i="Boolean Number String Function Array Date RegExp Object Error".split(" "),s=0;s<i.length;s++)a["[object "+i[s]+"]"]=i[s].toLowerCase();$.fn.init.prototype=$.fn,e.Velocity={Utilities:$}}}(window),function(e){"object"==typeof module&&"object"==typeof module.exports?module.exports=e():"function"==typeof define&&define.amd?define(e):e()}(function(){return function(e,t,r,a){function n(e){for(var t=-1,r=e?e.length:0,a=[];++t<r;){var n=e[t];n&&a.push(n)}return a}function o(e){return g.isWrapped(e)?e=[].slice.call(e):g.isNode(e)&&(e=[e]),e}function i(e){var t=$.data(e,"velocity");return null===t?a:t}function s(e){return function(t){return Math.round(t*e)*(1/e)}}function l(e,r,a,n){function o(e,t){return 1-3*t+3*e}function i(e,t){return 3*t-6*e}function s(e){return 3*e}function l(e,t,r){return((o(t,r)*e+i(t,r))*e+s(t))*e}function u(e,t,r){return 3*o(t,r)*e*e+2*i(t,r)*e+s(t)}function c(t,r){for(var n=0;m>n;++n){var o=u(r,e,a);if(0===o)return r;var i=l(r,e,a)-t;r-=i/o}return r}function p(){for(var t=0;b>t;++t)w[t]=l(t*x,e,a)}function f(t,r,n){var o,i,s=0;do i=r+(n-r)/2,o=l(i,e,a)-t,o>0?n=i:r=i;while(Math.abs(o)>h&&++s<v);return i}function d(t){for(var r=0,n=1,o=b-1;n!=o&&w[n]<=t;++n)r+=x;--n;var i=(t-w[n])/(w[n+1]-w[n]),s=r+i*x,l=u(s,e,a);return l>=y?c(t,s):0==l?s:f(t,r,r+x)}function g(){V=!0,(e!=r||a!=n)&&p()}var m=4,y=.001,h=1e-7,v=10,b=11,x=1/(b-1),S="Float32Array"in t;if(4!==arguments.length)return!1;for(var P=0;4>P;++P)if("number"!=typeof arguments[P]||isNaN(arguments[P])||!isFinite(arguments[P]))return!1;e=Math.min(e,1),a=Math.min(a,1),e=Math.max(e,0),a=Math.max(a,0);var w=S?new Float32Array(b):new Array(b),V=!1,C=function(t){return V||g(),e===r&&a===n?t:0===t?0:1===t?1:l(d(t),r,n)};C.getControlPoints=function(){return[{x:e,y:r},{x:a,y:n}]};var T="generateBezier("+[e,r,a,n]+")";return C.toString=function(){return T},C}function u(e,t){var r=e;return g.isString(e)?v.Easings[e]||(r=!1):r=g.isArray(e)&&1===e.length?s.apply(null,e):g.isArray(e)&&2===e.length?b.apply(null,e.concat([t])):g.isArray(e)&&4===e.length?l.apply(null,e):!1,r===!1&&(r=v.Easings[v.defaults.easing]?v.defaults.easing:h),r}function c(e){if(e){var t=(new Date).getTime(),r=v.State.calls.length;r>1e4&&(v.State.calls=n(v.State.calls));for(var o=0;r>o;o++)if(v.State.calls[o]){var s=v.State.calls[o],l=s[0],u=s[2],f=s[3],d=!!f,m=null;f||(f=v.State.calls[o][3]=t-16);for(var y=Math.min((t-f)/u.duration,1),h=0,b=l.length;b>h;h++){var S=l[h],w=S.element;if(i(w)){var V=!1;if(u.display!==a&&null!==u.display&&"none"!==u.display){if("flex"===u.display){var C=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];$.each(C,function(e,t){x.setPropertyValue(w,"display",t)})}x.setPropertyValue(w,"display",u.display)}u.visibility!==a&&"hidden"!==u.visibility&&x.setPropertyValue(w,"visibility",u.visibility);for(var T in S)if("element"!==T){var k=S[T],A,F=g.isString(k.easing)?v.Easings[k.easing]:k.easing;if(1===y)A=k.endValue;else{var E=k.endValue-k.startValue;if(A=k.startValue+E*F(y,u,E),!d&&A===k.currentValue)continue}if(k.currentValue=A,"tween"===T)m=A;else{if(x.Hooks.registered[T]){var j=x.Hooks.getRoot(T),H=i(w).rootPropertyValueCache[j];H&&(k.rootPropertyValue=H)}var N=x.setPropertyValue(w,T,k.currentValue+(0===parseFloat(A)?"":k.unitType),k.rootPropertyValue,k.scrollData);x.Hooks.registered[T]&&(i(w).rootPropertyValueCache[j]=x.Normalizations.registered[j]?x.Normalizations.registered[j]("extract",null,N[1]):N[1]),"transform"===N[0]&&(V=!0)}}u.mobileHA&&i(w).transformCache.translate3d===a&&(i(w).transformCache.translate3d="(0px, 0px, 0px)",V=!0),V&&x.flushTransformCache(w)}}u.display!==a&&"none"!==u.display&&(v.State.calls[o][2].display=!1),u.visibility!==a&&"hidden"!==u.visibility&&(v.State.calls[o][2].visibility=!1),u.progress&&u.progress.call(s[1],s[1],y,Math.max(0,f+u.duration-t),f,m),1===y&&p(o)}}v.State.isTicking&&P(c)}function p(e,t){if(!v.State.calls[e])return!1;for(var r=v.State.calls[e][0],n=v.State.calls[e][1],o=v.State.calls[e][2],s=v.State.calls[e][4],l=!1,u=0,c=r.length;c>u;u++){var p=r[u].element;if(t||o.loop||("none"===o.display&&x.setPropertyValue(p,"display",o.display),"hidden"===o.visibility&&x.setPropertyValue(p,"visibility",o.visibility)),o.loop!==!0&&($.queue(p)[1]===a||!/\.velocityQueueEntryFlag/i.test($.queue(p)[1]))&&i(p)){i(p).isAnimating=!1,i(p).rootPropertyValueCache={};var f=!1;$.each(x.Lists.transforms3D,function(e,t){var r=/^scale/.test(t)?1:0,n=i(p).transformCache[t];i(p).transformCache[t]!==a&&new RegExp("^\\("+r+"[^.]").test(n)&&(f=!0,delete i(p).transformCache[t])}),o.mobileHA&&(f=!0,delete i(p).transformCache.translate3d),f&&x.flushTransformCache(p),x.Values.removeClass(p,"velocity-animating")}if(!t&&o.complete&&!o.loop&&u===c-1)try{o.complete.call(n,n)}catch(d){setTimeout(function(){throw d},1)}s&&o.loop!==!0&&s(n),i(p)&&o.loop===!0&&!t&&($.each(i(p).tweensContainer,function(e,t){/^rotate/.test(e)&&360===parseFloat(t.endValue)&&(t.endValue=0,t.startValue=360),/^backgroundPosition/.test(e)&&100===parseFloat(t.endValue)&&"%"===t.unitType&&(t.endValue=0,t.startValue=100)}),v(p,"reverse",{loop:!0,delay:o.delay})),o.queue!==!1&&$.dequeue(p,o.queue)}v.State.calls[e]=!1;for(var g=0,m=v.State.calls.length;m>g;g++)if(v.State.calls[g]!==!1){l=!0;break}l===!1&&(v.State.isTicking=!1,delete v.State.calls,v.State.calls=[])}var f=function(){if(r.documentMode)return r.documentMode;for(var e=7;e>4;e--){var t=r.createElement("div");if(t.innerHTML="<!--[if IE "+e+"]><span></span><![endif]-->",t.getElementsByTagName("span").length)return t=null,e}return a}(),d=function(){var e=0;return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||function(t){var r=(new Date).getTime(),a;return a=Math.max(0,16-(r-e)),e=r+a,setTimeout(function(){t(r+a)},a)}}(),g={isString:function(e){return"string"==typeof e},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},isFunction:function(e){return"[object Function]"===Object.prototype.toString.call(e)},isNode:function(e){return e&&e.nodeType},isNodeList:function(e){return"object"==typeof e&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(e))&&e.length!==a&&(0===e.length||"object"==typeof e[0]&&e[0].nodeType>0)},isWrapped:function(e){return e&&(e.jquery||t.Zepto&&t.Zepto.zepto.isZ(e))},isSVG:function(e){return t.SVGElement&&e instanceof t.SVGElement},isEmptyObject:function(e){for(var t in e)return!1;return!0}},$,m=!1;if(e.fn&&e.fn.jquery?($=e,m=!0):$=t.Velocity.Utilities,8>=f&&!m)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(7>=f)return void(jQuery.fn.velocity=jQuery.fn.animate);var y=400,h="swing",v={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:t.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:r.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:$,Redirects:{},Easings:{},Promise:t.Promise,defaults:{queue:"",duration:y,easing:h,begin:a,complete:a,progress:a,display:a,visibility:a,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(e){$.data(e,"velocity",{isSVG:g.isSVG(e),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:2},debug:!1};t.pageYOffset!==a?(v.State.scrollAnchor=t,v.State.scrollPropertyLeft="pageXOffset",v.State.scrollPropertyTop="pageYOffset"):(v.State.scrollAnchor=r.documentElement||r.body.parentNode||r.body,v.State.scrollPropertyLeft="scrollLeft",v.State.scrollPropertyTop="scrollTop");var b=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,r,a){var n={x:t.x+a.dx*r,v:t.v+a.dv*r,tension:t.tension,friction:t.friction};return{dx:n.v,dv:e(n)}}function r(r,a){var n={dx:r.v,dv:e(r)},o=t(r,.5*a,n),i=t(r,.5*a,o),s=t(r,a,i),l=1/6*(n.dx+2*(o.dx+i.dx)+s.dx),u=1/6*(n.dv+2*(o.dv+i.dv)+s.dv);return r.x=r.x+l*a,r.v=r.v+u*a,r}return function a(e,t,n){var o={x:-1,v:0,tension:null,friction:null},i=[0],s=0,l=1e-4,u=.016,c,p,f;for(e=parseFloat(e)||500,t=parseFloat(t)||20,n=n||null,o.tension=e,o.friction=t,c=null!==n,c?(s=a(e,t),p=s/n*u):p=u;;)if(f=r(f||o,p),i.push(1+f.x),s+=16,!(Math.abs(f.x)>l&&Math.abs(f.v)>l))break;return c?function(e){return i[e*(i.length-1)|0]}:s}}();v.Easings={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},spring:function(e){return 1-Math.cos(4.5*e*Math.PI)*Math.exp(6*-e)}},$.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(e,t){v.Easings[t[0]]=l.apply(null,t[1])});var x=v.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var e=0;e<x.Lists.colors.length;e++){var t="color"===x.Lists.colors[e]?"0 0 0 1":"255 255 255 1";x.Hooks.templates[x.Lists.colors[e]]=["Red Green Blue Alpha",t]}var r,a,n;if(f)for(r in x.Hooks.templates){a=x.Hooks.templates[r],n=a[0].split(" ");var o=a[1].match(x.RegEx.valueSplit);"Color"===n[0]&&(n.push(n.shift()),o.push(o.shift()),x.Hooks.templates[r]=[n.join(" "),o.join(" ")])}for(r in x.Hooks.templates){a=x.Hooks.templates[r],n=a[0].split(" ");for(var e in n){var i=r+n[e],s=e;x.Hooks.registered[i]=[r,s]}}},getRoot:function(e){var t=x.Hooks.registered[e];return t?t[0]:e},cleanRootPropertyValue:function(e,t){return x.RegEx.valueUnwrap.test(t)&&(t=t.match(x.RegEx.valueUnwrap)[1]),x.Values.isCSSNullValue(t)&&(t=x.Hooks.templates[e][1]),t},extractValue:function(e,t){var r=x.Hooks.registered[e];if(r){var a=r[0],n=r[1];return t=x.Hooks.cleanRootPropertyValue(a,t),t.toString().match(x.RegEx.valueSplit)[n]}return t},injectValue:function(e,t,r){var a=x.Hooks.registered[e];if(a){var n=a[0],o=a[1],i,s;return r=x.Hooks.cleanRootPropertyValue(n,r),i=r.toString().match(x.RegEx.valueSplit),i[o]=t,s=i.join(" ")}return r}},Normalizations:{registered:{clip:function(e,t,r){switch(e){case"name":return"clip";case"extract":var a;return x.RegEx.wrappedValueAlreadyExtracted.test(r)?a=r:(a=r.toString().match(x.RegEx.valueUnwrap),a=a?a[1].replace(/,(\s+)?/g," "):r),a;case"inject":return"rect("+r+")"}},blur:function(e,t,r){switch(e){case"name":return v.State.isFirefox?"filter":"-webkit-filter";case"extract":var a=parseFloat(r);if(!a&&0!==a){var n=r.toString().match(/blur\(([0-9]+[A-z]+)\)/i);a=n?n[1]:0}return a;case"inject":return parseFloat(r)?"blur("+r+")":"none"}},opacity:function(e,t,r){if(8>=f)switch(e){case"name":return"filter";case"extract":var a=r.toString().match(/alpha\(opacity=(.*)\)/i);return r=a?a[1]/100:1;case"inject":return t.style.zoom=1,parseFloat(r)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(r),10)+")"}else switch(e){case"name":return"opacity";case"extract":return r;case"inject":return r}}},register:function(){9>=f||v.State.isGingerbread||(x.Lists.transformsBase=x.Lists.transformsBase.concat(x.Lists.transforms3D));for(var e=0;e<x.Lists.transformsBase.length;e++)!function(){var t=x.Lists.transformsBase[e];x.Normalizations.registered[t]=function(e,r,n){switch(e){case"name":return"transform";case"extract":return i(r)===a||i(r).transformCache[t]===a?/^scale/i.test(t)?1:0:i(r).transformCache[t].replace(/[()]/g,"");case"inject":var o=!1;switch(t.substr(0,t.length-1)){case"translate":o=!/(%|px|em|rem|vw|vh|\d)$/i.test(n);break;case"scal":case"scale":v.State.isAndroid&&i(r).transformCache[t]===a&&1>n&&(n=1),o=!/(\d)$/i.test(n);break;case"skew":o=!/(deg|\d)$/i.test(n);break;case"rotate":o=!/(deg|\d)$/i.test(n)}return o||(i(r).transformCache[t]="("+n+")"),i(r).transformCache[t]}}}();for(var e=0;e<x.Lists.colors.length;e++)!function(){var t=x.Lists.colors[e];x.Normalizations.registered[t]=function(e,r,n){switch(e){case"name":return t;case"extract":var o;if(x.RegEx.wrappedValueAlreadyExtracted.test(n))o=n;else{var i,s={black:"rgb(0, 0, 0)",blue:"rgb(0, 0, 255)",gray:"rgb(128, 128, 128)",green:"rgb(0, 128, 0)",red:"rgb(255, 0, 0)",white:"rgb(255, 255, 255)"};/^[A-z]+$/i.test(n)?i=s[n]!==a?s[n]:s.black:x.RegEx.isHex.test(n)?i="rgb("+x.Values.hexToRgb(n).join(" ")+")":/^rgba?\(/i.test(n)||(i=s.black),o=(i||n).toString().match(x.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g," ")}return 8>=f||3!==o.split(" ").length||(o+=" 1"),o;case"inject":return 8>=f?4===n.split(" ").length&&(n=n.split(/\s+/).slice(0,3).join(" ")):3===n.split(" ").length&&(n+=" 1"),(8>=f?"rgb":"rgba")+"("+n.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(e){return e.replace(/-(\w)/g,function(e,t){return t.toUpperCase()})},SVGAttribute:function(e){var t="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(f||v.State.isAndroid&&!v.State.isChrome)&&(t+="|transform"),new RegExp("^("+t+")$","i").test(e)},prefixCheck:function(e){if(v.State.prefixMatches[e])return[v.State.prefixMatches[e],!0];for(var t=["","Webkit","Moz","ms","O"],r=0,a=t.length;a>r;r++){var n;if(n=0===r?e:t[r]+e.replace(/^\w/,function(e){return e.toUpperCase()}),g.isString(v.State.prefixElement.style[n]))return v.State.prefixMatches[e]=n,[n,!0]}return[e,!1]}},Values:{hexToRgb:function(e){var t=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,r=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,a;return e=e.replace(t,function(e,t,r,a){return t+t+r+r+a+a}),a=r.exec(e),a?[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16)]:[0,0,0]},isCSSNullValue:function(e){return 0==e||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(e)},getUnitType:function(e){return/^(rotate|skew)/i.test(e)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(e)?"":"px"},getDisplayType:function(e){var t=e&&e.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(t)?"inline":/^(li)$/i.test(t)?"list-item":/^(tr)$/i.test(t)?"table-row":/^(table)$/i.test(t)?"table":/^(tbody)$/i.test(t)?"table-row-group":"block"},addClass:function(e,t){e.classList?e.classList.add(t):e.className+=(e.className.length?" ":"")+t},removeClass:function(e,t){e.classList?e.classList.remove(t):e.className=e.className.toString().replace(new RegExp("(^|\\s)"+t.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(e,r,n,o){function s(e,r){function n(){u&&x.setPropertyValue(e,"display","none")}var l=0;if(8>=f)l=$.css(e,r);else{var u=!1;if(/^(width|height)$/.test(r)&&0===x.getPropertyValue(e,"display")&&(u=!0,x.setPropertyValue(e,"display",x.Values.getDisplayType(e))),!o){if("height"===r&&"border-box"!==x.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var c=e.offsetHeight-(parseFloat(x.getPropertyValue(e,"borderTopWidth"))||0)-(parseFloat(x.getPropertyValue(e,"borderBottomWidth"))||0)-(parseFloat(x.getPropertyValue(e,"paddingTop"))||0)-(parseFloat(x.getPropertyValue(e,"paddingBottom"))||0);return n(),c}if("width"===r&&"border-box"!==x.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var p=e.offsetWidth-(parseFloat(x.getPropertyValue(e,"borderLeftWidth"))||0)-(parseFloat(x.getPropertyValue(e,"borderRightWidth"))||0)-(parseFloat(x.getPropertyValue(e,"paddingLeft"))||0)-(parseFloat(x.getPropertyValue(e,"paddingRight"))||0);return n(),p}}var d;d=i(e)===a?t.getComputedStyle(e,null):i(e).computedStyle?i(e).computedStyle:i(e).computedStyle=t.getComputedStyle(e,null),"borderColor"===r&&(r="borderTopColor"),l=9===f&&"filter"===r?d.getPropertyValue(r):d[r],(""===l||null===l)&&(l=e.style[r]),n()}if("auto"===l&&/^(top|right|bottom|left)$/i.test(r)){var g=s(e,"position");("fixed"===g||"absolute"===g&&/top|left/i.test(r))&&(l=$(e).position()[r]+"px")}return l}var l;if(x.Hooks.registered[r]){var u=r,c=x.Hooks.getRoot(u);n===a&&(n=x.getPropertyValue(e,x.Names.prefixCheck(c)[0])),x.Normalizations.registered[c]&&(n=x.Normalizations.registered[c]("extract",e,n)),l=x.Hooks.extractValue(u,n)}else if(x.Normalizations.registered[r]){var p,d;p=x.Normalizations.registered[r]("name",e),"transform"!==p&&(d=s(e,x.Names.prefixCheck(p)[0]),x.Values.isCSSNullValue(d)&&x.Hooks.templates[r]&&(d=x.Hooks.templates[r][1])),l=x.Normalizations.registered[r]("extract",e,d)}if(!/^[\d-]/.test(l))if(i(e)&&i(e).isSVG&&x.Names.SVGAttribute(r))if(/^(height|width)$/i.test(r))try{l=e.getBBox()[r]}catch(g){l=0}else l=e.getAttribute(r);else l=s(e,x.Names.prefixCheck(r)[0]);return x.Values.isCSSNullValue(l)&&(l=0),v.debug>=2&&console.log("Get "+r+": "+l),l},setPropertyValue:function(e,r,a,n,o){var s=r;if("scroll"===r)o.container?o.container["scroll"+o.direction]=a:"Left"===o.direction?t.scrollTo(a,o.alternateValue):t.scrollTo(o.alternateValue,a);else if(x.Normalizations.registered[r]&&"transform"===x.Normalizations.registered[r]("name",e))x.Normalizations.registered[r]("inject",e,a),s="transform",a=i(e).transformCache[r];else{if(x.Hooks.registered[r]){var l=r,u=x.Hooks.getRoot(r);n=n||x.getPropertyValue(e,u),a=x.Hooks.injectValue(l,a,n),r=u}if(x.Normalizations.registered[r]&&(a=x.Normalizations.registered[r]("inject",e,a),r=x.Normalizations.registered[r]("name",e)),s=x.Names.prefixCheck(r)[0],8>=f)try{e.style[s]=a}catch(c){v.debug&&console.log("Browser does not support ["+a+"] for ["+s+"]")}else i(e)&&i(e).isSVG&&x.Names.SVGAttribute(r)?e.setAttribute(r,a):e.style[s]=a;v.debug>=2&&console.log("Set "+r+" ("+s+"): "+a)}return[s,a]},flushTransformCache:function(e){function t(t){return parseFloat(x.getPropertyValue(e,t))}var r="";if((f||v.State.isAndroid&&!v.State.isChrome)&&i(e).isSVG){var a={translate:[t("translateX"),t("translateY")],skewX:[t("skewX")],skewY:[t("skewY")],scale:1!==t("scale")?[t("scale"),t("scale")]:[t("scaleX"),t("scaleY")],rotate:[t("rotateZ"),0,0]};$.each(i(e).transformCache,function(e){/^translate/i.test(e)?e="translate":/^scale/i.test(e)?e="scale":/^rotate/i.test(e)&&(e="rotate"),a[e]&&(r+=e+"("+a[e].join(" ")+") ",delete a[e])})}else{var n,o;$.each(i(e).transformCache,function(t){return n=i(e).transformCache[t],"transformPerspective"===t?(o=n,!0):(9===f&&"rotateZ"===t&&(t="rotate"),void(r+=t+n+" "))}),o&&(r="perspective"+o+" "+r)}x.setPropertyValue(e,"transform",r)}};x.Hooks.register(),x.Normalizations.register(),v.hook=function(e,t,r){var n=a;return e=o(e),$.each(e,function(e,o){if(i(o)===a&&v.init(o),r===a)n===a&&(n=v.CSS.getPropertyValue(o,t));else{var s=v.CSS.setPropertyValue(o,t,r);"transform"===s[0]&&v.CSS.flushTransformCache(o),n=s}}),n};var S=function(){function e(){return l?T.promise||null:f}function n(){function e(e){function p(e,t){var r=a,i=a,s=a;return g.isArray(e)?(r=e[0],!g.isArray(e[1])&&/^[\d-]/.test(e[1])||g.isFunction(e[1])||x.RegEx.isHex.test(e[1])?s=e[1]:(g.isString(e[1])&&!x.RegEx.isHex.test(e[1])||g.isArray(e[1]))&&(i=t?e[1]:u(e[1],o.duration),e[2]!==a&&(s=e[2]))):r=e,t||(i=i||o.easing),g.isFunction(r)&&(r=r.call(n,w,P)),g.isFunction(s)&&(s=s.call(n,w,P)),[r||0,i,s]}function f(e,t){var r,a;return a=(t||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(e){return r=e,""}),r||(r=x.Values.getUnitType(e)),[a,r]}function d(){var e={myParent:n.parentNode||r.body,position:x.getPropertyValue(n,"position"),fontSize:x.getPropertyValue(n,"fontSize")},a=e.position===N.lastPosition&&e.myParent===N.lastParent,o=e.fontSize===N.lastFontSize;N.lastParent=e.myParent,N.lastPosition=e.position,N.lastFontSize=e.fontSize;var s=100,l={};if(o&&a)l.emToPx=N.lastEmToPx,l.percentToPxWidth=N.lastPercentToPxWidth,l.percentToPxHeight=N.lastPercentToPxHeight;else{var u=i(n).isSVG?r.createElementNS("http://www.w3.org/2000/svg","rect"):r.createElement("div");v.init(u),e.myParent.appendChild(u),$.each(["overflow","overflowX","overflowY"],function(e,t){v.CSS.setPropertyValue(u,t,"hidden")}),v.CSS.setPropertyValue(u,"position",e.position),v.CSS.setPropertyValue(u,"fontSize",e.fontSize),v.CSS.setPropertyValue(u,"boxSizing","content-box"),$.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(e,t){v.CSS.setPropertyValue(u,t,s+"%")}),v.CSS.setPropertyValue(u,"paddingLeft",s+"em"),l.percentToPxWidth=N.lastPercentToPxWidth=(parseFloat(x.getPropertyValue(u,"width",null,!0))||1)/s,l.percentToPxHeight=N.lastPercentToPxHeight=(parseFloat(x.getPropertyValue(u,"height",null,!0))||1)/s,l.emToPx=N.lastEmToPx=(parseFloat(x.getPropertyValue(u,"paddingLeft"))||1)/s,e.myParent.removeChild(u)}return null===N.remToPx&&(N.remToPx=parseFloat(x.getPropertyValue(r.body,"fontSize"))||16),null===N.vwToPx&&(N.vwToPx=parseFloat(t.innerWidth)/100,N.vhToPx=parseFloat(t.innerHeight)/100),l.remToPx=N.remToPx,l.vwToPx=N.vwToPx,l.vhToPx=N.vhToPx,v.debug>=1&&console.log("Unit ratios: "+JSON.stringify(l),n),l}if(o.begin&&0===w)try{o.begin.call(m,m)}catch(y){setTimeout(function(){throw y},1)}if("scroll"===k){var S=/^x$/i.test(o.axis)?"Left":"Top",V=parseFloat(o.offset)||0,C,A,F;o.container?g.isWrapped(o.container)||g.isNode(o.container)?(o.container=o.container[0]||o.container,C=o.container["scroll"+S],F=C+$(n).position()[S.toLowerCase()]+V):o.container=null:(C=v.State.scrollAnchor[v.State["scrollProperty"+S]],A=v.State.scrollAnchor[v.State["scrollProperty"+("Left"===S?"Top":"Left")]],F=$(n).offset()[S.toLowerCase()]+V),s={scroll:{rootPropertyValue:!1,startValue:C,currentValue:C,endValue:F,unitType:"",easing:o.easing,scrollData:{container:o.container,direction:S,alternateValue:A}},element:n},v.debug&&console.log("tweensContainer (scroll): ",s.scroll,n)}else if("reverse"===k){if(!i(n).tweensContainer)return void $.dequeue(n,o.queue);"none"===i(n).opts.display&&(i(n).opts.display="auto"),"hidden"===i(n).opts.visibility&&(i(n).opts.visibility="visible"),i(n).opts.loop=!1,i(n).opts.begin=null,i(n).opts.complete=null,b.easing||delete o.easing,b.duration||delete o.duration,o=$.extend({},i(n).opts,o);var E=$.extend(!0,{},i(n).tweensContainer);for(var j in E)if("element"!==j){var H=E[j].startValue;E[j].startValue=E[j].currentValue=E[j].endValue,E[j].endValue=H,g.isEmptyObject(b)||(E[j].easing=o.easing),v.debug&&console.log("reverse tweensContainer ("+j+"): "+JSON.stringify(E[j]),n)}s=E}else if("start"===k){var E;i(n).tweensContainer&&i(n).isAnimating===!0&&(E=i(n).tweensContainer),$.each(h,function(e,t){if(RegExp("^"+x.Lists.colors.join("$|^")+"$").test(e)){var r=p(t,!0),n=r[0],o=r[1],i=r[2];if(x.RegEx.isHex.test(n)){for(var s=["Red","Green","Blue"],l=x.Values.hexToRgb(n),u=i?x.Values.hexToRgb(i):a,c=0;c<s.length;c++){var f=[l[c]];o&&f.push(o),u!==a&&f.push(u[c]),h[e+s[c]]=f}delete h[e]}}});for(var R in h){var O=p(h[R]),z=O[0],q=O[1],M=O[2];R=x.Names.camelCase(R);var I=x.Hooks.getRoot(R),B=!1;if(i(n).isSVG||"tween"===I||x.Names.prefixCheck(I)[1]!==!1||x.Normalizations.registered[I]!==a){(o.display!==a&&null!==o.display&&"none"!==o.display||o.visibility!==a&&"hidden"!==o.visibility)&&/opacity|filter/.test(R)&&!M&&0!==z&&(M=0),o._cacheValues&&E&&E[R]?(M===a&&(M=E[R].endValue+E[R].unitType),B=i(n).rootPropertyValueCache[I]):x.Hooks.registered[R]?M===a?(B=x.getPropertyValue(n,I),M=x.getPropertyValue(n,R,B)):B=x.Hooks.templates[I][1]:M===a&&(M=x.getPropertyValue(n,R));var W,G,D,X=!1;if(W=f(R,M),M=W[0],D=W[1],W=f(R,z),z=W[0].replace(/^([+-\/*])=/,function(e,t){return X=t,""}),G=W[1],M=parseFloat(M)||0,z=parseFloat(z)||0,"%"===G&&(/^(fontSize|lineHeight)$/.test(R)?(z/=100,G="em"):/^scale/.test(R)?(z/=100,G=""):/(Red|Green|Blue)$/i.test(R)&&(z=z/100*255,G="")),/[\/*]/.test(X))G=D;else if(D!==G&&0!==M)if(0===z)G=D;else{l=l||d();var Y=/margin|padding|left|right|width|text|word|letter/i.test(R)||/X$/.test(R)||"x"===R?"x":"y";switch(D){case"%":M*="x"===Y?l.percentToPxWidth:l.percentToPxHeight;break;case"px":break;default:M*=l[D+"ToPx"]}switch(G){case"%":M*=1/("x"===Y?l.percentToPxWidth:l.percentToPxHeight);break;case"px":break;default:M*=1/l[G+"ToPx"]}}switch(X){case"+":z=M+z;break;case"-":z=M-z;break;case"*":z=M*z;break;case"/":z=M/z}s[R]={rootPropertyValue:B,startValue:M,currentValue:M,endValue:z,unitType:G,easing:q},v.debug&&console.log("tweensContainer ("+R+"): "+JSON.stringify(s[R]),n)}else v.debug&&console.log("Skipping ["+I+"] due to a lack of browser support.")}s.element=n}s.element&&(x.Values.addClass(n,"velocity-animating"),L.push(s),""===o.queue&&(i(n).tweensContainer=s,i(n).opts=o),i(n).isAnimating=!0,w===P-1?(v.State.calls.push([L,m,o,null,T.resolver]),v.State.isTicking===!1&&(v.State.isTicking=!0,c())):w++)}var n=this,o=$.extend({},v.defaults,b),s={},l;switch(i(n)===a&&v.init(n),parseFloat(o.delay)&&o.queue!==!1&&$.queue(n,o.queue,function(e){v.velocityQueueEntryFlag=!0,i(n).delayTimer={setTimeout:setTimeout(e,parseFloat(o.delay)),next:e}}),o.duration.toString().toLowerCase()){case"fast":o.duration=200;break;case"normal":o.duration=y;break;case"slow":o.duration=600;break;default:o.duration=parseFloat(o.duration)||1}v.mock!==!1&&(v.mock===!0?o.duration=o.delay=1:(o.duration*=parseFloat(v.mock)||1,o.delay*=parseFloat(v.mock)||1)),o.easing=u(o.easing,o.duration),o.begin&&!g.isFunction(o.begin)&&(o.begin=null),o.progress&&!g.isFunction(o.progress)&&(o.progress=null),o.complete&&!g.isFunction(o.complete)&&(o.complete=null),o.display!==a&&null!==o.display&&(o.display=o.display.toString().toLowerCase(),"auto"===o.display&&(o.display=v.CSS.Values.getDisplayType(n))),o.visibility!==a&&null!==o.visibility&&(o.visibility=o.visibility.toString().toLowerCase()),o.mobileHA=o.mobileHA&&v.State.isMobile&&!v.State.isGingerbread,o.queue===!1?o.delay?setTimeout(e,o.delay):e():$.queue(n,o.queue,function(t,r){return r===!0?(T.promise&&T.resolver(m),!0):(v.velocityQueueEntryFlag=!0,void e(t))}),""!==o.queue&&"fx"!==o.queue||"inprogress"===$.queue(n)[0]||$.dequeue(n)}var s=arguments[0]&&(arguments[0].p||$.isPlainObject(arguments[0].properties)&&!arguments[0].properties.names||g.isString(arguments[0].properties)),l,f,d,m,h,b;if(g.isWrapped(this)?(l=!1,d=0,m=this,f=this):(l=!0,d=1,m=s?arguments[0].elements||arguments[0].e:arguments[0]),m=o(m)){s?(h=arguments[0].properties||arguments[0].p,b=arguments[0].options||arguments[0].o):(h=arguments[d],b=arguments[d+1]);var P=m.length,w=0;if(!/^(stop|finish)$/i.test(h)&&!$.isPlainObject(b)){var V=d+1;b={};for(var C=V;C<arguments.length;C++)g.isArray(arguments[C])||!/^(fast|normal|slow)$/i.test(arguments[C])&&!/^\d/.test(arguments[C])?g.isString(arguments[C])||g.isArray(arguments[C])?b.easing=arguments[C]:g.isFunction(arguments[C])&&(b.complete=arguments[C]):b.duration=arguments[C]}var T={promise:null,resolver:null,rejecter:null};l&&v.Promise&&(T.promise=new v.Promise(function(e,t){T.resolver=e,T.rejecter=t}));var k;switch(h){case"scroll":k="scroll";break;case"reverse":k="reverse";break;case"finish":case"stop":$.each(m,function(e,t){i(t)&&i(t).delayTimer&&(clearTimeout(i(t).delayTimer.setTimeout),i(t).delayTimer.next&&i(t).delayTimer.next(),delete i(t).delayTimer)});var A=[];return $.each(v.State.calls,function(e,t){t&&$.each(t[1],function(r,n){var o=b===a?"":b;return o===!0||t[2].queue===o||b===a&&t[2].queue===!1?void $.each(m,function(r,a){a===n&&((b===!0||g.isString(b))&&($.each($.queue(a,g.isString(b)?b:""),function(e,t){g.isFunction(t)&&t(null,!0)}),$.queue(a,g.isString(b)?b:"",[])),"stop"===h?(i(a)&&i(a).tweensContainer&&o!==!1&&$.each(i(a).tweensContainer,function(e,t){t.endValue=t.currentValue
}),A.push(e)):"finish"===h&&(t[2].duration=1))}):!0})}),"stop"===h&&($.each(A,function(e,t){p(t,!0)}),T.promise&&T.resolver(m)),e();default:if(!$.isPlainObject(h)||g.isEmptyObject(h)){if(g.isString(h)&&v.Redirects[h]){var F=$.extend({},b),E=F.duration,j=F.delay||0;return F.backwards===!0&&(m=$.extend(!0,[],m).reverse()),$.each(m,function(e,t){parseFloat(F.stagger)?F.delay=j+parseFloat(F.stagger)*e:g.isFunction(F.stagger)&&(F.delay=j+F.stagger.call(t,e,P)),F.drag&&(F.duration=parseFloat(E)||(/^(callout|transition)/.test(h)?1e3:y),F.duration=Math.max(F.duration*(F.backwards?1-e/P:(e+1)/P),.75*F.duration,200)),v.Redirects[h].call(t,t,F||{},e,P,m,T.promise?T:a)}),e()}var H="Velocity: First argument ("+h+") was not a property map, a known action, or a registered redirect. Aborting.";return T.promise?T.rejecter(new Error(H)):console.log(H),e()}k="start"}var N={lastParent:null,lastPosition:null,lastFontSize:null,lastPercentToPxWidth:null,lastPercentToPxHeight:null,lastEmToPx:null,remToPx:null,vwToPx:null,vhToPx:null},L=[];$.each(m,function(e,t){g.isNode(t)&&n.call(t)});var F=$.extend({},v.defaults,b),R;if(F.loop=parseInt(F.loop),R=2*F.loop-1,F.loop)for(var O=0;R>O;O++){var z={delay:F.delay,progress:F.progress};O===R-1&&(z.display=F.display,z.visibility=F.visibility,z.complete=F.complete),S(m,"reverse",z)}return e()}};v=$.extend(S,v),v.animate=S;var P=t.requestAnimationFrame||d;return v.State.isMobile||r.hidden===a||r.addEventListener("visibilitychange",function(){r.hidden?(P=function(e){return setTimeout(function(){e(!0)},16)},c()):P=t.requestAnimationFrame||d}),e.Velocity=v,e!==t&&(e.fn.velocity=S,e.fn.velocity.defaults=v.defaults),$.each(["Down","Up"],function(e,t){v.Redirects["slide"+t]=function(e,r,n,o,i,s){var l=$.extend({},r),u=l.begin,c=l.complete,p={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},f={};l.display===a&&(l.display="Down"===t?"inline"===v.CSS.Values.getDisplayType(e)?"inline-block":"block":"none"),l.begin=function(){u&&u.call(i,i);for(var r in p){f[r]=e.style[r];var a=v.CSS.getPropertyValue(e,r);p[r]="Down"===t?[a,0]:[0,a]}f.overflow=e.style.overflow,e.style.overflow="hidden"},l.complete=function(){for(var t in f)e.style[t]=f[t];c&&c.call(i,i),s&&s.resolver(i)},v(e,p,l)}}),$.each(["In","Out"],function(e,t){v.Redirects["fade"+t]=function(e,r,n,o,i,s){var l=$.extend({},r),u={opacity:"In"===t?1:0},c=l.complete;l.complete=n!==o-1?l.begin=null:function(){c&&c.call(i,i),s&&s.resolver(i)},l.display===a&&(l.display="In"===t?"auto":"none"),v(this,u,l)}}),v}(window.jQuery||window.Zepto||window,window,document)});;!function(a,b,c,d){"use strict";function k(a,b,c){return setTimeout(q(a,c),b)}function l(a,b,c){return Array.isArray(a)?(m(a,c[b],c),!0):!1}function m(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function n(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a}function o(a,b){return n(a,b,!0)}function p(a,b,c){var e,d=b.prototype;e=a.prototype=Object.create(d),e.constructor=a,e._super=d,c&&n(e,c)}function q(a,b){return function(){return a.apply(b,arguments)}}function r(a,b){return typeof a==g?a.apply(b?b[0]||d:d,b):a}function s(a,b){return a===d?b:a}function t(a,b,c){m(x(b),function(b){a.addEventListener(b,c,!1)})}function u(a,b,c){m(x(b),function(b){a.removeEventListener(b,c,!1)})}function v(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function w(a,b){return a.indexOf(b)>-1}function x(a){return a.trim().split(/\s+/g)}function y(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function z(a){return Array.prototype.slice.call(a,0)}function A(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];y(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function B(a,b){for(var c,f,g=b[0].toUpperCase()+b.slice(1),h=0;h<e.length;){if(c=e[h],f=c?c+g:b,f in a)return f;h++}return d}function D(){return C++}function E(a){var b=a.ownerDocument;return b.defaultView||b.parentWindow}function ab(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){r(a.options.enable,[a])&&c.handler(b)},this.init()}function bb(a){var b,c=a.options.inputClass;return b=c?c:H?wb:I?Eb:G?Gb:rb,new b(a,cb)}function cb(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&O&&0===d-e,g=b&(Q|R)&&0===d-e;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,db(a,c),a.emit("hammer.input",c),a.recognize(c),a.session.prevInput=c}function db(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=gb(b)),e>1&&!c.firstMultiple?c.firstMultiple=gb(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=hb(d);b.timeStamp=j(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=lb(h,i),b.distance=kb(h,i),eb(c,b),b.offsetDirection=jb(b.deltaX,b.deltaY),b.scale=g?nb(g.pointers,d):1,b.rotation=g?mb(g.pointers,d):0,fb(c,b);var k=a.element;v(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function eb(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===O||f.eventType===Q)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function fb(a,b){var f,g,h,j,c=a.lastInterval||b,e=b.timeStamp-c.timeStamp;if(b.eventType!=R&&(e>N||c.velocity===d)){var k=c.deltaX-b.deltaX,l=c.deltaY-b.deltaY,m=ib(e,k,l);g=m.x,h=m.y,f=i(m.x)>i(m.y)?m.x:m.y,j=jb(k,l),a.lastInterval=b}else f=c.velocity,g=c.velocityX,h=c.velocityY,j=c.direction;b.velocity=f,b.velocityX=g,b.velocityY=h,b.direction=j}function gb(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:h(a.pointers[c].clientX),clientY:h(a.pointers[c].clientY)},c++;return{timeStamp:j(),pointers:b,center:hb(b),deltaX:a.deltaX,deltaY:a.deltaY}}function hb(a){var b=a.length;if(1===b)return{x:h(a[0].clientX),y:h(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:h(c/b),y:h(d/b)}}function ib(a,b,c){return{x:b/a||0,y:c/a||0}}function jb(a,b){return a===b?S:i(a)>=i(b)?a>0?T:U:b>0?V:W}function kb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function lb(a,b,c){c||(c=$);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function mb(a,b){return lb(b[1],b[0],_)-lb(a[1],a[0],_)}function nb(a,b){return kb(b[0],b[1],_)/kb(a[0],a[1],_)}function rb(){this.evEl=pb,this.evWin=qb,this.allow=!0,this.pressed=!1,ab.apply(this,arguments)}function wb(){this.evEl=ub,this.evWin=vb,ab.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function Ab(){this.evTarget=yb,this.evWin=zb,this.started=!1,ab.apply(this,arguments)}function Bb(a,b){var c=z(a.touches),d=z(a.changedTouches);return b&(Q|R)&&(c=A(c.concat(d),"identifier",!0)),[c,d]}function Eb(){this.evTarget=Db,this.targetIds={},ab.apply(this,arguments)}function Fb(a,b){var c=z(a.touches),d=this.targetIds;if(b&(O|P)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=z(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return v(a.target,i)}),b===O)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Q|R)&&delete d[g[e].identifier],e++;return h.length?[A(f.concat(h),"identifier",!0),h]:void 0}function Gb(){ab.apply(this,arguments);var a=q(this.handler,this);this.touch=new Eb(this.manager,a),this.mouse=new rb(this.manager,a)}function Pb(a,b){this.manager=a,this.set(b)}function Qb(a){if(w(a,Mb))return Mb;var b=w(a,Nb),c=w(a,Ob);return b&&c?Nb+" "+Ob:b||c?b?Nb:Ob:w(a,Lb)?Lb:Kb}function Yb(a){this.id=D(),this.manager=null,this.options=o(a||{},this.defaults),this.options.enable=s(this.options.enable,!0),this.state=Rb,this.simultaneous={},this.requireFail=[]}function Zb(a){return a&Wb?"cancel":a&Ub?"end":a&Tb?"move":a&Sb?"start":""}function $b(a){return a==W?"down":a==V?"up":a==T?"left":a==U?"right":""}function _b(a,b){var c=b.manager;return c?c.get(a):a}function ac(){Yb.apply(this,arguments)}function bc(){ac.apply(this,arguments),this.pX=null,this.pY=null}function cc(){ac.apply(this,arguments)}function dc(){Yb.apply(this,arguments),this._timer=null,this._input=null}function ec(){ac.apply(this,arguments)}function fc(){ac.apply(this,arguments)}function gc(){Yb.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function hc(a,b){return b=b||{},b.recognizers=s(b.recognizers,hc.defaults.preset),new kc(a,b)}function kc(a,b){b=b||{},this.options=o(b,hc.defaults),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.element=a,this.input=bb(this),this.touchAction=new Pb(this,this.options.touchAction),lc(this,!0),m(b.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function lc(a,b){var c=a.element;m(a.options.cssProps,function(a,d){c.style[B(c.style,d)]=b?a:""})}function mc(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var e=["","webkit","moz","MS","ms","o"],f=b.createElement("div"),g="function",h=Math.round,i=Math.abs,j=Date.now,C=1,F=/mobile|tablet|ip(ad|hone|od)|android/i,G="ontouchstart"in a,H=B(a,"PointerEvent")!==d,I=G&&F.test(navigator.userAgent),J="touch",K="pen",L="mouse",M="kinect",N=25,O=1,P=2,Q=4,R=8,S=1,T=2,U=4,V=8,W=16,X=T|U,Y=V|W,Z=X|Y,$=["x","y"],_=["clientX","clientY"];ab.prototype={handler:function(){},init:function(){this.evEl&&t(this.element,this.evEl,this.domHandler),this.evTarget&&t(this.target,this.evTarget,this.domHandler),this.evWin&&t(E(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&u(this.element,this.evEl,this.domHandler),this.evTarget&&u(this.target,this.evTarget,this.domHandler),this.evWin&&u(E(this.element),this.evWin,this.domHandler)}};var ob={mousedown:O,mousemove:P,mouseup:Q},pb="mousedown",qb="mousemove mouseup";p(rb,ab,{handler:function(a){var b=ob[a.type];b&O&&0===a.button&&(this.pressed=!0),b&P&&1!==a.which&&(b=Q),this.pressed&&this.allow&&(b&Q&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:L,srcEvent:a}))}});var sb={pointerdown:O,pointermove:P,pointerup:Q,pointercancel:R,pointerout:R},tb={2:J,3:K,4:L,5:M},ub="pointerdown",vb="pointermove pointerup pointercancel";a.MSPointerEvent&&(ub="MSPointerDown",vb="MSPointerMove MSPointerUp MSPointerCancel"),p(wb,ab,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace("ms",""),e=sb[d],f=tb[a.pointerType]||a.pointerType,g=f==J,h=y(b,a.pointerId,"pointerId");e&O&&(0===a.button||g)?0>h&&(b.push(a),h=b.length-1):e&(Q|R)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var xb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},yb="touchstart",zb="touchstart touchmove touchend touchcancel";p(Ab,ab,{handler:function(a){var b=xb[a.type];if(b===O&&(this.started=!0),this.started){var c=Bb.call(this,a,b);b&(Q|R)&&0===c[0].length-c[1].length&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:J,srcEvent:a})}}});var Cb={touchstart:O,touchmove:P,touchend:Q,touchcancel:R},Db="touchstart touchmove touchend touchcancel";p(Eb,ab,{handler:function(a){var b=Cb[a.type],c=Fb.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:J,srcEvent:a})}}),p(Gb,ab,{handler:function(a,b,c){var d=c.pointerType==J,e=c.pointerType==L;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Q|R)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Hb=B(f.style,"touchAction"),Ib=Hb!==d,Jb="compute",Kb="auto",Lb="manipulation",Mb="none",Nb="pan-x",Ob="pan-y";Pb.prototype={set:function(a){a==Jb&&(a=this.compute()),Ib&&(this.manager.element.style[Hb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return m(this.manager.recognizers,function(b){r(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),Qb(a.join(" "))},preventDefaults:function(a){if(!Ib){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return b.preventDefault(),void 0;var d=this.actions,e=w(d,Mb),f=w(d,Ob),g=w(d,Nb);return e||f&&c&X||g&&c&Y?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var Rb=1,Sb=2,Tb=4,Ub=8,Vb=Ub,Wb=16,Xb=32;Yb.prototype={defaults:{},set:function(a){return n(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(l(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=_b(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return l(a,"dropRecognizeWith",this)?this:(a=_b(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(l(a,"requireFailure",this))return this;var b=this.requireFail;return a=_b(a,this),-1===y(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(l(a,"dropRequireFailure",this))return this;a=_b(a,this);var b=y(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function d(d){b.manager.emit(b.options.event+(d?Zb(c):""),a)}var b=this,c=this.state;Ub>c&&d(!0),d(),c>=Ub&&d(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):(this.state=Xb,void 0)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(Xb|Rb)))return!1;a++}return!0},recognize:function(a){var b=n({},a);return r(this.options.enable,[this,b])?(this.state&(Vb|Wb|Xb)&&(this.state=Rb),this.state=this.process(b),this.state&(Sb|Tb|Ub|Wb)&&this.tryEmit(b),void 0):(this.reset(),this.state=Xb,void 0)},process:function(){},getTouchAction:function(){},reset:function(){}},p(ac,Yb,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(Sb|Tb),e=this.attrTest(a);return d&&(c&R||!e)?b|Wb:d||e?c&Q?b|Ub:b&Sb?b|Tb:Sb:Xb}}),p(bc,ac,{defaults:{event:"pan",threshold:10,pointers:1,direction:Z},getTouchAction:function(){var a=this.options.direction,b=[];return a&X&&b.push(Ob),a&Y&&b.push(Nb),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&X?(e=0===f?S:0>f?T:U,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?S:0>g?V:W,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return ac.prototype.attrTest.call(this,a)&&(this.state&Sb||!(this.state&Sb)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=$b(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),p(cc,ac,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&Sb)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),p(dc,Yb,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[Kb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,e=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Q|R)&&!e)this.reset();else if(a.eventType&O)this.reset(),this._timer=k(function(){this.state=Vb,this.tryEmit()},b.time,this);else if(a.eventType&Q)return Vb;return Xb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===Vb&&(a&&a.eventType&Q?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=j(),this.manager.emit(this.options.event,this._input)))}}),p(ec,ac,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Mb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&Sb)}}),p(fc,ac,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:X|Y,pointers:1},getTouchAction:function(){return bc.prototype.getTouchAction.call(this)},attrTest:function(a){var c,b=this.options.direction;return b&(X|Y)?c=a.velocity:b&X?c=a.velocityX:b&Y&&(c=a.velocityY),this._super.attrTest.call(this,a)&&b&a.direction&&a.distance>this.options.threshold&&i(c)>this.options.velocity&&a.eventType&Q},emit:function(a){var b=$b(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),p(gc,Yb,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[Lb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,e=a.deltaTime<b.time;if(this.reset(),a.eventType&O&&0===this.count)return this.failTimeout();if(d&&e&&c){if(a.eventType!=Q)return this.failTimeout();var f=this.pTime?a.timeStamp-this.pTime<b.interval:!0,g=!this.pCenter||kb(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,g&&f?this.count+=1:this.count=1,this._input=a;var h=this.count%b.taps;if(0===h)return this.hasRequireFailures()?(this._timer=k(function(){this.state=Vb,this.tryEmit()},b.interval,this),Sb):Vb}return Xb},failTimeout:function(){return this._timer=k(function(){this.state=Xb},this.options.interval,this),Xb},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==Vb&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),hc.VERSION="2.0.4",hc.defaults={domEvents:!1,touchAction:Jb,enable:!0,inputTarget:null,inputClass:null,preset:[[ec,{enable:!1}],[cc,{enable:!1},["rotate"]],[fc,{direction:X}],[bc,{direction:X},["swipe"]],[gc],[gc,{event:"doubletap",taps:2},["tap"]],[dc]],cssProps:{userSelect:"default",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var ic=1,jc=2;kc.prototype={set:function(a){return n(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?jc:ic},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&Vb)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],b.stopped===jc||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(Sb|Tb|Ub)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof Yb)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(l(a,"add",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(l(a,"remove",this))return this;var b=this.recognizers;return a=this.get(a),b.splice(y(b,a),1),this.touchAction.update(),this},on:function(a,b){var c=this.handlers;return m(x(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this},off:function(a,b){var c=this.handlers;return m(x(a),function(a){b?c[a].splice(y(c[a],b),1):delete c[a]}),this},emit:function(a,b){this.options.domEvents&&mc(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&lc(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},n(hc,{INPUT_START:O,INPUT_MOVE:P,INPUT_END:Q,INPUT_CANCEL:R,STATE_POSSIBLE:Rb,STATE_BEGAN:Sb,STATE_CHANGED:Tb,STATE_ENDED:Ub,STATE_RECOGNIZED:Vb,STATE_CANCELLED:Wb,STATE_FAILED:Xb,DIRECTION_NONE:S,DIRECTION_LEFT:T,DIRECTION_RIGHT:U,DIRECTION_UP:V,DIRECTION_DOWN:W,DIRECTION_HORIZONTAL:X,DIRECTION_VERTICAL:Y,DIRECTION_ALL:Z,Manager:kc,Input:ab,TouchAction:Pb,TouchInput:Eb,MouseInput:rb,PointerEventInput:wb,TouchMouseInput:Gb,SingleTouchInput:Ab,Recognizer:Yb,AttrRecognizer:ac,Tap:gc,Pan:bc,Swipe:fc,Pinch:cc,Rotate:ec,Press:dc,on:t,off:u,each:m,merge:o,extend:n,inherit:p,bindFn:q,prefixed:B}),typeof define==g&&define.amd?define(function(){return hc}):"undefined"!=typeof module&&module.exports?module.exports=hc:a[c]=hc}(window,document,"Hammer");;(function(factory) {
    if (typeof define === 'function' && define.amd) {
        define(['jquery', 'hammerjs'], factory);
    } else if (typeof exports === 'object') {
        factory(require('jquery'), require('hammerjs'));
    } else {
        factory(jQuery, Hammer);
    }
}(function($, Hammer) {
    function hammerify(el, options) {
        var $el = $(el);
        if(!$el.data("hammer")) {
            $el.data("hammer", new Hammer($el[0], options));
        }
    }

    $.fn.hammer = function(options) {
        return this.each(function() {
            hammerify(this, options);
        });
    };

    // extend the emit method to also trigger jQuery events
    Hammer.Manager.prototype.emit = (function(originalEmit) {
        return function(type, data) {
            originalEmit.call(this, type, data);
            $(this.element).trigger({
                type: type,
                gesture: data
            });
        };
    })(Hammer.Manager.prototype.emit);
}));
;Materialize = {};

// Unique ID
Materialize.guid = (function() {
  function s4() {
    return Math.floor((1 + Math.random()) * 0x10000)
      .toString(16)
      .substring(1);
  }
  return function() {
    return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
           s4() + '-' + s4() + s4() + s4();
  };
})();

Materialize.elementOrParentIsFixed = function(element) {
    var $element = $(element);
    var $checkElements = $element.add($element.parents());
    var isFixed = false;
    $checkElements.each(function(){
        if ($(this).css("position") === "fixed") {
            isFixed = true;
            return false;
        }
    });
    return isFixed;
};

// Velocity has conflicts when loaded with jQuery, this will check for it
var Vel;
if ($) {
  Vel = $.Velocity;
}
else {
  Vel = Velocity;
}
;(function ($) {
  $.fn.collapsible = function(options) {
    var defaults = {
        accordion: undefined
    };

    options = $.extend(defaults, options);


    return this.each(function() {

      var $this = $(this);

      var $panel_headers = $(this).find('> li > .collapsible-header');

      var collapsible_type = $this.data("collapsible");

      // Turn off any existing event handlers
       $this.off('click.collapse', '.collapsible-header');
       $panel_headers.off('click.collapse');


       /****************
       Helper Functions
       ****************/

      // Accordion Open
      function accordionOpen(object) {
        $panel_headers = $this.find('> li > .collapsible-header');
        if (object.hasClass('active')) {
            object.parent().addClass('active');
        }
        else {
            object.parent().removeClass('active');
        }
        if (object.parent().hasClass('active')){
          object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
        }
        else{
          object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
        }

        $panel_headers.not(object).removeClass('active').parent().removeClass('active');
        $panel_headers.not(object).parent().children('.collapsible-body').stop(true,false).slideUp(
          {
            duration: 350,
            easing: "easeOutQuart",
            queue: false,
            complete:
              function() {
                $(this).css('height', '');
              }
          });
      }

      // Expandable Open
      function expandableOpen(object) {
        if (object.hasClass('active')) {
            object.parent().addClass('active');
        }
        else {
            object.parent().removeClass('active');
        }
        if (object.parent().hasClass('active')){
          object.siblings('.collapsible-body').stop(true,false).slideDown({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
        }
        else{
          object.siblings('.collapsible-body').stop(true,false).slideUp({ duration: 350, easing: "easeOutQuart", queue: false, complete: function() {$(this).css('height', '');}});
        }
      }

      /**
       * Check if object is children of panel header
       * @param  {Object}  object Jquery object
       * @return {Boolean} true if it is children
       */
      function isChildrenOfPanelHeader(object) {

        var panelHeader = getPanelHeader(object);

        return panelHeader.length > 0;
      }

      /**
       * Get panel header from a children element
       * @param  {Object} object Jquery object
       * @return {Object} panel header object
       */
      function getPanelHeader(object) {

        return object.closest('li > .collapsible-header');
      }

      /*****  End Helper Functions  *****/



      if (options.accordion || collapsible_type === "accordion" || collapsible_type === undefined) { // Handle Accordion
        // Add click handler to only direct collapsible header children
        $panel_headers = $this.find('> li > .collapsible-header');
        $panel_headers.on('click.collapse', function (e) {
          var element = $(e.target);

          if (isChildrenOfPanelHeader(element)) {
            element = getPanelHeader(element);
          }

          element.toggleClass('active');
          accordionOpen(element);
        });
        // Open first active
        accordionOpen($panel_headers.filter('.active').first());
      }
      else { // Handle Expandables
        $panel_headers.each(function () {
          // Add click handler to only direct collapsible header children
          $(this).on('click.collapse', function (e) {
            var element = $(e.target);
            if (isChildrenOfPanelHeader(element)) {
              element = getPanelHeader(element);
            }
            element.toggleClass('active');
            expandableOpen(element);
          });
          // Open any bodies that have the active class
          if ($(this).hasClass('active')) {
            expandableOpen($(this));
          }

        });
      }

    });
  };

  $(document).ready(function(){
    $('.collapsible').collapsible();
  });
}( jQuery ));;(function ($) {

  // Add posibility to scroll to selected option
  // usefull for select for example
  $.fn.scrollTo = function(elem) {
    $(this).scrollTop($(this).scrollTop() - $(this).offset().top + $(elem).offset().top);
    return this;
  };

  $.fn.dropdown = function (option) {
    var defaults = {
      inDuration: 300,
      outDuration: 225,
      constrain_width: true, // Constrains width of dropdown to the activator
      hover: false,
      gutter: 0, // Spacing from edge
      belowOrigin: false
    };

    this.each(function(){
    var origin = $(this);
    var options = $.extend({}, defaults, option);

    // Dropdown menu
    var activates = $("#"+ origin.attr('data-activates'));

    function updateOptions() {
      if (origin.data('induration') !== undefined)
        options.inDuration = origin.data('inDuration');
      if (origin.data('outduration') !== undefined)
        options.outDuration = origin.data('outDuration');
      if (origin.data('constrainwidth') !== undefined)
        options.constrain_width = origin.data('constrainwidth');
      if (origin.data('hover') !== undefined)
        options.hover = origin.data('hover');
      if (origin.data('gutter') !== undefined)
        options.gutter = origin.data('gutter');
      if (origin.data('beloworigin') !== undefined)
        options.belowOrigin = origin.data('beloworigin');
    }

    updateOptions();

    // Attach dropdown to its activator
    origin.after(activates);

    /*
      Helper function to position and resize dropdown.
      Used in hover and click handler.
    */
    function placeDropdown() {
      // Check html data attributes
      updateOptions();

      // Set Dropdown state
      activates.addClass('active');

      // Constrain width
      if (options.constrain_width === true) {
        activates.css('width', origin.outerWidth());
      }
      var offset = 0;
      if (options.belowOrigin === true) {
        offset = origin.height();
      }

      // Handle edge alignment
      var offsetLeft = origin.offset().left;
      var width_difference = 0;
      var gutter_spacing = options.gutter;


      if (offsetLeft + activates.innerWidth() > $(window).width()) {
        width_difference = origin.innerWidth() - activates.innerWidth();
        gutter_spacing = gutter_spacing * -1;
      }

      // Position dropdown
      activates.css({
        position: 'absolute',
        top: origin.position().top + offset,
        left: origin.position().left + width_difference + gutter_spacing
      });



      // Show dropdown
      activates.stop(true, true).css('opacity', 0)
        .slideDown({
        queue: false,
        duration: options.inDuration,
        easing: 'easeOutCubic',
        complete: function() {
          $(this).css('height', '');
        }
      })
        .animate( {opacity: 1}, {queue: false, duration: options.inDuration, easing: 'easeOutSine'});
    }

    function hideDropdown() {
      activates.fadeOut(options.outDuration);
      activates.removeClass('active');
    }

    // Hover
    if (options.hover) {
      var open = false;
      origin.unbind('click.' + origin.attr('id'));
      // Hover handler to show dropdown
      origin.on('mouseenter', function(e){ // Mouse over
        if (open === false) {
          placeDropdown();
          open = true;
        }
      });
      origin.on('mouseleave', function(e){
        // If hover on origin then to something other than dropdown content, then close
        var toEl = e.toElement || e.relatedTarget; // added browser compatibility for target element
        if(!$(toEl).closest('.dropdown-content').is(activates)) {
          activates.stop(true, true);
          hideDropdown();
          open = false;
        }
      });

      activates.on('mouseleave', function(e){ // Mouse out
        var toEl = e.toElement || e.relatedTarget;
        if(!$(toEl).closest('.dropdown-button').is(origin)) {
          activates.stop(true, true);
          hideDropdown();
          open = false;
        }
      });

    // Click
    } else {

      // Click handler to show dropdown
      origin.unbind('click.' + origin.attr('id'));
      origin.bind('click.'+origin.attr('id'), function(e){

        if ( origin[0] == e.currentTarget && ($(e.target).closest('.dropdown-content').length === 0) ) {
          e.preventDefault(); // Prevents button click from moving window
          placeDropdown();

        }
        // If origin is clicked and menu is open, close menu
        else {
          if (origin.hasClass('active')) {
            hideDropdown();
            $(document).unbind('click.' + activates.attr('id'));
          }
        }
        // If menu open, add click close handler to document
        if (activates.hasClass('active')) {
          $(document).bind('click.'+ activates.attr('id'), function (e) {
            if (!activates.is(e.target) && !origin.is(e.target) && (!origin.find(e.target).length > 0) ) {
              hideDropdown();
              $(document).unbind('click.' + activates.attr('id'));
            }
          });
        }
      });

    } // End else

    // Listen to open and close event - useful for select component
    origin.on('open', placeDropdown);
    origin.on('close', hideDropdown);


   });
  }; // End dropdown plugin

  $(document).ready(function(){
    $('.dropdown-button').dropdown();
  });
}( jQuery ));
;(function($) {
    var _stack = 0,
    _lastID = 0,
    _generateID = function() {
      _lastID++;
      return 'materialize-lean-overlay-' + _lastID;
    };

  $.fn.extend({
    openModal: function(options) {

      $('body').css('overflow', 'hidden');

      var defaults = {
        opacity: 0.5,
        in_duration: 350,
        out_duration: 250,
        ready: undefined,
        complete: undefined,
        dismissible: true,
        starting_top: '4%'
      },
      overlayID = _generateID(),
      $modal = $(this),
      $overlay = $('<div class="lean-overlay"></div>'),
      lStack = (++_stack);

      // Store a reference of the overlay
      $overlay.attr('id', overlayID).css('z-index', 1000 + lStack * 2);
      $modal.data('overlay-id', overlayID).css('z-index', 1000 + lStack * 2 + 1);

      $("body").append($overlay);

      // Override defaults
      options = $.extend(defaults, options);

      if (options.dismissible) {
        $overlay.click(function() {
          $modal.closeModal(options);
        });
        // Return on ESC
        $(document).on('keyup.leanModal' + overlayID, function(e) {
          if (e.keyCode === 27) {   // ESC key
            $modal.closeModal(options);
          }
        });
      }

      $modal.find(".modal-close").on('click.close', function(e) {
        $modal.closeModal(options);
      });

      $overlay.css({ display : "block", opacity : 0 });

      $modal.css({
        display : "block",
        opacity: 0
      });

      $overlay.velocity({opacity: options.opacity}, {duration: options.in_duration, queue: false, ease: "easeOutCubic"});
      $modal.data('associated-overlay', $overlay[0]);

      // Define Bottom Sheet animation
      if ($modal.hasClass('bottom-sheet')) {
        $modal.velocity({bottom: "0", opacity: 1}, {
          duration: options.in_duration,
          queue: false,
          ease: "easeOutCubic",
          // Handle modal ready callback
          complete: function() {
            if (typeof(options.ready) === "function") {
              options.ready();
            }
          }
        });
      }
      else {
        $.Velocity.hook($modal, "scaleX", 0.7);
        $modal.css({ top: options.starting_top });
        $modal.velocity({top: "10%", opacity: 1, scaleX: '1'}, {
          duration: options.in_duration,
          queue: false,
          ease: "easeOutCubic",
          // Handle modal ready callback
          complete: function() {
            if (typeof(options.ready) === "function") {
              options.ready();
            }
          }
        });
      }


    }
  });

  $.fn.extend({
    closeModal: function(options) {
      var defaults = {
        out_duration: 250,
        complete: undefined
      },
      $modal = $(this),
      overlayID = $modal.data('overlay-id'),
      $overlay = $('#' + overlayID);

      options = $.extend(defaults, options);

      // Disable scrolling
      $('body').css('overflow', '');

      $modal.find('.modal-close').off('click.close');
      $(document).off('keyup.leanModal' + overlayID);

      $overlay.velocity( { opacity: 0}, {duration: options.out_duration, queue: false, ease: "easeOutQuart"});


      // Define Bottom Sheet animation
      if ($modal.hasClass('bottom-sheet')) {
        $modal.velocity({bottom: "-100%", opacity: 0}, {
          duration: options.out_duration,
          queue: false,
          ease: "easeOutCubic",
          // Handle modal ready callback
          complete: function() {
            $overlay.css({display:"none"});

            // Call complete callback
            if (typeof(options.complete) === "function") {
              options.complete();
            }
            $overlay.remove();
            _stack--;
          }
        });
      }
      else {
        $modal.velocity(
          { top: options.starting_top, opacity: 0, scaleX: 0.7}, {
          duration: options.out_duration,
          complete:
            function() {

              $(this).css('display', 'none');
              // Call complete callback
              if (typeof(options.complete) === "function") {
                options.complete();
              }
              $overlay.remove();
              _stack--;
            }
          }
        );
      }
    }
  });

  $.fn.extend({
    leanModal: function(option) {
      return this.each(function() {

        var defaults = {
          starting_top: '4%'
        },
        // Override defaults
        options = $.extend(defaults, option);

        // Close Handlers
        $(this).click(function(e) {
          options.starting_top = ($(this).offset().top - $(window).scrollTop()) /1.15;
          var modal_id = $(this).attr("href") || '#' + $(this).data('target');
          $(modal_id).openModal(options);
          e.preventDefault();
        }); // done set on click
      }); // done return
    }
  });
})(jQuery);
;(function ($) {

  $.fn.materialbox = function () {

    return this.each(function() {

      if ($(this).hasClass('initialized')) {
        return;
      }

      $(this).addClass('initialized');

      var overlayActive = false;
      var doneAnimating = true;
      var inDuration = 275;
      var outDuration = 200;
      var origin = $(this);
      var placeholder = $('<div></div>').addClass('material-placeholder');
      var originalWidth = 0;
      var originalHeight = 0;
      origin.wrap(placeholder);


      origin.on('click', function(){
        var placeholder = origin.parent('.material-placeholder');
        var windowWidth = window.innerWidth;
        var windowHeight = window.innerHeight;
        var originalWidth = origin.width();
        var originalHeight = origin.height();


        // If already modal, return to original
        if (doneAnimating === false) {
          returnToOriginal();
          return false;
        }
        else if (overlayActive && doneAnimating===true) {
          returnToOriginal();
          return false;
        }


        // Set states
        doneAnimating = false;
        origin.addClass('active');
        overlayActive = true;

        // Set positioning for placeholder

        placeholder.css({
          width: placeholder[0].getBoundingClientRect().width,
          height: placeholder[0].getBoundingClientRect().height,
          position: 'relative',
          top: 0,
          left: 0
        });



        // Set css on origin
        origin.css({position: 'absolute', 'z-index': 1000})
        .data('width', originalWidth)
        .data('height', originalHeight);

        // Add overlay
        var overlay = $('<div id="materialbox-overlay"></div>')
          .css({
            opacity: 0
          })
          .click(function(){
            if (doneAnimating === true)
            returnToOriginal();
          });
          // Animate Overlay
          $('body').append(overlay);
          overlay.velocity({opacity: 1}, {duration: inDuration, queue: false, easing: 'easeOutQuad'}
            );


        // Add and animate caption if it exists
        if (origin.data('caption') !== "") {
          var $photo_caption = $('<div class="materialbox-caption"></div>');
          $photo_caption.text(origin.data('caption'));
          $('body').append($photo_caption);
          $photo_caption.css({ "display": "inline" });
          $photo_caption.velocity({opacity: 1}, {duration: inDuration, queue: false, easing: 'easeOutQuad'});
        }



        // Resize Image
        var ratio = 0;
        var widthPercent = originalWidth / windowWidth;
        var heightPercent = originalHeight / windowHeight;
        var newWidth = 0;
        var newHeight = 0;

        if (widthPercent > heightPercent) {
          ratio = originalHeight / originalWidth;
          newWidth = windowWidth * 0.9;
          newHeight = windowWidth * 0.9 * ratio;
        }
        else {
          ratio = originalWidth / originalHeight;
          newWidth = (windowHeight * 0.9) * ratio;
          newHeight = windowHeight * 0.9;
        }

        // Animate image + set z-index
        if(origin.hasClass('responsive-img')) {
          origin.velocity({'max-width': newWidth, 'width': originalWidth}, {duration: 0, queue: false,
            complete: function(){
              origin.css({left: 0, top: 0})
              .velocity(
                {
                  height: newHeight,
                  width: newWidth,
                  left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2,
                  top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2
                },
                {
                  duration: inDuration,
                  queue: false,
                  easing: 'easeOutQuad',
                  complete: function(){doneAnimating = true;}
                }
              );
            } // End Complete
          }); // End Velocity
        }
        else {
          origin.css('left', 0)
          .css('top', 0)
          .velocity(
            {
              height: newHeight,
              width: newWidth,
              left: $(document).scrollLeft() + windowWidth/2 - origin.parent('.material-placeholder').offset().left - newWidth/2,
              top: $(document).scrollTop() + windowHeight/2 - origin.parent('.material-placeholder').offset().top - newHeight/ 2
            },
            {
              duration: inDuration,
              queue: false,
              easing: 'easeOutQuad',
              complete: function(){doneAnimating = true;}
            }
            ); // End Velocity
        }

    }); // End origin on click


      // Return on scroll
      $(window).scroll(function() {
        if (overlayActive ) {
          returnToOriginal();
        }
      });

      // Return on ESC
      $(document).keyup(function(e) {

        if (e.keyCode === 27 && doneAnimating === true) {   // ESC key
          if (overlayActive) {
            returnToOriginal();
          }
        }
      });


      // This function returns the modaled image to the original spot
      function returnToOriginal() {

          doneAnimating = false;

          var placeholder = origin.parent('.material-placeholder');
          var windowWidth = window.innerWidth;
          var windowHeight = window.innerHeight;
          var originalWidth = origin.data('width');
          var originalHeight = origin.data('height');

          origin.velocity("stop", true);
          $('#materialbox-overlay').velocity("stop", true);
          $('.materialbox-caption').velocity("stop", true);


          $('#materialbox-overlay').velocity({opacity: 0}, {
            duration: outDuration, // Delay prevents animation overlapping
            queue: false, easing: 'easeOutQuad',
            complete: function(){
              // Remove Overlay
              overlayActive = false;
              $(this).remove();
            }
          });

          // Resize Image
          origin.velocity(
            {
              width: originalWidth,
              height: originalHeight,
              left: 0,
              top: 0
            },
            {
              duration: outDuration,
              queue: false, easing: 'easeOutQuad'
            }
          );

          // Remove Caption + reset css settings on image
          $('.materialbox-caption').velocity({opacity: 0}, {
            duration: outDuration, // Delay prevents animation overlapping
            queue: false, easing: 'easeOutQuad',
            complete: function(){
              placeholder.css({
                height: '',
                width: '',
                position: '',
                top: '',
                left: ''
              });

              origin.css({
                height: '',
                top: '',
                left: '',
                width: '',
                'max-width': '',
                position: '',
                'z-index': ''
              });

              // Remove class
              origin.removeClass('active');
              doneAnimating = true;
              $(this).remove();
            }
          });

        }
        });
};

$(document).ready(function(){
  $('.materialboxed').materialbox();
});

}( jQuery ));
;(function ($) {

    $.fn.parallax = function () {
      var window_width = $(window).width();
      // Parallax Scripts
      return this.each(function(i) {
        var $this = $(this);
        $this.addClass('parallax');

        function updateParallax(initial) {
          var container_height;
          if (window_width < 601) {
            container_height = ($this.height() > 0) ? $this.height() : $this.children("img").height();
          }
          else {
            container_height = ($this.height() > 0) ? $this.height() : 500;
          }
          var $img = $this.children("img").first();
          var img_height = $img.height();
          var parallax_dist = img_height - container_height;
          var bottom = $this.offset().top + container_height;
          var top = $this.offset().top;
          var scrollTop = $(window).scrollTop();
          var windowHeight = window.innerHeight;
          var windowBottom = scrollTop + windowHeight;
          var percentScrolled = (windowBottom - top) / (container_height + windowHeight);
          var parallax = Math.round((parallax_dist * percentScrolled));

          if (initial) {
            $img.css('display', 'block');
          }
          if ((bottom > scrollTop) && (top < (scrollTop + windowHeight))) {
            $img.css('transform', "translate3D(-50%," + parallax + "px, 0)");
          }

        }

        // Wait for image load
        $this.children("img").one("load", function() {
          updateParallax(true);
        }).each(function() {
          if(this.complete) $(this).load();
        });

        $(window).scroll(function() {
          window_width = $(window).width();
          updateParallax(false);
        });

        $(window).resize(function() {
          window_width = $(window).width();
          updateParallax(false);
        });

      });

    };
}( jQuery ));;(function ($) {

  var methods = {
    init : function() {
      return this.each(function() {

      // For each set of tabs, we want to keep track of
      // which tab is active and its associated content
      var $this = $(this),
          window_width = $(window).width();

      $this.width('100%');
      // Set Tab Width for each tab
      var $num_tabs = $(this).children('li').length;
      $this.children('li').each(function() {
        $(this).width((100/$num_tabs)+'%');
      });
      var $active, $content, $links = $this.find('li.tab a'),
          $tabs_width = $this.width(),
          $tab_width = $this.find('li').first().outerWidth(),
          $index = 0;

      // If the location.hash matches one of the links, use that as the active tab.
      $active = $($links.filter('[href="'+location.hash+'"]'));

      // If no match is found, use the first link or any with class 'active' as the initial active tab.
      if ($active.length === 0) {
          $active = $(this).find('li.tab a.active').first();
      }
      if ($active.length === 0) {
        $active = $(this).find('li.tab a').first();
      }

      $active.addClass('active');
      $index = $links.index($active);
      if ($index < 0) {
        $index = 0;
      }

      $content = $($active[0].hash);

      // append indicator then set indicator width to tab width
      $this.append('<div class="indicator"></div>');
      var $indicator = $this.find('.indicator');
      if ($this.is(":visible")) {
        $indicator.css({"right": $tabs_width - (($index + 1) * $tab_width)});
        $indicator.css({"left": $index * $tab_width});
      }
      $(window).resize(function () {
        $tabs_width = $this.width();
        $tab_width = $this.find('li').first().outerWidth();
        if ($index < 0) {
          $index = 0;
        }
        if ($tab_width !== 0 && $tabs_width !== 0) {
          $indicator.css({"right": $tabs_width - (($index + 1) * $tab_width)});
          $indicator.css({"left": $index * $tab_width});
        }
      });

      // Hide the remaining content
      $links.not($active).each(function () {
        $(this.hash).hide();
      });


      // Bind the click event handler
      $this.on('click', 'a', function(e){
        if ($(this).parent().hasClass('disabled')) {
          e.preventDefault();
          return;
        }

        $tabs_width = $this.width();
        $tab_width = $this.find('li').first().outerWidth();

        // Make the old tab inactive.
        $active.removeClass('active');
        $content.hide();

        // Update the variables with the new link and content
        $active = $(this);
        $content = $(this.hash);
        $links = $this.find('li.tab a');

        // Make the tab active.
        $active.addClass('active');
        var $prev_index = $index;
        $index = $links.index($(this));
        if ($index < 0) {
          $index = 0;
        }
        // Change url to current tab
        // window.location.hash = $active.attr('href');

        $content.show();

        // Update indicator
        if (($index - $prev_index) >= 0) {
          $indicator.velocity({"right": $tabs_width - (($index + 1) * $tab_width)}, { duration: 300, queue: false, easing: 'easeOutQuad'});
          $indicator.velocity({"left": $index * $tab_width}, {duration: 300, queue: false, easing: 'easeOutQuad', delay: 90});

        }
        else {
          $indicator.velocity({"left": $index * $tab_width}, { duration: 300, queue: false, easing: 'easeOutQuad'});
          $indicator.velocity({"right": $tabs_width - (($index + 1) * $tab_width)}, {duration: 300, queue: false, easing: 'easeOutQuad', delay: 90});
        }

        // Prevent the anchor's default click action
        e.preventDefault();
      });
    });

    },
    select_tab : function( id ) {
      this.find('a[href="#' + id + '"]').trigger('click');
    }
  };

  $.fn.tabs = function(methodOrOptions) {
    if ( methods[methodOrOptions] ) {
      return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 ));
    } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) {
      // Default to "init"
      return methods.init.apply( this, arguments );
    } else {
      $.error( 'Method ' +  methodOrOptions + ' does not exist on jQuery.tooltip' );
    }
  };

  $(document).ready(function(){
    $('ul.tabs').tabs();
  });
}( jQuery ));
;(function ($) {
    $.fn.tooltip = function (options) {
        var timeout = null,
        counter = null,
        started = false,
        counterInterval = null,
        margin = 5;

      // Defaults
      var defaults = {
        delay: 350
      };
      options = $.extend(defaults, options);

      //Remove previously created html
      $('.material-tooltip').remove();

      return this.each(function(){
        var origin = $(this);

      // Create Text span
      var tooltip_text = $('<span></span>').text(origin.attr('data-tooltip'));

      // Create tooltip
      var newTooltip = $('<div></div>');
      newTooltip.addClass('material-tooltip').append(tooltip_text);
      newTooltip.appendTo($('body'));

      var backdrop = $('<div></div>').addClass('backdrop');
      backdrop.appendTo(newTooltip);
      backdrop.css({ top: 0, left:0 });


     //Destroy previously binded events
    $(this).off('mouseenter mouseleave');
      // Mouse In
    $(this).on({
      mouseenter: function(e) {
        var tooltip_delay = origin.data("delay");
        tooltip_delay = (tooltip_delay === undefined || tooltip_delay === '') ? options.delay : tooltip_delay;
        counter = 0;
        counterInterval = setInterval(function(){
          counter += 10;
          if (counter >= tooltip_delay && started === false) {
            started = true;
            newTooltip.css({ display: 'block', left: '0px', top: '0px' });

            // Set Tooltip text
            newTooltip.children('span').text(origin.attr('data-tooltip'));

            // Tooltip positioning
            var originWidth = origin.outerWidth();
            var originHeight = origin.outerHeight();
            var tooltipPosition =  origin.attr('data-position');
            var tooltipHeight = newTooltip.outerHeight();
            var tooltipWidth = newTooltip.outerWidth();
            var tooltipVerticalMovement = '0px';
            var tooltipHorizontalMovement = '0px';
            var scale_factor = 8;

            if (tooltipPosition === "top") {
            // Top Position
            newTooltip.css({
              top: origin.offset().top - tooltipHeight - margin,
              left: origin.offset().left + originWidth/2 - tooltipWidth/2
            });
            tooltipVerticalMovement = '-10px';
            backdrop.css({
              borderRadius: '14px 14px 0 0',
              transformOrigin: '50% 90%',
              marginTop: tooltipHeight,
              marginLeft: (tooltipWidth/2) - (backdrop.width()/2)

            });
            }
            // Left Position
            else if (tooltipPosition === "left") {
              newTooltip.css({
                top: origin.offset().top + originHeight/2 - tooltipHeight/2,
                left: origin.offset().left - tooltipWidth - margin
              });
              tooltipHorizontalMovement = '-10px';
              backdrop.css({
                width: '14px',
                height: '14px',
                borderRadius: '14px 0 0 14px',
                transformOrigin: '95% 50%',
                marginTop: tooltipHeight/2,
                marginLeft: tooltipWidth
              });
            }
            // Right Position
            else if (tooltipPosition === "right") {
              newTooltip.css({
                top: origin.offset().top + originHeight/2 - tooltipHeight/2,
                left: origin.offset().left + originWidth + margin
              });
              tooltipHorizontalMovement = '+10px';
              backdrop.css({
                width: '14px',
                height: '14px',
                borderRadius: '0 14px 14px 0',
                transformOrigin: '5% 50%',
                marginTop: tooltipHeight/2,
                marginLeft: '0px'
              });
            }
            else {
              // Bottom Position
              newTooltip.css({
                top: origin.offset().top + origin.outerHeight() + margin,
                left: origin.offset().left + originWidth/2 - tooltipWidth/2
              });
              tooltipVerticalMovement = '+10px';
              backdrop.css({
                marginLeft: (tooltipWidth/2) - (backdrop.width()/2)
              });
            }

            // Calculate Scale to fill
            scale_factor = tooltipWidth / 8;
            if (scale_factor < 8) {
              scale_factor = 8;
            }
            if (tooltipPosition === "right" || tooltipPosition === "left") {
              scale_factor = tooltipWidth / 10;
              if (scale_factor < 6)
                scale_factor = 6;
            }

            newTooltip.velocity({ opacity: 1, marginTop: tooltipVerticalMovement, marginLeft: tooltipHorizontalMovement}, { duration: 350, queue: false });
            backdrop.css({ display: 'block' })
            .velocity({opacity:1},{duration: 55, delay: 0, queue: false})
            .velocity({scale: scale_factor}, {duration: 300, delay: 0, queue: false, easing: 'easeInOutQuad'});

          }
        }, 10); // End Interval

      // Mouse Out
      },
      mouseleave: function(){
        // Reset State
        clearInterval(counterInterval);
        counter = 0;

        // Animate back
        newTooltip.velocity({
          opacity: 0, marginTop: 0, marginLeft: 0}, { duration: 225, queue: false, delay: 275 }
        );
        backdrop.velocity({opacity: 0, scale: 1}, {
          duration:225,
          delay: 275, queue: false,
          complete: function(){
            backdrop.css('display', 'none');
            newTooltip.css('display', 'none');
            started = false;}
        });
      }
      });
    });
  };

  $(document).ready(function(){
     $('.tooltipped').tooltip();
   });
}( jQuery ));
;/*!
 * Waves v0.6.4
 * http://fian.my.id/Waves
 *
 * Copyright 2014 Alfiana E. Sibuea and other contributors
 * Released under the MIT license
 * https://github.com/fians/Waves/blob/master/LICENSE
 */

;(function(window) {
    'use strict';

    var Waves = Waves || {};
    var $$ = document.querySelectorAll.bind(document);

    // Find exact position of element
    function isWindow(obj) {
        return obj !== null && obj === obj.window;
    }

    function getWindow(elem) {
        return isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView;
    }

    function offset(elem) {
        var docElem, win,
            box = {top: 0, left: 0},
            doc = elem && elem.ownerDocument;

        docElem = doc.documentElement;

        if (typeof elem.getBoundingClientRect !== typeof undefined) {
            box = elem.getBoundingClientRect();
        }
        win = getWindow(doc);
        return {
            top: box.top + win.pageYOffset - docElem.clientTop,
            left: box.left + win.pageXOffset - docElem.clientLeft
        };
    }

    function convertStyle(obj) {
        var style = '';

        for (var a in obj) {
            if (obj.hasOwnProperty(a)) {
                style += (a + ':' + obj[a] + ';');
            }
        }

        return style;
    }

    var Effect = {

        // Effect delay
        duration: 750,

        show: function(e, element) {

            // Disable right click
            if (e.button === 2) {
                return false;
            }

            var el = element || this;

            // Create ripple
            var ripple = document.createElement('div');
            ripple.className = 'waves-ripple';
            el.appendChild(ripple);

            // Get click coordinate and element witdh
            var pos         = offset(el);
            var relativeY   = (e.pageY - pos.top);
            var relativeX   = (e.pageX - pos.left);
            var scale       = 'scale('+((el.clientWidth / 100) * 10)+')';

            // Support for touch devices
            if ('touches' in e) {
              relativeY   = (e.touches[0].pageY - pos.top);
              relativeX   = (e.touches[0].pageX - pos.left);
            }

            // Attach data to element
            ripple.setAttribute('data-hold', Date.now());
            ripple.setAttribute('data-scale', scale);
            ripple.setAttribute('data-x', relativeX);
            ripple.setAttribute('data-y', relativeY);

            // Set ripple position
            var rippleStyle = {
                'top': relativeY+'px',
                'left': relativeX+'px'
            };

            ripple.className = ripple.className + ' waves-notransition';
            ripple.setAttribute('style', convertStyle(rippleStyle));
            ripple.className = ripple.className.replace('waves-notransition', '');

            // Scale the ripple
            rippleStyle['-webkit-transform'] = scale;
            rippleStyle['-moz-transform'] = scale;
            rippleStyle['-ms-transform'] = scale;
            rippleStyle['-o-transform'] = scale;
            rippleStyle.transform = scale;
            rippleStyle.opacity   = '1';

            rippleStyle['-webkit-transition-duration'] = Effect.duration + 'ms';
            rippleStyle['-moz-transition-duration']    = Effect.duration + 'ms';
            rippleStyle['-o-transition-duration']      = Effect.duration + 'ms';
            rippleStyle['transition-duration']         = Effect.duration + 'ms';

            rippleStyle['-webkit-transition-timing-function'] = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
            rippleStyle['-moz-transition-timing-function']    = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
            rippleStyle['-o-transition-timing-function']      = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';
            rippleStyle['transition-timing-function']         = 'cubic-bezier(0.250, 0.460, 0.450, 0.940)';

            ripple.setAttribute('style', convertStyle(rippleStyle));
        },

        hide: function(e) {
            TouchHandler.touchup(e);

            var el = this;
            var width = el.clientWidth * 1.4;

            // Get first ripple
            var ripple = null;
            var ripples = el.getElementsByClassName('waves-ripple');
            if (ripples.length > 0) {
                ripple = ripples[ripples.length - 1];
            } else {
                return false;
            }

            var relativeX   = ripple.getAttribute('data-x');
            var relativeY   = ripple.getAttribute('data-y');
            var scale       = ripple.getAttribute('data-scale');

            // Get delay beetween mousedown and mouse leave
            var diff = Date.now() - Number(ripple.getAttribute('data-hold'));
            var delay = 350 - diff;

            if (delay < 0) {
                delay = 0;
            }

            // Fade out ripple after delay
            setTimeout(function() {
                var style = {
                    'top': relativeY+'px',
                    'left': relativeX+'px',
                    'opacity': '0',

                    // Duration
                    '-webkit-transition-duration': Effect.duration + 'ms',
                    '-moz-transition-duration': Effect.duration + 'ms',
                    '-o-transition-duration': Effect.duration + 'ms',
                    'transition-duration': Effect.duration + 'ms',
                    '-webkit-transform': scale,
                    '-moz-transform': scale,
                    '-ms-transform': scale,
                    '-o-transform': scale,
                    'transform': scale,
                };

                ripple.setAttribute('style', convertStyle(style));

                setTimeout(function() {
                    try {
                        el.removeChild(ripple);
                    } catch(e) {
                        return false;
                    }
                }, Effect.duration);
            }, delay);
        },

        // Little hack to make <input> can perform waves effect
        wrapInput: function(elements) {
            for (var a = 0; a < elements.length; a++) {
                var el = elements[a];

                if (el.tagName.toLowerCase() === 'input') {
                    var parent = el.parentNode;

                    // If input already have parent just pass through
                    if (parent.tagName.toLowerCase() === 'i' && parent.className.indexOf('waves-effect') !== -1) {
                        continue;
                    }

                    // Put element class and style to the specified parent
                    var wrapper = document.createElement('i');
                    wrapper.className = el.className + ' waves-input-wrapper';

                    var elementStyle = el.getAttribute('style');

                    if (!elementStyle) {
                        elementStyle = '';
                    }

                    wrapper.setAttribute('style', elementStyle);

                    el.className = 'waves-button-input';
                    el.removeAttribute('style');

                    // Put element as child
                    parent.replaceChild(wrapper, el);
                    wrapper.appendChild(el);
                }
            }
        }
    };


    /**
     * Disable mousedown event for 500ms during and after touch
     */
    var TouchHandler = {
        /* uses an integer rather than bool so there's no issues with
         * needing to clear timeouts if another touch event occurred
         * within the 500ms. Cannot mouseup between touchstart and
         * touchend, nor in the 500ms after touchend. */
        touches: 0,
        allowEvent: function(e) {
            var allow = true;

            if (e.type === 'touchstart') {
                TouchHandler.touches += 1; //push
            } else if (e.type === 'touchend' || e.type === 'touchcancel') {
                setTimeout(function() {
                    if (TouchHandler.touches > 0) {
                        TouchHandler.touches -= 1; //pop after 500ms
                    }
                }, 500);
            } else if (e.type === 'mousedown' && TouchHandler.touches > 0) {
                allow = false;
            }

            return allow;
        },
        touchup: function(e) {
            TouchHandler.allowEvent(e);
        }
    };


    /**
     * Delegated click handler for .waves-effect element.
     * returns null when .waves-effect element not in "click tree"
     */
    function getWavesEffectElement(e) {
        if (TouchHandler.allowEvent(e) === false) {
            return null;
        }

        var element = null;
        var target = e.target || e.srcElement;

        while (target.parentElement !== null) {
            if (!(target instanceof SVGElement) && target.className.indexOf('waves-effect') !== -1) {
                element = target;
                break;
            } else if (target.classList.contains('waves-effect')) {
                element = target;
                break;
            }
            target = target.parentElement;
        }

        return element;
    }

    /**
     * Bubble the click and show effect if .waves-effect elem was found
     */
    function showEffect(e) {
        var element = getWavesEffectElement(e);

        if (element !== null) {
            Effect.show(e, element);

            if ('ontouchstart' in window) {
                element.addEventListener('touchend', Effect.hide, false);
                element.addEventListener('touchcancel', Effect.hide, false);
            }

            element.addEventListener('mouseup', Effect.hide, false);
            element.addEventListener('mouseleave', Effect.hide, false);
        }
    }

    Waves.displayEffect = function(options) {
        options = options || {};

        if ('duration' in options) {
            Effect.duration = options.duration;
        }

        //Wrap input inside <i> tag
        Effect.wrapInput($$('.waves-effect'));

        if ('ontouchstart' in window) {
            document.body.addEventListener('touchstart', showEffect, false);
        }

        document.body.addEventListener('mousedown', showEffect, false);
    };

    /**
     * Attach Waves to an input element (or any element which doesn't
     * bubble mouseup/mousedown events).
     *   Intended to be used with dynamically loaded forms/inputs, or
     * where the user doesn't want a delegated click handler.
     */
    Waves.attach = function(element) {
        //FUTURE: automatically add waves classes and allow users
        // to specify them with an options param? Eg. light/classic/button
        if (element.tagName.toLowerCase() === 'input') {
            Effect.wrapInput([element]);
            element = element.parentElement;
        }

        if ('ontouchstart' in window) {
            element.addEventListener('touchstart', showEffect, false);
        }

        element.addEventListener('mousedown', showEffect, false);
    };

    window.Waves = Waves;

    document.addEventListener('DOMContentLoaded', function() {
        Waves.displayEffect();
    }, false);

})(window);
;Materialize.toast = function (message, displayLength, className, completeCallback) {
    className = className || "";

    var container = document.getElementById('toast-container');

    // Create toast container if it does not exist
    if (container === null) {
        // create notification container
        container = document.createElement('div');
        container.id = 'toast-container';
        document.body.appendChild(container);
    }

    // Select and append toast
    var newToast = createToast(message);

    // only append toast if message is not undefined
    if(message){
        container.appendChild(newToast);
    }

    newToast.style.top = '35px';
    newToast.style.opacity = 0;

    // Animate toast in
    Vel(newToast, { "top" : "0px", opacity: 1 }, {duration: 300,
      easing: 'easeOutCubic',
      queue: false});

    // Allows timer to be pause while being panned
    var timeLeft = displayLength;
    var counterInterval = setInterval (function(){


      if (newToast.parentNode === null)
        window.clearInterval(counterInterval);

      // If toast is not being dragged, decrease its time remaining
      if (!newToast.classList.contains('panning')) {
        timeLeft -= 20;
      }

      if (timeLeft <= 0) {
        // Animate toast out
        Vel(newToast, {"opacity": 0, marginTop: '-40px'}, { duration: 375,
            easing: 'easeOutExpo',
            queue: false,
            complete: function(){
              // Call the optional callback
              if(typeof(completeCallback) === "function")
                completeCallback();
              // Remove toast after it times out
              this[0].parentNode.removeChild(this[0]);
            }
          });
        window.clearInterval(counterInterval);
      }
    }, 20);



    function createToast(html) {

        // Create toast
        var toast = document.createElement('div');
        toast.classList.add('toast');
        if (className) {
            var classes = className.split(' ');

            for (var i = 0, count = classes.length; i < count; i++) {
                toast.classList.add(classes[i]);
            }
        }
        toast.innerHTML = html;

        // Bind hammer
        var hammerHandler = new Hammer(toast, {prevent_default: false});
        hammerHandler.on('pan', function(e) {
          var deltaX = e.deltaX;
          var activationDistance = 80;

          // Change toast state
          if (!toast.classList.contains('panning')){
            toast.classList.add('panning');
          }

          var opacityPercent = 1-Math.abs(deltaX / activationDistance);
          if (opacityPercent < 0)
            opacityPercent = 0;

          Vel(toast, {left: deltaX, opacity: opacityPercent }, {duration: 50, queue: false, easing: 'easeOutQuad'});

        });

        hammerHandler.on('panend', function(e) {
          var deltaX = e.deltaX;
          var activationDistance = 80;

          // If toast dragged past activation point
          if (Math.abs(deltaX) > activationDistance) {
            Vel(toast, {marginTop: '-40px'}, { duration: 375,
                easing: 'easeOutExpo',
                queue: false,
                complete: function(){
                  if(typeof(completeCallback) === "function") {
                    completeCallback();
                  }
                  toast.parentNode.removeChild(toast);
                }
            });

          } else {
            toast.classList.remove('panning');
            // Put toast back into original position
            Vel(toast, { left: 0, opacity: 1 }, { duration: 300,
              easing: 'easeOutExpo',
              queue: false
            });

          }
        });

        return toast;
    }
};
;(function ($) {

  var methods = {
    init : function(options) {
      var defaults = {
        menuWidth: 240,
        edge: 'left',
        closeOnClick: false
      };
      options = $.extend(defaults, options);

      $(this).each(function(){
        var $this = $(this);
        var menu_id = $("#"+ $this.attr('data-activates'));

        // Set to width
        if (options.menuWidth != 240) {
          menu_id.css('width', options.menuWidth);
        }

        // Add Touch Area
        $('body').append($('<div class="drag-target"></div>'));

        if (options.edge == 'left') {
          menu_id.css('left', -1 * (options.menuWidth + 10));
          $('.drag-target').css({'left': 0}); // Add Touch Area
        }
        else {
          menu_id.addClass('right-aligned') // Change text-alignment to right
            .css('right', -1 * (options.menuWidth + 10))
            .css('left', '');
          $('.drag-target').css({'right': 0}); // Add Touch Area
        }

        // If fixed sidenav, bring menu out
        if (menu_id.hasClass('fixed')) {
            if (window.innerWidth > 992) {
              menu_id.css('left', 0);
            }
          }

        // Window resize to reset on large screens fixed
        if (menu_id.hasClass('fixed')) {
          $(window).resize( function() {
            if (window.innerWidth > 992) {
              // Close menu if window is resized bigger than 992 and user has fixed sidenav
              if ($('#sidenav-overlay').css('opacity') !== 0 && menuOut) {
                removeMenu(true);
              }
              else {
                menu_id.removeAttr('style');
                menu_id.css('width', options.menuWidth);
              }
            }
            else if (menuOut === false){
              if (options.edge === 'left')
                menu_id.css('left', -1 * (options.menuWidth + 10));
              else
                menu_id.css('right', -1 * (options.menuWidth + 10));
            }

          });
        }

        // if closeOnClick, then add close event for all a tags in side sideNav
        if (options.closeOnClick === true) {
          menu_id.on("click.itemclick", "a:not(.collapsible-header)", function(){
            removeMenu();
          });
        }

        function removeMenu(restoreNav) {
          panning = false;
          menuOut = false;

          // Reenable scrolling
          $('body').css('overflow', '');

          $('#sidenav-overlay').velocity({opacity: 0}, {duration: 200, queue: false, easing: 'easeOutQuad',
            complete: function() {
              $(this).remove();
            } });
          if (options.edge === 'left') {
            // Reset phantom div
            $('.drag-target').css({width: '', right: '', left: '0'});
            menu_id.velocity(
              {left: -1 * (options.menuWidth + 10)},
              { duration: 200,
                queue: false,
                easing: 'easeOutCubic',
                complete: function() {
                  if (restoreNav === true) {
                    // Restore Fixed sidenav
                    menu_id.removeAttr('style');
                    menu_id.css('width', options.menuWidth);
                  }
                }

            });
          }
          else {
            // Reset phantom div
            $('.drag-target').css({width: '', right: '0', left: ''});
            menu_id.velocity(
              {right: -1 * (options.menuWidth + 10)},
              { duration: 200,
                queue: false,
                easing: 'easeOutCubic',
                complete: function() {
                  if (restoreNav === true) {
                    // Restore Fixed sidenav
                    menu_id.removeAttr('style');
                    menu_id.css('width', options.menuWidth);
                  }
                }
              });
          }
        }



        // Touch Event
        var panning = false;
        var menuOut = false;

        $('.drag-target').on('click', function(){
          removeMenu();
        });

        $('.drag-target').hammer({
          prevent_default: false
        }).bind('pan', function(e) {

          if (e.gesture.pointerType == "touch") {

            var direction = e.gesture.direction;
            var x = e.gesture.center.x;
            var y = e.gesture.center.y;
            var velocityX = e.gesture.velocityX;

            // Disable Scrolling
            $('body').css('overflow', 'hidden');

            // If overlay does not exist, create one and if it is clicked, close menu
            if ($('#sidenav-overlay').length === 0) {
              var overlay = $('<div id="sidenav-overlay"></div>');
              overlay.css('opacity', 0).click( function(){
                removeMenu();
              });
              $('body').append(overlay);
            }

            // Keep within boundaries
            if (options.edge === 'left') {
              if (x > options.menuWidth) { x = options.menuWidth; }
              else if (x < 0) { x = 0; }
            }

            if (options.edge === 'left') {
              // Left Direction
              if (x < (options.menuWidth / 2)) { menuOut = false; }
              // Right Direction
              else if (x >= (options.menuWidth / 2)) { menuOut = true; }

              menu_id.css('left', (x - options.menuWidth));
            }
            else {
              // Left Direction
              if (x < (window.innerWidth - options.menuWidth / 2)) {
                menuOut = true;
              }
              // Right Direction
              else if (x >= (window.innerWidth - options.menuWidth / 2)) {
               menuOut = false;
             }
              var rightPos = -1 *(x - options.menuWidth / 2);
              if (rightPos > 0) {
                rightPos = 0;
              }

              menu_id.css('right', rightPos);
            }




            // Percentage overlay
            var overlayPerc;
            if (options.edge === 'left') {
              overlayPerc = x / options.menuWidth;
              $('#sidenav-overlay').velocity({opacity: overlayPerc }, {duration: 50, queue: false, easing: 'easeOutQuad'});
            }
            else {
              overlayPerc = Math.abs((x - window.innerWidth) / options.menuWidth);
              $('#sidenav-overlay').velocity({opacity: overlayPerc }, {duration: 50, queue: false, easing: 'easeOutQuad'});
            }
          }

        }).bind('panend', function(e) {

          if (e.gesture.pointerType == "touch") {
            var velocityX = e.gesture.velocityX;
            panning = false;
            if (options.edge === 'left') {
              // If velocityX <= 0.3 then the user is flinging the menu closed so ignore menuOut
              if ((menuOut && velocityX <= 0.3) || velocityX < -0.5) {
                menu_id.velocity({left: 0}, {duration: 300, queue: false, easing: 'easeOutQuad'});
                $('#sidenav-overlay').velocity({opacity: 1 }, {duration: 50, queue: false, easing: 'easeOutQuad'});
                $('.drag-target').css({width: '50%', right: 0, left: ''});
              }
              else if (!menuOut || velocityX > 0.3) {
                // Enable Scrolling
                $('body').css('overflow', '');
                // Slide menu closed
                menu_id.velocity({left: -1 * (options.menuWidth + 10)}, {duration: 200, queue: false, easing: 'easeOutQuad'});
                $('#sidenav-overlay').velocity({opacity: 0 }, {duration: 200, queue: false, easing: 'easeOutQuad',
                  complete: function () {
                    $(this).remove();
                  }});
                $('.drag-target').css({width: '10px', right: '', left: 0});
              }
            }
            else {
              if ((menuOut && velocityX >= -0.3) || velocityX > 0.5) {
                menu_id.velocity({right: 0}, {duration: 300, queue: false, easing: 'easeOutQuad'});
                $('#sidenav-overlay').velocity({opacity: 1 }, {duration: 50, queue: false, easing: 'easeOutQuad'});
                $('.drag-target').css({width: '50%', right: '', left: 0});
              }
              else if (!menuOut || velocityX < -0.3) {
                // Enable Scrolling
                $('body').css('overflow', '');
                // Slide menu closed
                menu_id.velocity({right: -1 * (options.menuWidth + 10)}, {duration: 200, queue: false, easing: 'easeOutQuad'});
                $('#sidenav-overlay').velocity({opacity: 0 }, {duration: 200, queue: false, easing: 'easeOutQuad',
                  complete: function () {
                    $(this).remove();
                  }});
                $('.drag-target').css({width: '10px', right: 0, left: ''});
              }
            }

          }
        });

          $this.click(function() {
            if (menuOut === true) {
              menuOut = false;
              panning = false;
              removeMenu();
            }
            else {

              // Disable Scrolling
              $('body').css('overflow', 'hidden');

              if (options.edge === 'left') {
                $('.drag-target').css({width: '50%', right: 0, left: ''});
                menu_id.velocity({left: 0}, {duration: 300, queue: false, easing: 'easeOutQuad'});
              }
              else {
                $('.drag-target').css({width: '50%', right: '', left: 0});
                menu_id.velocity({right: 0}, {duration: 300, queue: false, easing: 'easeOutQuad'});
                menu_id.css('left','');
              }

              var overlay = $('<div id="sidenav-overlay"></div>');
              overlay.css('opacity', 0)
              .click(function(){
                menuOut = false;
                panning = false;
                removeMenu();
                overlay.velocity({opacity: 0}, {duration: 300, queue: false, easing: 'easeOutQuad',
                  complete: function() {
                    $(this).remove();
                  } });

              });
              $('body').append(overlay);
              overlay.velocity({opacity: 1}, {duration: 300, queue: false, easing: 'easeOutQuad',
                complete: function () {
                  menuOut = true;
                  panning = false;
                }
              });
            }

            return false;
          });
      });


    },
    show : function() {
      this.trigger('click');
    },
    hide : function() {
      $('#sidenav-overlay').trigger('click');
    }
  };


    $.fn.sideNav = function(methodOrOptions) {
      if ( methods[methodOrOptions] ) {
        return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 ));
      } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) {
        // Default to "init"
        return methods.init.apply( this, arguments );
      } else {
        $.error( 'Method ' +  methodOrOptions + ' does not exist on jQuery.sideNav' );
      }
    }; // Plugin end
}( jQuery ));
;/**
 * Extend jquery with a scrollspy plugin.
 * This watches the window scroll and fires events when elements are scrolled into viewport.
 *
 * throttle() and getTime() taken from Underscore.js
 * https://github.com/jashkenas/underscore
 *
 * @author Copyright 2013 John Smart
 * @license https://raw.github.com/thesmart/jquery-scrollspy/master/LICENSE
 * @see https://github.com/thesmart
 * @version 0.1.2
 */
(function($) {

	var jWindow = $(window);
	var elements = [];
	var elementsInView = [];
	var isSpying = false;
	var ticks = 0;
	var unique_id = 1;
	var offset = {
		top : 0,
		right : 0,
		bottom : 0,
		left : 0,
	}

	/**
	 * Find elements that are within the boundary
	 * @param {number} top
	 * @param {number} right
	 * @param {number} bottom
	 * @param {number} left
	 * @return {jQuery}		A collection of elements
	 */
	function findElements(top, right, bottom, left) {
		var hits = $();
		$.each(elements, function(i, element) {
			if (element.height() > 0) {
				var elTop = element.offset().top,
					elLeft = element.offset().left,
					elRight = elLeft + element.width(),
					elBottom = elTop + element.height();

				var isIntersect = !(elLeft > right ||
					elRight < left ||
					elTop > bottom ||
					elBottom < top);

				if (isIntersect) {
					hits.push(element);
				}
			}
		});

		return hits;
	}


	/**
	 * Called when the user scrolls the window
	 */
	function onScroll() {
		// unique tick id
		++ticks;

		// viewport rectangle
		var top = jWindow.scrollTop(),
			left = jWindow.scrollLeft(),
			right = left + jWindow.width(),
			bottom = top + jWindow.height();

		// determine which elements are in view
//        + 60 accounts for fixed nav
		var intersections = findElements(top+offset.top + 200, right+offset.right, bottom+offset.bottom, left+offset.left);
		$.each(intersections, function(i, element) {

			var lastTick = element.data('scrollSpy:ticks');
			if (typeof lastTick != 'number') {
				// entered into view
				element.triggerHandler('scrollSpy:enter');
			}

			// update tick id
			element.data('scrollSpy:ticks', ticks);
		});

		// determine which elements are no longer in view
		$.each(elementsInView, function(i, element) {
			var lastTick = element.data('scrollSpy:ticks');
			if (typeof lastTick == 'number' && lastTick !== ticks) {
				// exited from view
				element.triggerHandler('scrollSpy:exit');
				element.data('scrollSpy:ticks', null);
			}
		});

		// remember elements in view for next tick
		elementsInView = intersections;
	}

	/**
	 * Called when window is resized
	*/
	function onWinSize() {
		jWindow.trigger('scrollSpy:winSize');
	}

	/**
	 * Get time in ms
   * @license https://raw.github.com/jashkenas/underscore/master/LICENSE
	 * @type {function}
	 * @return {number}
	 */
	var getTime = (Date.now || function () {
		return new Date().getTime();
	});

	/**
	 * Returns a function, that, when invoked, will only be triggered at most once
	 * during a given window of time. Normally, the throttled function will run
	 * as much as it can, without ever going more than once per `wait` duration;
	 * but if you'd like to disable the execution on the leading edge, pass
	 * `{leading: false}`. To disable execution on the trailing edge, ditto.
	 * @license https://raw.github.com/jashkenas/underscore/master/LICENSE
	 * @param {function} func
	 * @param {number} wait
	 * @param {Object=} options
	 * @returns {Function}
	 */
	function throttle(func, wait, options) {
		var context, args, result;
		var timeout = null;
		var previous = 0;
		options || (options = {});
		var later = function () {
			previous = options.leading === false ? 0 : getTime();
			timeout = null;
			result = func.apply(context, args);
			context = args = null;
		};
		return function () {
			var now = getTime();
			if (!previous && options.leading === false) previous = now;
			var remaining = wait - (now - previous);
			context = this;
			args = arguments;
			if (remaining <= 0) {
				clearTimeout(timeout);
				timeout = null;
				previous = now;
				result = func.apply(context, args);
				context = args = null;
			} else if (!timeout && options.trailing !== false) {
				timeout = setTimeout(later, remaining);
			}
			return result;
		};
	};

	/**
	 * Enables ScrollSpy using a selector
	 * @param {jQuery|string} selector  The elements collection, or a selector
	 * @param {Object=} options	Optional.
        throttle : number -> scrollspy throttling. Default: 100 ms
        offsetTop : number -> offset from top. Default: 0
        offsetRight : number -> offset from right. Default: 0
        offsetBottom : number -> offset from bottom. Default: 0
        offsetLeft : number -> offset from left. Default: 0
	 * @returns {jQuery}
	 */
	$.scrollSpy = function(selector, options) {
		var visible = [];
		selector = $(selector);
		selector.each(function(i, element) {
			elements.push($(element));
			$(element).data("scrollSpy:id", i);
			// Smooth scroll to section
		  $('a[href=#' + $(element).attr('id') + ']').click(function(e) {
		    e.preventDefault();
		    var offset = $(this.hash).offset().top + 1;

//          offset - 200 allows elements near bottom of page to scroll
			
	    	$('html, body').animate({ scrollTop: offset - 200 }, {duration: 400, queue: false, easing: 'easeOutCubic'});
			
		  });
		});
		options = options || {
			throttle: 100
		};

		offset.top = options.offsetTop || 0;
		offset.right = options.offsetRight || 0;
		offset.bottom = options.offsetBottom || 0;
		offset.left = options.offsetLeft || 0;

		var throttledScroll = throttle(onScroll, options.throttle || 100);
		var readyScroll = function(){
			$(document).ready(throttledScroll);
		};

		if (!isSpying) {
			jWindow.on('scroll', readyScroll);
			jWindow.on('resize', readyScroll);
			isSpying = true;
		}

		// perform a scan once, after current execution context, and after dom is ready
		setTimeout(readyScroll, 0);


		selector.on('scrollSpy:enter', function() {
			visible = $.grep(visible, function(value) {
	      return value.height() != 0;
	    });

			var $this = $(this);

			if (visible[0]) {
				$('a[href=#' + visible[0].attr('id') + ']').removeClass('active');
				if ($this.data('scrollSpy:id') < visible[0].data('scrollSpy:id')) {
					visible.unshift($(this));
				}
				else {
					visible.push($(this));
				}
			}
			else {
				visible.push($(this));
			}


			$('a[href=#' + visible[0].attr('id') + ']').addClass('active');
		});
		selector.on('scrollSpy:exit', function() {
			visible = $.grep(visible, function(value) {
	      return value.height() != 0;
	    });

			if (visible[0]) {
				$('a[href=#' + visible[0].attr('id') + ']').removeClass('active');
				var $this = $(this);
				visible = $.grep(visible, function(value) {
	        return value.attr('id') != $this.attr('id');
	      });
	      if (visible[0]) { // Check if empty
					$('a[href=#' + visible[0].attr('id') + ']').addClass('active');
	      }
			}
		});

		return selector;
	};

	/**
	 * Listen for window resize events
	 * @param {Object=} options						Optional. Set { throttle: number } to change throttling. Default: 100 ms
	 * @returns {jQuery}		$(window)
	 */
	$.winSizeSpy = function(options) {
		$.winSizeSpy = function() { return jWindow; }; // lock from multiple calls
		options = options || {
			throttle: 100
		};
		return jWindow.on('resize', throttle(onWinSize, options.throttle || 100));
	};

	/**
	 * Enables ScrollSpy on a collection of elements
	 * e.g. $('.scrollSpy').scrollSpy()
	 * @param {Object=} options	Optional.
											throttle : number -> scrollspy throttling. Default: 100 ms
											offsetTop : number -> offset from top. Default: 0
											offsetRight : number -> offset from right. Default: 0
											offsetBottom : number -> offset from bottom. Default: 0
											offsetLeft : number -> offset from left. Default: 0
	 * @returns {jQuery}
	 */
	$.fn.scrollSpy = function(options) {
		return $.scrollSpy($(this), options);
	};

})(jQuery);;(function ($) {
  $(document).ready(function() {

    // Function to update labels of text fields
    Materialize.updateTextFields = function() {
      var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea';
      $(input_selector).each(function(index, element) {
        if ($(element).val().length > 0 || $(this).attr('placeholder') !== undefined || $(element)[0].validity.badInput === true) {
          $(this).siblings('label, i').addClass('active');
        }
        else {
          $(this).siblings('label, i').removeClass('active');
        }
      });
    };

    // Text based inputs
    var input_selector = 'input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], textarea';

    // Handle HTML5 autofocus
    $('input[autofocus]').siblings('label, i').addClass('active');

    // Add active if form auto complete
    $(document).on('change', input_selector, function () {
      if($(this).val().length !== 0 || $(this).attr('placeholder') !== undefined) {
        $(this).siblings('label, i').addClass('active');
      }
      validate_field($(this));
    });

    // Add active if input element has been pre-populated on document ready
    $(document).ready(function() {
      Materialize.updateTextFields();
    });

    // HTML DOM FORM RESET handling
    $(document).on('reset', function(e) {
      var formReset = $(e.target);
      if (formReset.is('form')) {
        formReset.find(input_selector).removeClass('valid').removeClass('invalid');
        formReset.find(input_selector).each(function () {
          if ($(this).attr('value') === '') {
            $(this).siblings('label, i').removeClass('active');
          }
        });

        // Reset select
        formReset.find('select.initialized').each(function () {
          var reset_text = formReset.find('option[selected]').text();
          formReset.siblings('input.select-dropdown').val(reset_text);
        });
      }
    });

    // Add active when element has focus
    $(document).on('focus', input_selector, function () {
      $(this).siblings('label, i').addClass('active');
    });

    $(document).on('blur', input_selector, function () {
      var $inputElement = $(this);
      if ($inputElement.val().length === 0 && $inputElement[0].validity.badInput !== true && $inputElement.attr('placeholder') === undefined) {
        $inputElement.siblings('label, i').removeClass('active');
      }
      validate_field($inputElement);
    });

    validate_field = function(object) {
      var hasLength = object.attr('length') !== undefined;
      var lenAttr = parseInt(object.attr('length'));
      var len = object.val().length;

      if (object.val().length === 0 && object[0].validity.badInput === false) {
        if (object.hasClass('validate')) {
          object.removeClass('valid');
          object.removeClass('invalid');
        }
      }
      else {
        if (object.hasClass('validate')) {
          // Check for character counter attributes
          if ((object.is(':valid') && hasLength && (len < lenAttr)) || (object.is(':valid') && !hasLength)) {
            object.removeClass('invalid');
            object.addClass('valid');
          }
          else {
            object.removeClass('valid');
            object.addClass('invalid');
          }
        }
      }
    };


    // Textarea Auto Resize
    var hiddenDiv = $('.hiddendiv').first();
    if (!hiddenDiv.length) {
      hiddenDiv = $('<div class="hiddendiv common"></div>');
      $('body').append(hiddenDiv);
    }
    var text_area_selector = '.materialize-textarea';

    function textareaAutoResize($textarea) {
      // Set font properties of hiddenDiv

      var fontFamily = $textarea.css('font-family');
      var fontSize = $textarea.css('font-size');

      if (fontSize) { hiddenDiv.css('font-size', fontSize); }
      if (fontFamily) { hiddenDiv.css('font-family', fontFamily); }

      if ($textarea.attr('wrap') === "off") {
        hiddenDiv.css('overflow-wrap', "normal")
                 .css('white-space', "pre");
      }




      hiddenDiv.text($textarea.val() + '\n');
      var content = hiddenDiv.html().replace(/\n/g, '<br>');
      hiddenDiv.html(content);


      // When textarea is hidden, width goes crazy.
      // Approximate with half of window size

      if ($textarea.is(':visible')) {
        hiddenDiv.css('width', $textarea.width());
      }
      else {
        hiddenDiv.css('width', $(window).width()/2);
      }

      $textarea.css('height', hiddenDiv.height());
    }

    $(text_area_selector).each(function () {
      var $textarea = $(this);
      if ($textarea.val().length) {
        textareaAutoResize($textarea);
      }
    });

    $('body').on('keyup keydown', text_area_selector, function () {
      textareaAutoResize($(this));
    });


    // File Input Path
    $('.file-field').each(function() {
      var path_input = $(this).find('input.file-path');
      $(this).find('input[type="file"]').change(function () {
        path_input.val($(this)[0].files[0].name);
        path_input.trigger('change');
      });
    });



    /****************
    *  Range Input  *
    ****************/

    var range_type = 'input[type=range]';
    var range_mousedown = false;
    var left;

    $(range_type).each(function () {
      var thumb = $('<span class="thumb"><span class="value"></span></span>');
      $(this).after(thumb);
    });

    var range_wrapper = '.range-field';
    $(document).on('change', range_type, function(e) {
      var thumb = $(this).siblings('.thumb');
      thumb.find('.value').html($(this).val());
    });

    $(document).on('mousedown touchstart', range_type, function(e) {
      var thumb = $(this).siblings('.thumb');

      // If thumb indicator does not exist yet, create it
      if (thumb.length <= 0) {
        thumb = $('<span class="thumb"><span class="value"></span></span>');
        $(this).append(thumb);
      }

      // Set indicator value
      thumb.find('.value').html($(this).val());

      range_mousedown = true;
      $(this).addClass('active');

      if (!thumb.hasClass('active')) {
        thumb.velocity({ height: "30px", width: "30px", top: "-20px", marginLeft: "-15px"}, { duration: 300, easing: 'easeOutExpo' });
      }

      if(e.pageX === undefined || e.pageX === null){//mobile
         left = e.originalEvent.touches[0].pageX - $(this).offset().left;
      }
      else{ // desktop
         left = e.pageX - $(this).offset().left;
      }
      var width = $(this).outerWidth();

      if (left < 0) {
        left = 0;
      }
      else if (left > width) {
        left = width;
      }
      thumb.addClass('active').css('left', left);
      thumb.find('.value').html($(this).val());


    });

    $(document).on('mouseup touchend', range_wrapper, function() {
      range_mousedown = false;
      $(this).removeClass('active');
    });

    $(document).on('mousemove touchmove', range_wrapper, function(e) {
      var thumb = $(this).children('.thumb');
      var left;
      if (range_mousedown) {
        if (!thumb.hasClass('active')) {
          thumb.velocity({ height: '30px', width: '30px', top: '-20px', marginLeft: '-15px'}, { duration: 300, easing: 'easeOutExpo' });
        }
        if (e.pageX === undefined || e.pageX === null) { //mobile
          left = e.originalEvent.touches[0].pageX - $(this).offset().left;
        }
        else{ // desktop
          left = e.pageX - $(this).offset().left;
        }
        var width = $(this).outerWidth();

        if (left < 0) {
          left = 0;
        }
        else if (left > width) {
          left = width;
        }
        thumb.addClass('active').css('left', left);

      }

    });

    $(document).on('mouseout touchleave', range_wrapper, function() {
      if (!range_mousedown) {

        var thumb = $(this).children('.thumb');

        if (thumb.hasClass('active')) {
          thumb.velocity({ height: '0', width: '0', top: '10px', marginLeft: '-6px'}, { duration: 100 });
        }
        thumb.removeClass('active');
      }
    });

  }); // End of $(document).ready




  // Select Plugin
  $.fn.material_select = function (callback) {
    $(this).each(function(){
      $select = $(this);

      if ( $select.hasClass('browser-default')) {
        return; // Continue to next (return false breaks out of entire loop)
      }

      // Tear down structure if Select needs to be rebuilt
      var lastID = $select.data('select-id');
      if (lastID) {
        $select.parent().find('i').remove();
        $select.parent().find('input').remove();

        $select.unwrap();
        $('ul#select-options-'+lastID).remove();
      }

      // If destroying the select, remove the selelct-id and reset it to it's uninitialized state.
      if(callback === 'destroy') {
          $select.data('select-id', null).removeClass('initialized');
          return;
      }

      var uniqueID = Materialize.guid();
      $select.data('select-id', uniqueID);
      var wrapper = $('<div class="select-wrapper"></div>');
      wrapper.addClass($select.attr('class'));
      var options = $('<ul id="select-options-' + uniqueID+'" class="dropdown-content select-dropdown"></ul>');
      var selectOptions = $select.children('option');

      var label;
      if ($select.find('option:selected') !== undefined) {
        label = $select.find('option:selected');
      }
      else {
        label = options.first();
      }


      // Create Dropdown structure
      selectOptions.each(function () {
        // Add disabled attr if disabled
        options.append($('<li class="' + (($(this).is(':disabled')) ? 'disabled' : '') + '"><span>' + $(this).html() + '</span></li>'));
      });


      options.find('li').each(function (i) {
        var $curr_select = $select;
        $(this).click(function () {
          // Check if option element is disabled
          if (!$(this).hasClass('disabled')) {
            $curr_select.find('option').eq(i).prop('selected', true);
            // Trigger onchange() event
            $curr_select.trigger('change');
            $curr_select.siblings('input.select-dropdown').val($(this).text());
            if (typeof callback !== 'undefined') callback();
          }
        });

      });

      // Wrap Elements
      $select.wrap(wrapper);
      // Add Select Display Element
      var dropdownIcon = $('<span class="caret">&#9660;</span>');
      if ( $select.is(':disabled') )
        dropdownIcon.addClass('disabled');

      var $newSelect = $('<input type="text" class="select-dropdown" readonly="true" ' + (($select.is(':disabled')) ? 'disabled' : '') + ' data-activates="select-options-' + uniqueID +'" value="'+ label.html() +'"/>');
      $select.before($newSelect);
      $newSelect.before(dropdownIcon);

      $('body').append(options);
      // Check if section element is disabled
      if (!$select.is(':disabled')) {
        $newSelect.dropdown({"hover": false});
      }

      // Copy tabindex
      if ($select.attr('tabindex')) {
        $($newSelect[0]).attr('tabindex', $select.attr('tabindex'));
      }

      $select.addClass('initialized');

      $newSelect.on('focus', function(){
        $(this).trigger('open');
        label = $(this).val();
        selectedOption = options.find('li').filter(function() {
          return $(this).text().toLowerCase() === label.toLowerCase();
        })[0];
        activateOption(options, selectedOption);
      });

      $newSelect.on('blur', function(){
        $(this).trigger('close');
      });

      // Make option as selected and scroll to selected position
      activateOption = function(collection, newOption) {
        collection.find('li.active').removeClass('active');
        $(newOption).addClass('active');
        collection.scrollTo(newOption);
      };

      // Allow user to search by typing
      // this array is cleared after 1 second
      filterQuery = [];

      onKeyDown = function(event){
        // TAB - switch to another input
        if(event.which == 9){
          $newSelect.trigger('close');
          return;
        }

        // ARROW DOWN WHEN SELECT IS CLOSED - open select options
        if(event.which == 40 && !options.is(":visible")){
          $newSelect.trigger('open');
          return;
        }

        // ENTER WHEN SELECT IS CLOSED - submit form
        if(event.which == 13 && !options.is(":visible")){
          return;
        }

        event.preventDefault();

        // CASE WHEN USER TYPE LETTERS
        letter = String.fromCharCode(event.which).toLowerCase();
        var nonLetters = [9,13,27,38,40];
        if (letter && (nonLetters.indexOf(event.which) === -1)){
          filterQuery.push(letter);

          string = filterQuery.join("");

          newOption = options.find('li').filter(function() {
            return $(this).text().toLowerCase().indexOf(string) === 0;
          })[0];

          if(newOption){
            activateOption(options, newOption);
          }
        }

        // ENTER - select option and close when select options are opened
        if(event.which == 13){
          activeOption = options.find('li.active:not(.disabled)')[0];
          if(activeOption){
            $(activeOption).trigger('click');
            $newSelect.trigger('close');
          }
        }

        // ARROW DOWN - move to next not disabled option
        if(event.which == 40){
          newOption = options.find('li.active').next('li:not(.disabled)')[0];
          if(newOption){
            activateOption(options, newOption);
          }
        }

        // ESC - close options
        if(event.which == 27){
          $newSelect.trigger('close');
        }

        // ARROW UP - move to previous not disabled option
        if(event.which == 38){
          newOption = options.find('li.active').prev('li:not(.disabled)')[0];
          if(newOption){
            activateOption(options, newOption);
          }
        }

        // Automaticaly clean filter query so user can search again by starting letters
        setTimeout(function(){ filterQuery = []; }, 1000);
      };

      $newSelect.on('keydown', onKeyDown);
    });
  };

}( jQuery ));
;(function ($) {

  var methods = {

    init : function(options) {
      var defaults = {
        indicators: true,
        height: 400,
        transition: 500,
        interval: 6000
      };
      options = $.extend(defaults, options);

      return this.each(function() {

        // For each slider, we want to keep track of
        // which slide is active and its associated content
        var $this = $(this);
        var $slider = $this.find('ul.slides').first();
        var $slides = $slider.find('li');
        var $active_index = $slider.find('.active').index();
        var $active;
        if ($active_index != -1) { $active = $slides.eq($active_index); }

        // Transitions the caption depending on alignment
        function captionTransition(caption, duration) {
          if (caption.hasClass("center-align")) {
            caption.velocity({opacity: 0, translateY: -100}, {duration: duration, queue: false});
          }
          else if (caption.hasClass("right-align")) {
            caption.velocity({opacity: 0, translateX: 100}, {duration: duration, queue: false});
          }
          else if (caption.hasClass("left-align")) {
            caption.velocity({opacity: 0, translateX: -100}, {duration: duration, queue: false});
          }
        }

        // This function will transition the slide to any index of the next slide
        function moveToSlide(index) {
          if (index >= $slides.length) index = 0;
          else if (index < 0) index = $slides.length -1;

          $active_index = $slider.find('.active').index();

          // Only do if index changes
          if ($active_index != index) {
            $active = $slides.eq($active_index);
            $caption = $active.find('.caption');

            $active.removeClass('active');
            $active.velocity({opacity: 0}, {duration: options.transition, queue: false, easing: 'easeOutQuad',
                              complete: function() {
                                $slides.not('.active').velocity({opacity: 0, translateX: 0, translateY: 0}, {duration: 0, queue: false});
                              } });
            captionTransition($caption, options.transition);


            // Update indicators
            if (options.indicators) {
              $indicators.eq($active_index).removeClass('active');
            }

            $slides.eq(index).velocity({opacity: 1}, {duration: options.transition, queue: false, easing: 'easeOutQuad'});
            $slides.eq(index).find('.caption').velocity({opacity: 1, translateX: 0, translateY: 0}, {duration: options.transition, delay: options.transition, queue: false, easing: 'easeOutQuad'});
            $slides.eq(index).addClass('active');


            // Update indicators
            if (options.indicators) {
              $indicators.eq(index).addClass('active');
            }
          }
        }

        // Set height of slider
        // If fullscreen, do nothing
        if (!$this.hasClass('fullscreen')) {
          if (options.indicators) {
            // Add height if indicators are present
            $this.height(options.height + 40);
          }
          else {
            $this.height(options.height);
          }
          $slider.height(options.height);
        }


        // Set initial positions of captions
        $slides.find('.caption').each(function () {
          captionTransition($(this), 0);
        });

        // Move img src into background-image
        $slides.find('img').each(function () {
          $(this).css('background-image', 'url(' + $(this).attr('src') + ')' );
          $(this).attr('src', 'data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==');
        });

        // dynamically add indicators
        if (options.indicators) {
          var $indicators = $('<ul class="indicators"></ul>');
          $slides.each(function( index ) {
            var $indicator = $('<li class="indicator-item"></li>');

            // Handle clicks on indicators
            $indicator.click(function () {
              var $parent = $slider.parent();
              var curr_index = $parent.find($(this)).index();
              moveToSlide(curr_index);

              // reset interval
              clearInterval($interval);
              $interval = setInterval(
                function(){
                  $active_index = $slider.find('.active').index();
                  if ($slides.length == $active_index + 1) $active_index = 0; // loop to start
                  else $active_index += 1;

                  moveToSlide($active_index);

                }, options.transition + options.interval
              );
            });
            $indicators.append($indicator);
          });
          $this.append($indicators);
          $indicators = $this.find('ul.indicators').find('li.indicator-item');
        }

        if ($active) {
          $active.show();
        }
        else {
          $slides.first().addClass('active').velocity({opacity: 1}, {duration: options.transition, queue: false, easing: 'easeOutQuad'});

          $active_index = 0;
          $active = $slides.eq($active_index);

          // Update indicators
          if (options.indicators) {
            $indicators.eq($active_index).addClass('active');
          }
        }

        // Adjust height to current slide
        $active.find('img').each(function() {
          $active.find('.caption').velocity({opacity: 1, translateX: 0, translateY: 0}, {duration: options.transition, queue: false, easing: 'easeOutQuad'});
        });

        // auto scroll
        $interval = setInterval(
          function(){
            $active_index = $slider.find('.active').index();
            moveToSlide($active_index + 1);

          }, options.transition + options.interval
        );


        // HammerJS, Swipe navigation

        // Touch Event
        var panning = false;
        var swipeLeft = false;
        var swipeRight = false;

        $this.hammer({
            prevent_default: false
        }).bind('pan', function(e) {
          if (e.gesture.pointerType === "touch") {

            // reset interval
            clearInterval($interval);

            var direction = e.gesture.direction;
            var x = e.gesture.deltaX;
            var velocityX = e.gesture.velocityX;

            $curr_slide = $slider.find('.active');
            $curr_slide.velocity({ translateX: x
                }, {duration: 50, queue: false, easing: 'easeOutQuad'});

            // Swipe Left
            if (direction === 4 && (x > ($this.innerWidth() / 2) || velocityX < -0.65)) {
              swipeRight = true;
            }
            // Swipe Right
            else if (direction === 2 && (x < (-1 * $this.innerWidth() / 2) || velocityX > 0.65)) {
              swipeLeft = true;
            }

            // Make Slide Behind active slide visible
            var next_slide;
            if (swipeLeft) {
              next_slide = $curr_slide.next();
              if (next_slide.length === 0) {
                next_slide = $slides.first();
              }
              next_slide.velocity({ opacity: 1
                  }, {duration: 300, queue: false, easing: 'easeOutQuad'});
            }
            if (swipeRight) {
              next_slide = $curr_slide.prev();
              if (next_slide.length === 0) {
                next_slide = $slides.last();
              }
              next_slide.velocity({ opacity: 1
                  }, {duration: 300, queue: false, easing: 'easeOutQuad'});
            }


          }

        }).bind('panend', function(e) {
          if (e.gesture.pointerType === "touch") {

            $curr_slide = $slider.find('.active');
            panning = false;
            curr_index = $slider.find('.active').index();

            if (!swipeRight && !swipeLeft) {
              // Return to original spot
              $curr_slide.velocity({ translateX: 0
                  }, {duration: 300, queue: false, easing: 'easeOutQuad'});
            }
            else if (swipeLeft) {
              moveToSlide(curr_index + 1);
              $curr_slide.velocity({translateX: -1 * $this.innerWidth() }, {duration: 300, queue: false, easing: 'easeOutQuad',
                                    complete: function() {
                                      $curr_slide.velocity({opacity: 0, translateX: 0}, {duration: 0, queue: false});
                                    } });
            }
            else if (swipeRight) {
              moveToSlide(curr_index - 1);
              $curr_slide.velocity({translateX: $this.innerWidth() }, {duration: 300, queue: false, easing: 'easeOutQuad',
                                    complete: function() {
                                      $curr_slide.velocity({opacity: 0, translateX: 0}, {duration: 0, queue: false});
                                    } });
            }
            swipeLeft = false;
            swipeRight = false;

            // Restart interval
            clearInterval($interval);
            $interval = setInterval(
              function(){
                $active_index = $slider.find('.active').index();
                if ($slides.length == $active_index + 1) $active_index = 0; // loop to start
                else $active_index += 1;

                moveToSlide($active_index);

              }, options.transition + options.interval
            );
          }
        });

        $this.on('sliderPause', function() {
          clearInterval($interval);
        });

        $this.on('sliderStart', function() {
          clearInterval($interval);
          $interval = setInterval(
            function(){
              $active_index = $slider.find('.active').index();
              if ($slides.length == $active_index + 1) $active_index = 0; // loop to start
              else $active_index += 1;

              moveToSlide($active_index);

            }, options.transition + options.interval
          );
        });

      });



    },
    pause : function() {
      $(this).trigger('sliderPause');
    },
    start : function() {
      $(this).trigger('sliderStart');
    }
  };


    $.fn.slider = function(methodOrOptions) {
      if ( methods[methodOrOptions] ) {
        return methods[ methodOrOptions ].apply( this, Array.prototype.slice.call( arguments, 1 ));
      } else if ( typeof methodOrOptions === 'object' || ! methodOrOptions ) {
        // Default to "init"
        return methods.init.apply( this, arguments );
      } else {
        $.error( 'Method ' +  methodOrOptions + ' does not exist on jQuery.tooltip' );
      }
    }; // Plugin end
}( jQuery ));;(function ($) {
  $(document).ready(function() {

    $(document).on('click.card', '.card', function (e) {
      if ($(this).find('.card-reveal').length) {
        if ($(e.target).is($('.card-reveal .card-title')) || $(e.target).is($('.card-reveal .card-title i'))) {
          // Make Reveal animate down and display none
          $(this).find('.card-reveal').velocity(
            {translateY: 0}, {
              duration: 225,
              queue: false,
              easing: 'easeInOutQuad',
              complete: function() { $(this).css({ display: 'none'}); }
            }
          );
        }
        else if ($(e.target).is($('.card .activator')) ||
                 $(e.target).is($('.card .activator i')) ) {
          $(this).find('.card-reveal').css({ display: 'block'}).velocity("stop", false).velocity({translateY: '-100%'}, {duration: 300, queue: false, easing: 'easeInOutQuad'});
        }
      }


    });

  });
}( jQuery ));;(function ($) {
  $(document).ready(function() {

    $.fn.pushpin = function (options) {

      var defaults = {
        top: 0,
        bottom: Infinity,
        offset: 0
      }
      options = $.extend(defaults, options);

      $index = 0;
      return this.each(function() {
        var $uniqueId = Materialize.guid(),
            $this = $(this),
            $original_offset = $(this).offset().top;

        function removePinClasses(object) {
          object.removeClass('pin-top');
          object.removeClass('pinned');
          object.removeClass('pin-bottom');
        }

        function updateElements(objects, scrolled) {
          objects.each(function () {
            // Add position fixed (because its between top and bottom)
            if (options.top <= scrolled && options.bottom >= scrolled && !$(this).hasClass('pinned')) {
              removePinClasses($(this));
              $(this).css('top', options.offset);
              $(this).addClass('pinned');
            }

            // Add pin-top (when scrolled position is above top)
            if (scrolled < options.top && !$(this).hasClass('pin-top')) {
              removePinClasses($(this));
              $(this).css('top', 0);
              $(this).addClass('pin-top');
            }

            // Add pin-bottom (when scrolled position is below bottom)
            if (scrolled > options.bottom && !$(this).hasClass('pin-bottom')) {
              removePinClasses($(this));
              $(this).addClass('pin-bottom');
              $(this).css('top', options.bottom - $original_offset);
            }
          });
        }

        updateElements($this, $(window).scrollTop());
        $(window).on('scroll.' + $uniqueId, function () {
          var $scrolled = $(window).scrollTop() + options.offset;
          updateElements($this, $scrolled);
        });

      });

    };


  });
}( jQuery ));;(function ($) {
  $(document).ready(function() {

    // jQuery reverse
    $.fn.reverse = [].reverse;

    $(document).on('mouseenter.fixedActionBtn', '.fixed-action-btn', function(e) {
      var $this = $(this);
      openFABMenu($this);

    });

    $(document).on('mouseleave.fixedActionBtn', '.fixed-action-btn', function(e) {
      var $this = $(this);
      closeFABMenu($this);
    });

  });

  $.fn.extend({
    openFAB: function() {
      var $this = $(this);
      openFABMenu($this);
    },
    closeFAB: function() {
      closeFABMenu($this);
    }
  });


  var openFABMenu = function (btn) {
    $this = btn;
    if ($this.hasClass('active') === false) {
      $this.addClass('active');
      $this.find('ul .btn-floating').velocity(
        { scaleY: ".4", scaleX: ".4", translateY: "40px"},
        { duration: 0 });

      var time = 0;
      $this.find('ul .btn-floating').reverse().each(function () {
        $(this).velocity(
          { opacity: "1", scaleX: "1", scaleY: "1", translateY: "0"},
          { duration: 80, delay: time });
        time += 40;
      });
    }
  };

  var closeFABMenu = function (btn) {
    $this = btn;
    $this.removeClass('active');
    var time = 0;
    $this.find('ul .btn-floating').velocity("stop", true);
    $this.find('ul .btn-floating').velocity(
      { opacity: "0", scaleX: ".4", scaleY: ".4", translateY: "40px"},
      { duration: 80 }
    );
  };


}( jQuery ));
;(function ($) {
  // Image transition function
  Materialize.fadeInImage =  function(selector){
    var element = $(selector);
    element.css({opacity: 0});
    $(element).velocity({opacity: 1}, {
        duration: 650,
        queue: false,
        easing: 'easeOutSine'
      });
    $(element).velocity({opacity: 1}, {
          duration: 1300,
          queue: false,
          easing: 'swing',
          step: function(now, fx) {
              fx.start = 100;
              var grayscale_setting = now/100;
              var brightness_setting = 150 - (100 - now)/1.75;

              if (brightness_setting < 100) {
                brightness_setting = 100;
              }
              if (now >= 0) {
                $(this).css({
                    "-webkit-filter": "grayscale("+grayscale_setting+")" + "brightness("+brightness_setting+"%)",
                    "filter": "grayscale("+grayscale_setting+")" + "brightness("+brightness_setting+"%)"
                });
              }
          }
      });
  };

  // Horizontal staggered list
  Materialize.showStaggeredList = function(selector) {
    var time = 0;
    $(selector).find('li').velocity(
        { translateX: "-100px"},
        { duration: 0 });

    $(selector).find('li').each(function() {
      $(this).velocity(
        { opacity: "1", translateX: "0"},
        { duration: 800, delay: time, easing: [60, 10] });
      time += 120;
    });
  };


  $(document).ready(function() {
    // Hardcoded .staggered-list scrollFire
    // var staggeredListOptions = [];
    // $('ul.staggered-list').each(function (i) {

    //   var label = 'scrollFire-' + i;
    //   $(this).addClass(label);
    //   staggeredListOptions.push(
    //     {selector: 'ul.staggered-list.' + label,
    //      offset: 200,
    //      callback: 'showStaggeredList("ul.staggered-list.' + label + '")'});
    // });
    // scrollFire(staggeredListOptions);

    // HammerJS, Swipe navigation

    // Touch Event
    var swipeLeft = false;
    var swipeRight = false;


    // Dismissible Collections
    $('.dismissable').each(function() {
      $(this).hammer({
        prevent_default: false
      }).bind('pan', function(e) {
        if (e.gesture.pointerType === "touch") {
          var $this = $(this);
          var direction = e.gesture.direction;
          var x = e.gesture.deltaX;
          var velocityX = e.gesture.velocityX;

          $this.velocity({ translateX: x
              }, {duration: 50, queue: false, easing: 'easeOutQuad'});

          // Swipe Left
          if (direction === 4 && (x > ($this.innerWidth() / 2) || velocityX < -0.75)) {
            swipeLeft = true;
          }

          // Swipe Right
          if (direction === 2 && (x < (-1 * $this.innerWidth() / 2) || velocityX > 0.75)) {
            swipeRight = true;
          }
        }
      }).bind('panend', function(e) {
        // Reset if collection is moved back into original position
        if (Math.abs(e.gesture.deltaX) < ($(this).innerWidth() / 2)) {
          swipeRight = false;
          swipeLeft = false;
        }

        if (e.gesture.pointerType === "touch") {
          var $this = $(this);
          if (swipeLeft || swipeRight) {
            var fullWidth;
            if (swipeLeft) { fullWidth = $this.innerWidth(); }
            else { fullWidth = -1 * $this.innerWidth(); }

            $this.velocity({ translateX: fullWidth,
              }, {duration: 100, queue: false, easing: 'easeOutQuad', complete:
              function() {
                $this.css('border', 'none');
                $this.velocity({ height: 0, padding: 0,
                  }, {duration: 200, queue: false, easing: 'easeOutQuad', complete:
                    function() { $this.remove(); }
                  });
              }
            });
          }
          else {
            $this.velocity({ translateX: 0,
              }, {duration: 100, queue: false, easing: 'easeOutQuad'});
          }
          swipeLeft = false;
          swipeRight = false;
        }
      });

    });


    // time = 0
    // // Vertical Staggered list
    // $('ul.staggered-list.vertical li').velocity(
    //     { translateY: "100px"},
    //     { duration: 0 });

    // $('ul.staggered-list.vertical li').each(function() {
    //   $(this).velocity(
    //     { opacity: "1", translateY: "0"},
    //     { duration: 800, delay: time, easing: [60, 25] });
    //   time += 120;
    // });

    // // Fade in and Scale
    // $('.fade-in.scale').velocity(
    //     { scaleX: .4, scaleY: .4, translateX: -600},
    //     { duration: 0});
    // $('.fade-in').each(function() {
    //   $(this).velocity(
    //     { opacity: "1", scaleX: 1, scaleY: 1, translateX: 0},
    //     { duration: 800, easing: [60, 10] });
    // });
  });
}( jQuery ));
;(function($) {

  // Input: Array of JSON objects {selector, offset, callback}

  Materialize.scrollFire = function(options) {

    var didScroll = false;

    window.addEventListener("scroll", function() {
      didScroll = true;
    });

    // Rate limit to 100ms
    setInterval(function() {
      if(didScroll) {
          didScroll = false;

          var windowScroll = window.pageYOffset + window.innerHeight;

          for (var i = 0 ; i < options.length; i++) {
            // Get options from each line
            var value = options[i];
            var selector = value.selector,
                offset = value.offset,
                callback = value.callback;

            var currentElement = document.querySelector(selector);
            if ( currentElement !== null) {
              var elementOffset = currentElement.getBoundingClientRect().top + document.body.scrollTop;

              if (windowScroll > (elementOffset + offset)) {
                if (value.done !== true) {
                  var callbackFunc = new Function(callback);
                  callbackFunc();
                  value.done = true;
                }
              }
            }
          }
      }
    }, 100);
  };

})(jQuery);;/*!
 * pickadate.js v3.5.0, 2014/04/13
 * By Amsul, http://amsul.ca
 * Hosted on http://amsul.github.io/pickadate.js
 * Licensed under MIT
 */

(function ( factory ) {

    // AMD.
    if ( typeof define == 'function' && define.amd )
        define( 'picker', ['jquery'], factory )

    // Node.js/browserify.
    else if ( typeof exports == 'object' )
        module.exports = factory( require('jquery') )

    // Browser globals.
    else this.Picker = factory( jQuery )

}(function( $ ) {

var $window = $( window )
var $document = $( document )
var $html = $( document.documentElement )


/**
 * The picker constructor that creates a blank picker.
 */
function PickerConstructor( ELEMENT, NAME, COMPONENT, OPTIONS ) {

    // If there’s no element, return the picker constructor.
    if ( !ELEMENT ) return PickerConstructor


    var
        IS_DEFAULT_THEME = false,


        // The state of the picker.
        STATE = {
            id: ELEMENT.id || 'P' + Math.abs( ~~(Math.random() * new Date()) )
        },


        // Merge the defaults and options passed.
        SETTINGS = COMPONENT ? $.extend( true, {}, COMPONENT.defaults, OPTIONS ) : OPTIONS || {},


        // Merge the default classes with the settings classes.
        CLASSES = $.extend( {}, PickerConstructor.klasses(), SETTINGS.klass ),


        // The element node wrapper into a jQuery object.
        $ELEMENT = $( ELEMENT ),


        // Pseudo picker constructor.
        PickerInstance = function() {
            return this.start()
        },


        // The picker prototype.
        P = PickerInstance.prototype = {

            constructor: PickerInstance,

            $node: $ELEMENT,


            /**
             * Initialize everything
             */
            start: function() {

                // If it’s already started, do nothing.
                if ( STATE && STATE.start ) return P


                // Update the picker states.
                STATE.methods = {}
                STATE.start = true
                STATE.open = false
                STATE.type = ELEMENT.type


                // Confirm focus state, convert into text input to remove UA stylings,
                // and set as readonly to prevent keyboard popup.
                ELEMENT.autofocus = ELEMENT == getActiveElement()
                ELEMENT.readOnly = !SETTINGS.editable
                ELEMENT.id = ELEMENT.id || STATE.id
                if ( ELEMENT.type != 'text' ) {
                    ELEMENT.type = 'text'
                }


                // Create a new picker component with the settings.
                P.component = new COMPONENT(P, SETTINGS)


                // Create the picker root with a holder and then prepare it.
                P.$root = $( PickerConstructor._.node('div', createWrappedComponent(), CLASSES.picker, 'id="' + ELEMENT.id + '_root" tabindex="0"') )
                prepareElementRoot()


                // If there’s a format for the hidden input element, create the element.
                if ( SETTINGS.formatSubmit ) {
                    prepareElementHidden()
                }


                // Prepare the input element.
                prepareElement()


                // Insert the root as specified in the settings.
                if ( SETTINGS.container ) $( SETTINGS.container ).append( P.$root )
                else $ELEMENT.after( P.$root )


                // Bind the default component and settings events.
                P.on({
                    start: P.component.onStart,
                    render: P.component.onRender,
                    stop: P.component.onStop,
                    open: P.component.onOpen,
                    close: P.component.onClose,
                    set: P.component.onSet
                }).on({
                    start: SETTINGS.onStart,
                    render: SETTINGS.onRender,
                    stop: SETTINGS.onStop,
                    open: SETTINGS.onOpen,
                    close: SETTINGS.onClose,
                    set: SETTINGS.onSet
                })


                // Once we’re all set, check the theme in use.
                IS_DEFAULT_THEME = isUsingDefaultTheme( P.$root.children()[ 0 ] )


                // If the element has autofocus, open the picker.
                if ( ELEMENT.autofocus ) {
                    P.open()
                }


                // Trigger queued the “start” and “render” events.
                return P.trigger( 'start' ).trigger( 'render' )
            }, //start


            /**
             * Render a new picker
             */
            render: function( entireComponent ) {

                // Insert a new component holder in the root or box.
                if ( entireComponent ) P.$root.html( createWrappedComponent() )
                else P.$root.find( '.' + CLASSES.box ).html( P.component.nodes( STATE.open ) )

                // Trigger the queued “render” events.
                return P.trigger( 'render' )
            }, //render


            /**
             * Destroy everything
             */
            stop: function() {

                // If it’s already stopped, do nothing.
                if ( !STATE.start ) return P

                // Then close the picker.
                P.close()

                // Remove the hidden field.
                if ( P._hidden ) {
                    P._hidden.parentNode.removeChild( P._hidden )
                }

                // Remove the root.
                P.$root.remove()

                // Remove the input class, remove the stored data, and unbind
                // the events (after a tick for IE - see `P.close`).
                $ELEMENT.removeClass( CLASSES.input ).removeData( NAME )
                setTimeout( function() {
                    $ELEMENT.off( '.' + STATE.id )
                }, 0)

                // Restore the element state
                ELEMENT.type = STATE.type
                ELEMENT.readOnly = false

                // Trigger the queued “stop” events.
                P.trigger( 'stop' )

                // Reset the picker states.
                STATE.methods = {}
                STATE.start = false

                return P
            }, //stop


            /**
             * Open up the picker
             */
            open: function( dontGiveFocus ) {

                // If it’s already open, do nothing.
                if ( STATE.open ) return P

                // Add the “active” class.
                $ELEMENT.addClass( CLASSES.active )
                aria( ELEMENT, 'expanded', true )

                // * A Firefox bug, when `html` has `overflow:hidden`, results in
                //   killing transitions :(. So add the “opened” state on the next tick.
                //   Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289
                setTimeout( function() {

                    // Add the “opened” class to the picker root.
                    P.$root.addClass( CLASSES.opened )
                    aria( P.$root[0], 'hidden', false )

                }, 0 )

                // If we have to give focus, bind the element and doc events.
                if ( dontGiveFocus !== false ) {

                    // Set it as open.
                    STATE.open = true

                    // Prevent the page from scrolling.
                    if ( IS_DEFAULT_THEME ) {
                        $html.
                            css( 'overflow', 'hidden' ).
                            css( 'padding-right', '+=' + getScrollbarWidth() )
                    }

                    // Pass focus to the root element’s jQuery object.
                    // * Workaround for iOS8 to bring the picker’s root into view.
                    P.$root[0].focus()

                    // Bind the document events.
                    $document.on( 'click.' + STATE.id + ' focusin.' + STATE.id, function( event ) {

                        var target = event.target

                        // If the target of the event is not the element, close the picker picker.
                        // * Don’t worry about clicks or focusins on the root because those don’t bubble up.
                        //   Also, for Firefox, a click on an `option` element bubbles up directly
                        //   to the doc. So make sure the target wasn't the doc.
                        // * In Firefox stopPropagation() doesn’t prevent right-click events from bubbling,
                        //   which causes the picker to unexpectedly close when right-clicking it. So make
                        //   sure the event wasn’t a right-click.
                        if ( target != ELEMENT && target != document && event.which != 3 ) {

                            // If the target was the holder that covers the screen,
                            // keep the element focused to maintain tabindex.
                            P.close( target === P.$root.children()[0] )
                        }

                    }).on( 'keydown.' + STATE.id, function( event ) {

                        var
                            // Get the keycode.
                            keycode = event.keyCode,

                            // Translate that to a selection change.
                            keycodeToMove = P.component.key[ keycode ],

                            // Grab the target.
                            target = event.target


                        // On escape, close the picker and give focus.
                        if ( keycode == 27 ) {
                            P.close( true )
                        }


                        // Check if there is a key movement or “enter” keypress on the element.
                        else if ( target == P.$root[0] && ( keycodeToMove || keycode == 13 ) ) {

                            // Prevent the default action to stop page movement.
                            event.preventDefault()

                            // Trigger the key movement action.
                            if ( keycodeToMove ) {
                                PickerConstructor._.trigger( P.component.key.go, P, [ PickerConstructor._.trigger( keycodeToMove ) ] )
                            }

                            // On “enter”, if the highlighted item isn’t disabled, set the value and close.
                            else if ( !P.$root.find( '.' + CLASSES.highlighted ).hasClass( CLASSES.disabled ) ) {
                                P.set( 'select', P.component.item.highlight ).close()
                            }
                        }


                        // If the target is within the root and “enter” is pressed,
                        // prevent the default action and trigger a click on the target instead.
                        else if ( $.contains( P.$root[0], target ) && keycode == 13 ) {
                            event.preventDefault()
                            target.click()
                        }
                    })
                }

                // Trigger the queued “open” events.
                return P.trigger( 'open' )
            }, //open


            /**
             * Close the picker
             */
            close: function( giveFocus ) {

                // If we need to give focus, do it before changing states.
                if ( giveFocus ) {
                    // ....ah yes! It would’ve been incomplete without a crazy workaround for IE :|
                    // The focus is triggered *after* the close has completed - causing it
                    // to open again. So unbind and rebind the event at the next tick.
                    P.$root.off( 'focus.toOpen' )[0].focus()
                    setTimeout( function() {
                        P.$root.on( 'focus.toOpen', handleFocusToOpenEvent )
                    }, 0 )
                }

                // Remove the “active” class.
                $ELEMENT.removeClass( CLASSES.active )
                aria( ELEMENT, 'expanded', false )

                // * A Firefox bug, when `html` has `overflow:hidden`, results in
                //   killing transitions :(. So remove the “opened” state on the next tick.
                //   Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289
                setTimeout( function() {

                    // Remove the “opened” and “focused” class from the picker root.
                    P.$root.removeClass( CLASSES.opened + ' ' + CLASSES.focused )
                    aria( P.$root[0], 'hidden', true )

                }, 0 )

                // If it’s already closed, do nothing more.
                if ( !STATE.open ) return P

                // Set it as closed.
                STATE.open = false

                // Allow the page to scroll.
                if ( IS_DEFAULT_THEME ) {
                    $html.
                        css( 'overflow', '' ).
                        css( 'padding-right', '-=' + getScrollbarWidth() )
                }

                // Unbind the document events.
                $document.off( '.' + STATE.id )

                // Trigger the queued “close” events.
                return P.trigger( 'close' )
            }, //close


            /**
             * Clear the values
             */
            clear: function( options ) {
                return P.set( 'clear', null, options )
            }, //clear


            /**
             * Set something
             */
            set: function( thing, value, options ) {

                var thingItem, thingValue,
                    thingIsObject = $.isPlainObject( thing ),
                    thingObject = thingIsObject ? thing : {}

                // Make sure we have usable options.
                options = thingIsObject && $.isPlainObject( value ) ? value : options || {}

                if ( thing ) {

                    // If the thing isn’t an object, make it one.
                    if ( !thingIsObject ) {
                        thingObject[ thing ] = value
                    }

                    // Go through the things of items to set.
                    for ( thingItem in thingObject ) {

                        // Grab the value of the thing.
                        thingValue = thingObject[ thingItem ]

                        // First, if the item exists and there’s a value, set it.
                        if ( thingItem in P.component.item ) {
                            if ( thingValue === undefined ) thingValue = null
                            P.component.set( thingItem, thingValue, options )
                        }

                        // Then, check to update the element value and broadcast a change.
                        if ( thingItem == 'select' || thingItem == 'clear' ) {
                            $ELEMENT.
                                val( thingItem == 'clear' ? '' : P.get( thingItem, SETTINGS.format ) ).
                                trigger( 'change' )
                        }
                    }

                    // Render a new picker.
                    P.render()
                }

                // When the method isn’t muted, trigger queued “set” events and pass the `thingObject`.
                return options.muted ? P : P.trigger( 'set', thingObject )
            }, //set


            /**
             * Get something
             */
            get: function( thing, format ) {

                // Make sure there’s something to get.
                thing = thing || 'value'

                // If a picker state exists, return that.
                if ( STATE[ thing ] != null ) {
                    return STATE[ thing ]
                }

                // Return the submission value, if that.
                if ( thing == 'valueSubmit' ) {
                    if ( P._hidden ) {
                        return P._hidden.value
                    }
                    thing = 'value'
                }

                // Return the value, if that.
                if ( thing == 'value' ) {
                    return ELEMENT.value
                }

                // Check if a component item exists, return that.
                if ( thing in P.component.item ) {
                    if ( typeof format == 'string' ) {
                        var thingValue = P.component.get( thing )
                        return thingValue ?
                            PickerConstructor._.trigger(
                                P.component.formats.toString,
                                P.component,
                                [ format, thingValue ]
                            ) : ''
                    }
                    return P.component.get( thing )
                }
            }, //get



            /**
             * Bind events on the things.
             */
            on: function( thing, method, internal ) {

                var thingName, thingMethod,
                    thingIsObject = $.isPlainObject( thing ),
                    thingObject = thingIsObject ? thing : {}

                if ( thing ) {

                    // If the thing isn’t an object, make it one.
                    if ( !thingIsObject ) {
                        thingObject[ thing ] = method
                    }

                    // Go through the things to bind to.
                    for ( thingName in thingObject ) {

                        // Grab the method of the thing.
                        thingMethod = thingObject[ thingName ]

                        // If it was an internal binding, prefix it.
                        if ( internal ) {
                            thingName = '_' + thingName
                        }

                        // Make sure the thing methods collection exists.
                        STATE.methods[ thingName ] = STATE.methods[ thingName ] || []

                        // Add the method to the relative method collection.
                        STATE.methods[ thingName ].push( thingMethod )
                    }
                }

                return P
            }, //on



            /**
             * Unbind events on the things.
             */
            off: function() {
                var i, thingName,
                    names = arguments;
                for ( i = 0, namesCount = names.length; i < namesCount; i += 1 ) {
                    thingName = names[i]
                    if ( thingName in STATE.methods ) {
                        delete STATE.methods[thingName]
                    }
                }
                return P
            },


            /**
             * Fire off method events.
             */
            trigger: function( name, data ) {
                var _trigger = function( name ) {
                    var methodList = STATE.methods[ name ]
                    if ( methodList ) {
                        methodList.map( function( method ) {
                            PickerConstructor._.trigger( method, P, [ data ] )
                        })
                    }
                }
                _trigger( '_' + name )
                _trigger( name )
                return P
            } //trigger
        } //PickerInstance.prototype


    /**
     * Wrap the picker holder components together.
     */
    function createWrappedComponent() {

        // Create a picker wrapper holder
        return PickerConstructor._.node( 'div',

            // Create a picker wrapper node
            PickerConstructor._.node( 'div',

                // Create a picker frame
                PickerConstructor._.node( 'div',

                    // Create a picker box node
                    PickerConstructor._.node( 'div',

                        // Create the components nodes.
                        P.component.nodes( STATE.open ),

                        // The picker box class
                        CLASSES.box
                    ),

                    // Picker wrap class
                    CLASSES.wrap
                ),

                // Picker frame class
                CLASSES.frame
            ),

            // Picker holder class
            CLASSES.holder
        ) //endreturn
    } //createWrappedComponent



    /**
     * Prepare the input element with all bindings.
     */
    function prepareElement() {

        $ELEMENT.

            // Store the picker data by component name.
            data(NAME, P).

            // Add the “input” class name.
            addClass(CLASSES.input).

            // Remove the tabindex.
            attr('tabindex', -1).

            // If there’s a `data-value`, update the value of the element.
            val( $ELEMENT.data('value') ?
                P.get('select', SETTINGS.format) :
                ELEMENT.value
            )


        // Only bind keydown events if the element isn’t editable.
        if ( !SETTINGS.editable ) {

            $ELEMENT.

                // On focus/click, focus onto the root to open it up.
                on( 'focus.' + STATE.id + ' click.' + STATE.id, function( event ) {
                    event.preventDefault()
                    P.$root[0].focus()
                }).

                // Handle keyboard event based on the picker being opened or not.
                on( 'keydown.' + STATE.id, handleKeydownEvent )
        }


        // Update the aria attributes.
        aria(ELEMENT, {
            haspopup: true,
            expanded: false,
            readonly: false,
            owns: ELEMENT.id + '_root'
        })
    }


    /**
     * Prepare the root picker element with all bindings.
     */
    function prepareElementRoot() {

        P.$root.

            on({

                // For iOS8.
                keydown: handleKeydownEvent,

                // When something within the root is focused, stop from bubbling
                // to the doc and remove the “focused” state from the root.
                focusin: function( event ) {
                    P.$root.removeClass( CLASSES.focused )
                    event.stopPropagation()
                },

                // When something within the root holder is clicked, stop it
                // from bubbling to the doc.
                'mousedown click': function( event ) {

                    var target = event.target

                    // Make sure the target isn’t the root holder so it can bubble up.
                    if ( target != P.$root.children()[ 0 ] ) {

                        event.stopPropagation()

                        // * For mousedown events, cancel the default action in order to
                        //   prevent cases where focus is shifted onto external elements
                        //   when using things like jQuery mobile or MagnificPopup (ref: #249 & #120).
                        //   Also, for Firefox, don’t prevent action on the `option` element.
                        if ( event.type == 'mousedown' && !$( target ).is( 'input, select, textarea, button, option' )) {

                            event.preventDefault()

                            // Re-focus onto the root so that users can click away
                            // from elements focused within the picker.
                            P.$root[0].focus()
                        }
                    }
                }
            }).

            // Add/remove the “target” class on focus and blur.
            on({
                focus: function() {
                    $ELEMENT.addClass( CLASSES.target )
                },
                blur: function() {
                    $ELEMENT.removeClass( CLASSES.target )
                }
            }).

            // Open the picker and adjust the root “focused” state
            on( 'focus.toOpen', handleFocusToOpenEvent ).

            // If there’s a click on an actionable element, carry out the actions.
            on( 'click', '[data-pick], [data-nav], [data-clear], [data-close]', function() {

                var $target = $( this ),
                    targetData = $target.data(),
                    targetDisabled = $target.hasClass( CLASSES.navDisabled ) || $target.hasClass( CLASSES.disabled ),

                    // * For IE, non-focusable elements can be active elements as well
                    //   (http://stackoverflow.com/a/2684561).
                    activeElement = getActiveElement()
                    activeElement = activeElement && ( activeElement.type || activeElement.href )

                // If it’s disabled or nothing inside is actively focused, re-focus the element.
                if ( targetDisabled || activeElement && !$.contains( P.$root[0], activeElement ) ) {
                    P.$root[0].focus()
                }

                // If something is superficially changed, update the `highlight` based on the `nav`.
                if ( !targetDisabled && targetData.nav ) {
                    P.set( 'highlight', P.component.item.highlight, { nav: targetData.nav } )
                }

                // If something is picked, set `select` then close with focus.
                else if ( !targetDisabled && 'pick' in targetData ) {
                    P.set( 'select', targetData.pick )
                }

                // If a “clear” button is pressed, empty the values and close with focus.
                else if ( targetData.clear ) {
                    P.clear().close( true )
                }

                else if ( targetData.close ) {
                    P.close( true )
                }

            }) //P.$root

        aria( P.$root[0], 'hidden', true )
    }


     /**
      * Prepare the hidden input element along with all bindings.
      */
    function prepareElementHidden() {

        var name

        if ( SETTINGS.hiddenName === true ) {
            name = ELEMENT.name
            ELEMENT.name = ''
        }
        else {
            name = [
                typeof SETTINGS.hiddenPrefix == 'string' ? SETTINGS.hiddenPrefix : '',
                typeof SETTINGS.hiddenSuffix == 'string' ? SETTINGS.hiddenSuffix : '_submit'
            ]
            name = name[0] + ELEMENT.name + name[1]
        }

        P._hidden = $(
            '<input ' +
            'type=hidden ' +

            // Create the name using the original input’s with a prefix and suffix.
            'name="' + name + '"' +

            // If the element has a value, set the hidden value as well.
            (
                $ELEMENT.data('value') || ELEMENT.value ?
                    ' value="' + P.get('select', SETTINGS.formatSubmit) + '"' :
                    ''
            ) +
            '>'
        )[0]

        $ELEMENT.

            // If the value changes, update the hidden input with the correct format.
            on('change.' + STATE.id, function() {
                P._hidden.value = ELEMENT.value ?
                    P.get('select', SETTINGS.formatSubmit) :
                    ''
            })


        // Insert the hidden input as specified in the settings.
        if ( SETTINGS.container ) $( SETTINGS.container ).append( P._hidden )
        else $ELEMENT.after( P._hidden )
    }


    // For iOS8.
    function handleKeydownEvent( event ) {

        var keycode = event.keyCode,

            // Check if one of the delete keys was pressed.
            isKeycodeDelete = /^(8|46)$/.test(keycode)

        // For some reason IE clears the input value on “escape”.
        if ( keycode == 27 ) {
            P.close()
            return false
        }

        // Check if `space` or `delete` was pressed or the picker is closed with a key movement.
        if ( keycode == 32 || isKeycodeDelete || !STATE.open && P.component.key[keycode] ) {

            // Prevent it from moving the page and bubbling to doc.
            event.preventDefault()
            event.stopPropagation()

            // If `delete` was pressed, clear the values and close the picker.
            // Otherwise open the picker.
            if ( isKeycodeDelete ) { P.clear().close() }
            else { P.open() }
        }
    }


    // Separated for IE
    function handleFocusToOpenEvent( event ) {

        // Stop the event from propagating to the doc.
        event.stopPropagation()

        // If it’s a focus event, add the “focused” class to the root.
        if ( event.type == 'focus' ) {
            P.$root.addClass( CLASSES.focused )
        }

        // And then finally open the picker.
        P.open()
    }


    // Return a new picker instance.
    return new PickerInstance()
} //PickerConstructor



/**
 * The default classes and prefix to use for the HTML classes.
 */
PickerConstructor.klasses = function( prefix ) {
    prefix = prefix || 'picker'
    return {

        picker: prefix,
        opened: prefix + '--opened',
        focused: prefix + '--focused',

        input: prefix + '__input',
        active: prefix + '__input--active',
        target: prefix + '__input--target',

        holder: prefix + '__holder',

        frame: prefix + '__frame',
        wrap: prefix + '__wrap',

        box: prefix + '__box'
    }
} //PickerConstructor.klasses



/**
 * Check if the default theme is being used.
 */
function isUsingDefaultTheme( element ) {

    var theme,
        prop = 'position'

    // For IE.
    if ( element.currentStyle ) {
        theme = element.currentStyle[prop]
    }

    // For normal browsers.
    else if ( window.getComputedStyle ) {
        theme = getComputedStyle( element )[prop]
    }

    return theme == 'fixed'
}



/**
 * Get the width of the browser’s scrollbar.
 * Taken from: https://github.com/VodkaBears/Remodal/blob/master/src/jquery.remodal.js
 */
function getScrollbarWidth() {

    if ( $html.height() <= $window.height() ) {
        return 0
    }

    var $outer = $( '<div style="visibility:hidden;width:100px" />' ).
        appendTo( 'body' )

    // Get the width without scrollbars.
    var widthWithoutScroll = $outer[0].offsetWidth

    // Force adding scrollbars.
    $outer.css( 'overflow', 'scroll' )

    // Add the inner div.
    var $inner = $( '<div style="width:100%" />' ).appendTo( $outer )

    // Get the width with scrollbars.
    var widthWithScroll = $inner[0].offsetWidth

    // Remove the divs.
    $outer.remove()

    // Return the difference between the widths.
    return widthWithoutScroll - widthWithScroll
}



/**
 * PickerConstructor helper methods.
 */
PickerConstructor._ = {

    /**
     * Create a group of nodes. Expects:
     * `
        {
            min:    {Integer},
            max:    {Integer},
            i:      {Integer},
            node:   {String},
            item:   {Function}
        }
     * `
     */
    group: function( groupObject ) {

        var
            // Scope for the looped object
            loopObjectScope,

            // Create the nodes list
            nodesList = '',

            // The counter starts from the `min`
            counter = PickerConstructor._.trigger( groupObject.min, groupObject )


        // Loop from the `min` to `max`, incrementing by `i`
        for ( ; counter <= PickerConstructor._.trigger( groupObject.max, groupObject, [ counter ] ); counter += groupObject.i ) {

            // Trigger the `item` function within scope of the object
            loopObjectScope = PickerConstructor._.trigger( groupObject.item, groupObject, [ counter ] )

            // Splice the subgroup and create nodes out of the sub nodes
            nodesList += PickerConstructor._.node(
                groupObject.node,
                loopObjectScope[ 0 ],   // the node
                loopObjectScope[ 1 ],   // the classes
                loopObjectScope[ 2 ]    // the attributes
            )
        }

        // Return the list of nodes
        return nodesList
    }, //group


    /**
     * Create a dom node string
     */
    node: function( wrapper, item, klass, attribute ) {

        // If the item is false-y, just return an empty string
        if ( !item ) return ''

        // If the item is an array, do a join
        item = $.isArray( item ) ? item.join( '' ) : item

        // Check for the class
        klass = klass ? ' class="' + klass + '"' : ''

        // Check for any attributes
        attribute = attribute ? ' ' + attribute : ''

        // Return the wrapped item
        return '<' + wrapper + klass + attribute + '>' + item + '</' + wrapper + '>'
    }, //node


    /**
     * Lead numbers below 10 with a zero.
     */
    lead: function( number ) {
        return ( number < 10 ? '0': '' ) + number
    },


    /**
     * Trigger a function otherwise return the value.
     */
    trigger: function( callback, scope, args ) {
        return typeof callback == 'function' ? callback.apply( scope, args || [] ) : callback
    },


    /**
     * If the second character is a digit, length is 2 otherwise 1.
     */
    digits: function( string ) {
        return ( /\d/ ).test( string[ 1 ] ) ? 2 : 1
    },


    /**
     * Tell if something is a date object.
     */
    isDate: function( value ) {
        return {}.toString.call( value ).indexOf( 'Date' ) > -1 && this.isInteger( value.getDate() )
    },


    /**
     * Tell if something is an integer.
     */
    isInteger: function( value ) {
        return {}.toString.call( value ).indexOf( 'Number' ) > -1 && value % 1 === 0
    },


    /**
     * Create ARIA attribute strings.
     */
    ariaAttr: ariaAttr
} //PickerConstructor._



/**
 * Extend the picker with a component and defaults.
 */
PickerConstructor.extend = function( name, Component ) {

    // Extend jQuery.
    $.fn[ name ] = function( options, action ) {

        // Grab the component data.
        var componentData = this.data( name )

        // If the picker is requested, return the data object.
        if ( options == 'picker' ) {
            return componentData
        }

        // If the component data exists and `options` is a string, carry out the action.
        if ( componentData && typeof options == 'string' ) {
            return PickerConstructor._.trigger( componentData[ options ], componentData, [ action ] )
        }

        // Otherwise go through each matched element and if the component
        // doesn’t exist, create a new picker using `this` element
        // and merging the defaults and options with a deep copy.
        return this.each( function() {
            var $this = $( this )
            if ( !$this.data( name ) ) {
                new PickerConstructor( this, name, Component, options )
            }
        })
    }

    // Set the defaults.
    $.fn[ name ].defaults = Component.defaults
} //PickerConstructor.extend



function aria(element, attribute, value) {
    if ( $.isPlainObject(attribute) ) {
        for ( var key in attribute ) {
            ariaSet(element, key, attribute[key])
        }
    }
    else {
        ariaSet(element, attribute, value)
    }
}
function ariaSet(element, attribute, value) {
    element.setAttribute(
        (attribute == 'role' ? '' : 'aria-') + attribute,
        value
    )
}
function ariaAttr(attribute, data) {
    if ( !$.isPlainObject(attribute) ) {
        attribute = { attribute: data }
    }
    data = ''
    for ( var key in attribute ) {
        var attr = (key == 'role' ? '' : 'aria-') + key,
            attrVal = attribute[key]
        data += attrVal == null ? '' : attr + '="' + attribute[key] + '"'
    }
    return data
}

// IE8 bug throws an error for activeElements within iframes.
function getActiveElement() {
    try {
        return document.activeElement
    } catch ( err ) { }
}



// Expose the picker constructor.
return PickerConstructor


}));


;/*!
 * Date picker for pickadate.js v3.5.0
 * http://amsul.github.io/pickadate.js/date.htm
 */

(function ( factory ) {

    // AMD.
    if ( typeof define == 'function' && define.amd )
        define( ['picker', 'jquery'], factory )

    // Node.js/browserify.
    else if ( typeof exports == 'object' )
        module.exports = factory( require('./picker.js'), require('jquery') )

    // Browser globals.
    else factory( Picker, jQuery )

}(function( Picker, $ ) {


/**
 * Globals and constants
 */
var DAYS_IN_WEEK = 7,
    WEEKS_IN_CALENDAR = 6,
    _ = Picker._



/**
 * The date picker constructor
 */
function DatePicker( picker, settings ) {

    var calendar = this,
        element = picker.$node[ 0 ],
        elementValue = element.value,
        elementDataValue = picker.$node.data( 'value' ),
        valueString = elementDataValue || elementValue,
        formatString = elementDataValue ? settings.formatSubmit : settings.format,
        isRTL = function() {

            return element.currentStyle ?

                // For IE.
                element.currentStyle.direction == 'rtl' :

                // For normal browsers.
                getComputedStyle( picker.$root[0] ).direction == 'rtl'
        }

    calendar.settings = settings
    calendar.$node = picker.$node

    // The queue of methods that will be used to build item objects.
    calendar.queue = {
        min: 'measure create',
        max: 'measure create',
        now: 'now create',
        select: 'parse create validate',
        highlight: 'parse navigate create validate',
        view: 'parse create validate viewset',
        disable: 'deactivate',
        enable: 'activate'
    }

    // The component's item object.
    calendar.item = {}

    calendar.item.clear = null
    calendar.item.disable = ( settings.disable || [] ).slice( 0 )
    calendar.item.enable = -(function( collectionDisabled ) {
        return collectionDisabled[ 0 ] === true ? collectionDisabled.shift() : -1
    })( calendar.item.disable )

    calendar.
        set( 'min', settings.min ).
        set( 'max', settings.max ).
        set( 'now' )

    // When there’s a value, set the `select`, which in turn
    // also sets the `highlight` and `view`.
    if ( valueString ) {
        calendar.set( 'select', valueString, { format: formatString })
    }

    // If there’s no value, default to highlighting “today”.
    else {
        calendar.
            set( 'select', null ).
            set( 'highlight', calendar.item.now )
    }


    // The keycode to movement mapping.
    calendar.key = {
        40: 7, // Down
        38: -7, // Up
        39: function() { return isRTL() ? -1 : 1 }, // Right
        37: function() { return isRTL() ? 1 : -1 }, // Left
        go: function( timeChange ) {
            var highlightedObject = calendar.item.highlight,
                targetDate = new Date( highlightedObject.year, highlightedObject.month, highlightedObject.date + timeChange )
            calendar.set(
                'highlight',
                targetDate,
                { interval: timeChange }
            )
            this.render()
        }
    }


    // Bind some picker events.
    picker.
        on( 'render', function() {
            picker.$root.find( '.' + settings.klass.selectMonth ).on( 'change', function() {
                var value = this.value
                if ( value ) {
                    picker.set( 'highlight', [ picker.get( 'view' ).year, value, picker.get( 'highlight' ).date ] )
                    picker.$root.find( '.' + settings.klass.selectMonth ).trigger( 'focus' )
                }
            })
            picker.$root.find( '.' + settings.klass.selectYear ).on( 'change', function() {
                var value = this.value
                if ( value ) {
                    picker.set( 'highlight', [ value, picker.get( 'view' ).month, picker.get( 'highlight' ).date ] )
                    picker.$root.find( '.' + settings.klass.selectYear ).trigger( 'focus' )
                }
            })
        }, 1 ).
        on( 'open', function() {
            var includeToday = ''
            if ( calendar.disabled( calendar.get('now') ) ) {
                includeToday = ':not(.' + settings.klass.buttonToday + ')'
            }
            picker.$root.find( 'button' + includeToday + ', select' ).attr( 'disabled', false )
        }, 1 ).
        on( 'close', function() {
            picker.$root.find( 'button, select' ).attr( 'disabled', true )
        }, 1 )

} //DatePicker


/**
 * Set a datepicker item object.
 */
DatePicker.prototype.set = function( type, value, options ) {

    var calendar = this,
        calendarItem = calendar.item

    // If the value is `null` just set it immediately.
    if ( value === null ) {
        if ( type == 'clear' ) type = 'select'
        calendarItem[ type ] = value
        return calendar
    }

    // Otherwise go through the queue of methods, and invoke the functions.
    // Update this as the time unit, and set the final value as this item.
    // * In the case of `enable`, keep the queue but set `disable` instead.
    //   And in the case of `flip`, keep the queue but set `enable` instead.
    calendarItem[ ( type == 'enable' ? 'disable' : type == 'flip' ? 'enable' : type ) ] = calendar.queue[ type ].split( ' ' ).map( function( method ) {
        value = calendar[ method ]( type, value, options )
        return value
    }).pop()

    // Check if we need to cascade through more updates.
    if ( type == 'select' ) {
        calendar.set( 'highlight', calendarItem.select, options )
    }
    else if ( type == 'highlight' ) {
        calendar.set( 'view', calendarItem.highlight, options )
    }
    else if ( type.match( /^(flip|min|max|disable|enable)$/ ) ) {
        if ( calendarItem.select && calendar.disabled( calendarItem.select ) ) {
            calendar.set( 'select', calendarItem.select, options )
        }
        if ( calendarItem.highlight && calendar.disabled( calendarItem.highlight ) ) {
            calendar.set( 'highlight', calendarItem.highlight, options )
        }
    }

    return calendar
} //DatePicker.prototype.set


/**
 * Get a datepicker item object.
 */
DatePicker.prototype.get = function( type ) {
    return this.item[ type ]
} //DatePicker.prototype.get


/**
 * Create a picker date object.
 */
DatePicker.prototype.create = function( type, value, options ) {

    var isInfiniteValue,
        calendar = this

    // If there’s no value, use the type as the value.
    value = value === undefined ? type : value


    // If it’s infinity, update the value.
    if ( value == -Infinity || value == Infinity ) {
        isInfiniteValue = value
    }

    // If it’s an object, use the native date object.
    else if ( $.isPlainObject( value ) && _.isInteger( value.pick ) ) {
        value = value.obj
    }

    // If it’s an array, convert it into a date and make sure
    // that it’s a valid date – otherwise default to today.
    else if ( $.isArray( value ) ) {
        value = new Date( value[ 0 ], value[ 1 ], value[ 2 ] )
        value = _.isDate( value ) ? value : calendar.create().obj
    }

    // If it’s a number or date object, make a normalized date.
    else if ( _.isInteger( value ) || _.isDate( value ) ) {
        value = calendar.normalize( new Date( value ), options )
    }

    // If it’s a literal true or any other case, set it to now.
    else /*if ( value === true )*/ {
        value = calendar.now( type, value, options )
    }

    // Return the compiled object.
    return {
        year: isInfiniteValue || value.getFullYear(),
        month: isInfiniteValue || value.getMonth(),
        date: isInfiniteValue || value.getDate(),
        day: isInfiniteValue || value.getDay(),
        obj: isInfiniteValue || value,
        pick: isInfiniteValue || value.getTime()
    }
} //DatePicker.prototype.create


/**
 * Create a range limit object using an array, date object,
 * literal “true”, or integer relative to another time.
 */
DatePicker.prototype.createRange = function( from, to ) {

    var calendar = this,
        createDate = function( date ) {
            if ( date === true || $.isArray( date ) || _.isDate( date ) ) {
                return calendar.create( date )
            }
            return date
        }

    // Create objects if possible.
    if ( !_.isInteger( from ) ) {
        from = createDate( from )
    }
    if ( !_.isInteger( to ) ) {
        to = createDate( to )
    }

    // Create relative dates.
    if ( _.isInteger( from ) && $.isPlainObject( to ) ) {
        from = [ to.year, to.month, to.date + from ];
    }
    else if ( _.isInteger( to ) && $.isPlainObject( from ) ) {
        to = [ from.year, from.month, from.date + to ];
    }

    return {
        from: createDate( from ),
        to: createDate( to )
    }
} //DatePicker.prototype.createRange


/**
 * Check if a date unit falls within a date range object.
 */
DatePicker.prototype.withinRange = function( range, dateUnit ) {
    range = this.createRange(range.from, range.to)
    return dateUnit.pick >= range.from.pick && dateUnit.pick <= range.to.pick
}


/**
 * Check if two date range objects overlap.
 */
DatePicker.prototype.overlapRanges = function( one, two ) {

    var calendar = this

    // Convert the ranges into comparable dates.
    one = calendar.createRange( one.from, one.to )
    two = calendar.createRange( two.from, two.to )

    return calendar.withinRange( one, two.from ) || calendar.withinRange( one, two.to ) ||
        calendar.withinRange( two, one.from ) || calendar.withinRange( two, one.to )
}


/**
 * Get the date today.
 */
DatePicker.prototype.now = function( type, value, options ) {
    value = new Date()
    if ( options && options.rel ) {
        value.setDate( value.getDate() + options.rel )
    }
    return this.normalize( value, options )
}


/**
 * Navigate to next/prev month.
 */
DatePicker.prototype.navigate = function( type, value, options ) {

    var targetDateObject,
        targetYear,
        targetMonth,
        targetDate,
        isTargetArray = $.isArray( value ),
        isTargetObject = $.isPlainObject( value ),
        viewsetObject = this.item.view/*,
        safety = 100*/


    if ( isTargetArray || isTargetObject ) {

        if ( isTargetObject ) {
            targetYear = value.year
            targetMonth = value.month
            targetDate = value.date
        }
        else {
            targetYear = +value[0]
            targetMonth = +value[1]
            targetDate = +value[2]
        }

        // If we’re navigating months but the view is in a different
        // month, navigate to the view’s year and month.
        if ( options && options.nav && viewsetObject && viewsetObject.month !== targetMonth ) {
            targetYear = viewsetObject.year
            targetMonth = viewsetObject.month
        }

        // Figure out the expected target year and month.
        targetDateObject = new Date( targetYear, targetMonth + ( options && options.nav ? options.nav : 0 ), 1 )
        targetYear = targetDateObject.getFullYear()
        targetMonth = targetDateObject.getMonth()

        // If the month we’re going to doesn’t have enough days,
        // keep decreasing the date until we reach the month’s last date.
        while ( /*safety &&*/ new Date( targetYear, targetMonth, targetDate ).getMonth() !== targetMonth ) {
            targetDate -= 1
            /*safety -= 1
            if ( !safety ) {
                throw 'Fell into an infinite loop while navigating to ' + new Date( targetYear, targetMonth, targetDate ) + '.'
            }*/
        }

        value = [ targetYear, targetMonth, targetDate ]
    }

    return value
} //DatePicker.prototype.navigate


/**
 * Normalize a date by setting the hours to midnight.
 */
DatePicker.prototype.normalize = function( value/*, options*/ ) {
    value.setHours( 0, 0, 0, 0 )
    return value
}


/**
 * Measure the range of dates.
 */
DatePicker.prototype.measure = function( type, value/*, options*/ ) {

    var calendar = this

    // If it’s anything false-y, remove the limits.
    if ( !value ) {
        value = type == 'min' ? -Infinity : Infinity
    }

    // If it’s a string, parse it.
    else if ( typeof value == 'string' ) {
        value = calendar.parse( type, value )
    }

    // If it's an integer, get a date relative to today.
    else if ( _.isInteger( value ) ) {
        value = calendar.now( type, value, { rel: value } )
    }

    return value
} ///DatePicker.prototype.measure


/**
 * Create a viewset object based on navigation.
 */
DatePicker.prototype.viewset = function( type, dateObject/*, options*/ ) {
    return this.create([ dateObject.year, dateObject.month, 1 ])
}


/**
 * Validate a date as enabled and shift if needed.
 */
DatePicker.prototype.validate = function( type, dateObject, options ) {

    var calendar = this,

        // Keep a reference to the original date.
        originalDateObject = dateObject,

        // Make sure we have an interval.
        interval = options && options.interval ? options.interval : 1,

        // Check if the calendar enabled dates are inverted.
        isFlippedBase = calendar.item.enable === -1,

        // Check if we have any enabled dates after/before now.
        hasEnabledBeforeTarget, hasEnabledAfterTarget,

        // The min & max limits.
        minLimitObject = calendar.item.min,
        maxLimitObject = calendar.item.max,

        // Check if we’ve reached the limit during shifting.
        reachedMin, reachedMax,

        // Check if the calendar is inverted and at least one weekday is enabled.
        hasEnabledWeekdays = isFlippedBase && calendar.item.disable.filter( function( value ) {

            // If there’s a date, check where it is relative to the target.
            if ( $.isArray( value ) ) {
                var dateTime = calendar.create( value ).pick
                if ( dateTime < dateObject.pick ) hasEnabledBeforeTarget = true
                else if ( dateTime > dateObject.pick ) hasEnabledAfterTarget = true
            }

            // Return only integers for enabled weekdays.
            return _.isInteger( value )
        }).length/*,

        safety = 100*/



    // Cases to validate for:
    // [1] Not inverted and date disabled.
    // [2] Inverted and some dates enabled.
    // [3] Not inverted and out of range.
    //
    // Cases to **not** validate for:
    // • Navigating months.
    // • Not inverted and date enabled.
    // • Inverted and all dates disabled.
    // • ..and anything else.
    if ( !options || !options.nav ) if (
        /* 1 */ ( !isFlippedBase && calendar.disabled( dateObject ) ) ||
        /* 2 */ ( isFlippedBase && calendar.disabled( dateObject ) && ( hasEnabledWeekdays || hasEnabledBeforeTarget || hasEnabledAfterTarget ) ) ||
        /* 3 */ ( !isFlippedBase && (dateObject.pick <= minLimitObject.pick || dateObject.pick >= maxLimitObject.pick) )
    ) {


        // When inverted, flip the direction if there aren’t any enabled weekdays
        // and there are no enabled dates in the direction of the interval.
        if ( isFlippedBase && !hasEnabledWeekdays && ( ( !hasEnabledAfterTarget && interval > 0 ) || ( !hasEnabledBeforeTarget && interval < 0 ) ) ) {
            interval *= -1
        }


        // Keep looping until we reach an enabled date.
        while ( /*safety &&*/ calendar.disabled( dateObject ) ) {

            /*safety -= 1
            if ( !safety ) {
                throw 'Fell into an infinite loop while validating ' + dateObject.obj + '.'
            }*/


            // If we’ve looped into the next/prev month with a large interval, return to the original date and flatten the interval.
            if ( Math.abs( interval ) > 1 && ( dateObject.month < originalDateObject.month || dateObject.month > originalDateObject.month ) ) {
                dateObject = originalDateObject
                interval = interval > 0 ? 1 : -1
            }


            // If we’ve reached the min/max limit, reverse the direction, flatten the interval and set it to the limit.
            if ( dateObject.pick <= minLimitObject.pick ) {
                reachedMin = true
                interval = 1
                dateObject = calendar.create([
                    minLimitObject.year,
                    minLimitObject.month,
                    minLimitObject.date + (dateObject.pick === minLimitObject.pick ? 0 : -1)
                ])
            }
            else if ( dateObject.pick >= maxLimitObject.pick ) {
                reachedMax = true
                interval = -1
                dateObject = calendar.create([
                    maxLimitObject.year,
                    maxLimitObject.month,
                    maxLimitObject.date + (dateObject.pick === maxLimitObject.pick ? 0 : 1)
                ])
            }


            // If we’ve reached both limits, just break out of the loop.
            if ( reachedMin && reachedMax ) {
                break
            }


            // Finally, create the shifted date using the interval and keep looping.
            dateObject = calendar.create([ dateObject.year, dateObject.month, dateObject.date + interval ])
        }

    } //endif


    // Return the date object settled on.
    return dateObject
} //DatePicker.prototype.validate


/**
 * Check if a date is disabled.
 */
DatePicker.prototype.disabled = function( dateToVerify ) {

    var
        calendar = this,

        // Filter through the disabled dates to check if this is one.
        isDisabledMatch = calendar.item.disable.filter( function( dateToDisable ) {

            // If the date is a number, match the weekday with 0index and `firstDay` check.
            if ( _.isInteger( dateToDisable ) ) {
                return dateToVerify.day === ( calendar.settings.firstDay ? dateToDisable : dateToDisable - 1 ) % 7
            }

            // If it’s an array or a native JS date, create and match the exact date.
            if ( $.isArray( dateToDisable ) || _.isDate( dateToDisable ) ) {
                return dateToVerify.pick === calendar.create( dateToDisable ).pick
            }

            // If it’s an object, match a date within the “from” and “to” range.
            if ( $.isPlainObject( dateToDisable ) ) {
                return calendar.withinRange( dateToDisable, dateToVerify )
            }
        })

    // If this date matches a disabled date, confirm it’s not inverted.
    isDisabledMatch = isDisabledMatch.length && !isDisabledMatch.filter(function( dateToDisable ) {
        return $.isArray( dateToDisable ) && dateToDisable[3] == 'inverted' ||
            $.isPlainObject( dateToDisable ) && dateToDisable.inverted
    }).length

    // Check the calendar “enabled” flag and respectively flip the
    // disabled state. Then also check if it’s beyond the min/max limits.
    return calendar.item.enable === -1 ? !isDisabledMatch : isDisabledMatch ||
        dateToVerify.pick < calendar.item.min.pick ||
        dateToVerify.pick > calendar.item.max.pick

} //DatePicker.prototype.disabled


/**
 * Parse a string into a usable type.
 */
DatePicker.prototype.parse = function( type, value, options ) {

    var calendar = this,
        parsingObject = {}

    // If it’s already parsed, we’re good.
    if ( !value || typeof value != 'string' ) {
        return value
    }

    // We need a `.format` to parse the value with.
    if ( !( options && options.format ) ) {
        options = options || {}
        options.format = calendar.settings.format
    }

    // Convert the format into an array and then map through it.
    calendar.formats.toArray( options.format ).map( function( label ) {

        var
            // Grab the formatting label.
            formattingLabel = calendar.formats[ label ],

            // The format length is from the formatting label function or the
            // label length without the escaping exclamation (!) mark.
            formatLength = formattingLabel ? _.trigger( formattingLabel, calendar, [ value, parsingObject ] ) : label.replace( /^!/, '' ).length

        // If there's a format label, split the value up to the format length.
        // Then add it to the parsing object with appropriate label.
        if ( formattingLabel ) {
            parsingObject[ label ] = value.substr( 0, formatLength )
        }

        // Update the value as the substring from format length to end.
        value = value.substr( formatLength )
    })

    // Compensate for month 0index.
    return [
        parsingObject.yyyy || parsingObject.yy,
        +( parsingObject.mm || parsingObject.m ) - 1,
        parsingObject.dd || parsingObject.d
    ]
} //DatePicker.prototype.parse


/**
 * Various formats to display the object in.
 */
DatePicker.prototype.formats = (function() {

    // Return the length of the first word in a collection.
    function getWordLengthFromCollection( string, collection, dateObject ) {

        // Grab the first word from the string.
        var word = string.match( /\w+/ )[ 0 ]

        // If there's no month index, add it to the date object
        if ( !dateObject.mm && !dateObject.m ) {
            dateObject.m = collection.indexOf( word ) + 1
        }

        // Return the length of the word.
        return word.length
    }

    // Get the length of the first word in a string.
    function getFirstWordLength( string ) {
        return string.match( /\w+/ )[ 0 ].length
    }

    return {

        d: function( string, dateObject ) {

            // If there's string, then get the digits length.
            // Otherwise return the selected date.
            return string ? _.digits( string ) : dateObject.date
        },
        dd: function( string, dateObject ) {

            // If there's a string, then the length is always 2.
            // Otherwise return the selected date with a leading zero.
            return string ? 2 : _.lead( dateObject.date )
        },
        ddd: function( string, dateObject ) {

            // If there's a string, then get the length of the first word.
            // Otherwise return the short selected weekday.
            return string ? getFirstWordLength( string ) : this.settings.weekdaysShort[ dateObject.day ]
        },
        dddd: function( string, dateObject ) {

            // If there's a string, then get the length of the first word.
            // Otherwise return the full selected weekday.
            return string ? getFirstWordLength( string ) : this.settings.weekdaysFull[ dateObject.day ]
        },
        m: function( string, dateObject ) {

            // If there's a string, then get the length of the digits
            // Otherwise return the selected month with 0index compensation.
            return string ? _.digits( string ) : dateObject.month + 1
        },
        mm: function( string, dateObject ) {

            // If there's a string, then the length is always 2.
            // Otherwise return the selected month with 0index and leading zero.
            return string ? 2 : _.lead( dateObject.month + 1 )
        },
        mmm: function( string, dateObject ) {

            var collection = this.settings.monthsShort

            // If there's a string, get length of the relevant month from the short
            // months collection. Otherwise return the selected month from that collection.
            return string ? getWordLengthFromCollection( string, collection, dateObject ) : collection[ dateObject.month ]
        },
        mmmm: function( string, dateObject ) {

            var collection = this.settings.monthsFull

            // If there's a string, get length of the relevant month from the full
            // months collection. Otherwise return the selected month from that collection.
            return string ? getWordLengthFromCollection( string, collection, dateObject ) : collection[ dateObject.month ]
        },
        yy: function( string, dateObject ) {

            // If there's a string, then the length is always 2.
            // Otherwise return the selected year by slicing out the first 2 digits.
            return string ? 2 : ( '' + dateObject.year ).slice( 2 )
        },
        yyyy: function( string, dateObject ) {

            // If there's a string, then the length is always 4.
            // Otherwise return the selected year.
            return string ? 4 : dateObject.year
        },

        // Create an array by splitting the formatting string passed.
        toArray: function( formatString ) { return formatString.split( /(d{1,4}|m{1,4}|y{4}|yy|!.)/g ) },

        // Format an object into a string using the formatting options.
        toString: function ( formatString, itemObject ) {
            var calendar = this
            return calendar.formats.toArray( formatString ).map( function( label ) {
                return _.trigger( calendar.formats[ label ], calendar, [ 0, itemObject ] ) || label.replace( /^!/, '' )
            }).join( '' )
        }
    }
})() //DatePicker.prototype.formats




/**
 * Check if two date units are the exact.
 */
DatePicker.prototype.isDateExact = function( one, two ) {

    var calendar = this

    // When we’re working with weekdays, do a direct comparison.
    if (
        ( _.isInteger( one ) && _.isInteger( two ) ) ||
        ( typeof one == 'boolean' && typeof two == 'boolean' )
     ) {
        return one === two
    }

    // When we’re working with date representations, compare the “pick” value.
    if (
        ( _.isDate( one ) || $.isArray( one ) ) &&
        ( _.isDate( two ) || $.isArray( two ) )
    ) {
        return calendar.create( one ).pick === calendar.create( two ).pick
    }

    // When we’re working with range objects, compare the “from” and “to”.
    if ( $.isPlainObject( one ) && $.isPlainObject( two ) ) {
        return calendar.isDateExact( one.from, two.from ) && calendar.isDateExact( one.to, two.to )
    }

    return false
}


/**
 * Check if two date units overlap.
 */
DatePicker.prototype.isDateOverlap = function( one, two ) {

    var calendar = this,
        firstDay = calendar.settings.firstDay ? 1 : 0

    // When we’re working with a weekday index, compare the days.
    if ( _.isInteger( one ) && ( _.isDate( two ) || $.isArray( two ) ) ) {
        one = one % 7 + firstDay
        return one === calendar.create( two ).day + 1
    }
    if ( _.isInteger( two ) && ( _.isDate( one ) || $.isArray( one ) ) ) {
        two = two % 7 + firstDay
        return two === calendar.create( one ).day + 1
    }

    // When we’re working with range objects, check if the ranges overlap.
    if ( $.isPlainObject( one ) && $.isPlainObject( two ) ) {
        return calendar.overlapRanges( one, two )
    }

    return false
}


/**
 * Flip the “enabled” state.
 */
DatePicker.prototype.flipEnable = function(val) {
    var itemObject = this.item
    itemObject.enable = val || (itemObject.enable == -1 ? 1 : -1)
}


/**
 * Mark a collection of dates as “disabled”.
 */
DatePicker.prototype.deactivate = function( type, datesToDisable ) {

    var calendar = this,
        disabledItems = calendar.item.disable.slice(0)


    // If we’re flipping, that’s all we need to do.
    if ( datesToDisable == 'flip' ) {
        calendar.flipEnable()
    }

    else if ( datesToDisable === false ) {
        calendar.flipEnable(1)
        disabledItems = []
    }

    else if ( datesToDisable === true ) {
        calendar.flipEnable(-1)
        disabledItems = []
    }

    // Otherwise go through the dates to disable.
    else {

        datesToDisable.map(function( unitToDisable ) {

            var matchFound

            // When we have disabled items, check for matches.
            // If something is matched, immediately break out.
            for ( var index = 0; index < disabledItems.length; index += 1 ) {
                if ( calendar.isDateExact( unitToDisable, disabledItems[index] ) ) {
                    matchFound = true
                    break
                }
            }

            // If nothing was found, add the validated unit to the collection.
            if ( !matchFound ) {
                if (
                    _.isInteger( unitToDisable ) ||
                    _.isDate( unitToDisable ) ||
                    $.isArray( unitToDisable ) ||
                    ( $.isPlainObject( unitToDisable ) && unitToDisable.from && unitToDisable.to )
                ) {
                    disabledItems.push( unitToDisable )
                }
            }
        })
    }

    // Return the updated collection.
    return disabledItems
} //DatePicker.prototype.deactivate


/**
 * Mark a collection of dates as “enabled”.
 */
DatePicker.prototype.activate = function( type, datesToEnable ) {

    var calendar = this,
        disabledItems = calendar.item.disable,
        disabledItemsCount = disabledItems.length

    // If we’re flipping, that’s all we need to do.
    if ( datesToEnable == 'flip' ) {
        calendar.flipEnable()
    }

    else if ( datesToEnable === true ) {
        calendar.flipEnable(1)
        disabledItems = []
    }

    else if ( datesToEnable === false ) {
        calendar.flipEnable(-1)
        disabledItems = []
    }

    // Otherwise go through the disabled dates.
    else {

        datesToEnable.map(function( unitToEnable ) {

            var matchFound,
                disabledUnit,
                index,
                isExactRange

            // Go through the disabled items and try to find a match.
            for ( index = 0; index < disabledItemsCount; index += 1 ) {

                disabledUnit = disabledItems[index]

                // When an exact match is found, remove it from the collection.
                if ( calendar.isDateExact( disabledUnit, unitToEnable ) ) {
                    matchFound = disabledItems[index] = null
                    isExactRange = true
                    break
                }

                // When an overlapped match is found, add the “inverted” state to it.
                else if ( calendar.isDateOverlap( disabledUnit, unitToEnable ) ) {
                    if ( $.isPlainObject( unitToEnable ) ) {
                        unitToEnable.inverted = true
                        matchFound = unitToEnable
                    }
                    else if ( $.isArray( unitToEnable ) ) {
                        matchFound = unitToEnable
                        if ( !matchFound[3] ) matchFound.push( 'inverted' )
                    }
                    else if ( _.isDate( unitToEnable ) ) {
                        matchFound = [ unitToEnable.getFullYear(), unitToEnable.getMonth(), unitToEnable.getDate(), 'inverted' ]
                    }
                    break
                }
            }

            // If a match was found, remove a previous duplicate entry.
            if ( matchFound ) for ( index = 0; index < disabledItemsCount; index += 1 ) {
                if ( calendar.isDateExact( disabledItems[index], unitToEnable ) ) {
                    disabledItems[index] = null
                    break
                }
            }

            // In the event that we’re dealing with an exact range of dates,
            // make sure there are no “inverted” dates because of it.
            if ( isExactRange ) for ( index = 0; index < disabledItemsCount; index += 1 ) {
                if ( calendar.isDateOverlap( disabledItems[index], unitToEnable ) ) {
                    disabledItems[index] = null
                    break
                }
            }

            // If something is still matched, add it into the collection.
            if ( matchFound ) {
                disabledItems.push( matchFound )
            }
        })
    }

    // Return the updated collection.
    return disabledItems.filter(function( val ) { return val != null })
} //DatePicker.prototype.activate


/**
 * Create a string for the nodes in the picker.
 */
DatePicker.prototype.nodes = function( isOpen ) {

    var
        calendar = this,
        settings = calendar.settings,
        calendarItem = calendar.item,
        nowObject = calendarItem.now,
        selectedObject = calendarItem.select,
        highlightedObject = calendarItem.highlight,
        viewsetObject = calendarItem.view,
        disabledCollection = calendarItem.disable,
        minLimitObject = calendarItem.min,
        maxLimitObject = calendarItem.max,


        // Create the calendar table head using a copy of weekday labels collection.
        // * We do a copy so we don't mutate the original array.
        tableHead = (function( collection, fullCollection ) {

            // If the first day should be Monday, move Sunday to the end.
            if ( settings.firstDay ) {
                collection.push( collection.shift() )
                fullCollection.push( fullCollection.shift() )
            }

            // Create and return the table head group.
            return _.node(
                'thead',
                _.node(
                    'tr',
                    _.group({
                        min: 0,
                        max: DAYS_IN_WEEK - 1,
                        i: 1,
                        node: 'th',
                        item: function( counter ) {
                            return [
                                collection[ counter ],
                                settings.klass.weekdays,
                                'scope=col title="' + fullCollection[ counter ] + '"'
                            ]
                        }
                    })
                )
            ) //endreturn

        // Materialize modified
        })( ( settings.showWeekdaysFull ? settings.weekdaysFull : settings.weekdaysLetter ).slice( 0 ), settings.weekdaysFull.slice( 0 ) ), //tableHead


        // Create the nav for next/prev month.
        createMonthNav = function( next ) {

            // Otherwise, return the created month tag.
            return _.node(
                'div',
                ' ',
                settings.klass[ 'nav' + ( next ? 'Next' : 'Prev' ) ] + (

                    // If the focused month is outside the range, disabled the button.
                    ( next && viewsetObject.year >= maxLimitObject.year && viewsetObject.month >= maxLimitObject.month ) ||
                    ( !next && viewsetObject.year <= minLimitObject.year && viewsetObject.month <= minLimitObject.month ) ?
                    ' ' + settings.klass.navDisabled : ''
                ),
                'data-nav=' + ( next || -1 ) + ' ' +
                _.ariaAttr({
                    role: 'button',
                    controls: calendar.$node[0].id + '_table'
                }) + ' ' +
                'title="' + (next ? settings.labelMonthNext : settings.labelMonthPrev ) + '"'
            ) //endreturn
        }, //createMonthNav


        // Create the month label.
        //Materialize modified
        createMonthLabel = function(override) {

            var monthsCollection = settings.showMonthsShort ? settings.monthsShort : settings.monthsFull

             // Materialize modified
            if (override == "short_months") {
              monthsCollection = settings.monthsShort;
            }

            // If there are months to select, add a dropdown menu.
            if ( settings.selectMonths  && override == undefined) {

                return _.node( 'select',
                    _.group({
                        min: 0,
                        max: 11,
                        i: 1,
                        node: 'option',
                        item: function( loopedMonth ) {

                            return [

                                // The looped month and no classes.
                                monthsCollection[ loopedMonth ], 0,

                                // Set the value and selected index.
                                'value=' + loopedMonth +
                                ( viewsetObject.month == loopedMonth ? ' selected' : '' ) +
                                (
                                    (
                                        ( viewsetObject.year == minLimitObject.year && loopedMonth < minLimitObject.month ) ||
                                        ( viewsetObject.year == maxLimitObject.year && loopedMonth > maxLimitObject.month )
                                    ) ?
                                    ' disabled' : ''
                                )
                            ]
                        }
                    }),
                    settings.klass.selectMonth + ' browser-default',
                    ( isOpen ? '' : 'disabled' ) + ' ' +
                    _.ariaAttr({ controls: calendar.$node[0].id + '_table' }) + ' ' +
                    'title="' + settings.labelMonthSelect + '"'
                )
            }

            // Materialize modified
            if (override == "short_months")
                if (selectedObject != null)
                return _.node( 'div', monthsCollection[ selectedObject.month ] );
                else return _.node( 'div', monthsCollection[ viewsetObject.month ] );

            // If there's a need for a month selector
            return _.node( 'div', monthsCollection[ viewsetObject.month ], settings.klass.month )
        }, //createMonthLabel


        // Create the year label.
        // Materialize modified
        createYearLabel = function(override) {

            var focusedYear = viewsetObject.year,

            // If years selector is set to a literal "true", set it to 5. Otherwise
            // divide in half to get half before and half after focused year.
            numberYears = settings.selectYears === true ? 5 : ~~( settings.selectYears / 2 )

            // If there are years to select, add a dropdown menu.
            if ( numberYears ) {

                var
                    minYear = minLimitObject.year,
                    maxYear = maxLimitObject.year,
                    lowestYear = focusedYear - numberYears,
                    highestYear = focusedYear + numberYears

                // If the min year is greater than the lowest year, increase the highest year
                // by the difference and set the lowest year to the min year.
                if ( minYear > lowestYear ) {
                    highestYear += minYear - lowestYear
                    lowestYear = minYear
                }

                // If the max year is less than the highest year, decrease the lowest year
                // by the lower of the two: available and needed years. Then set the
                // highest year to the max year.
                if ( maxYear < highestYear ) {

                    var availableYears = lowestYear - minYear,
                        neededYears = highestYear - maxYear

                    lowestYear -= availableYears > neededYears ? neededYears : availableYears
                    highestYear = maxYear
                }

                if ( settings.selectYears  && override == undefined ) {
                    return _.node( 'select',
                        _.group({
                            min: lowestYear,
                            max: highestYear,
                            i: 1,
                            node: 'option',
                            item: function( loopedYear ) {
                                return [

                                    // The looped year and no classes.
                                    loopedYear, 0,

                                    // Set the value and selected index.
                                    'value=' + loopedYear + ( focusedYear == loopedYear ? ' selected' : '' )
                                ]
                            }
                        }),
                        settings.klass.selectYear + ' browser-default',
                        ( isOpen ? '' : 'disabled' ) + ' ' + _.ariaAttr({ controls: calendar.$node[0].id + '_table' }) + ' ' +
                        'title="' + settings.labelYearSelect + '"'
                    )
                }
            }

            // Materialize modified
            if (override == "raw")
                return _.node( 'div', focusedYear )

            // Otherwise just return the year focused
            return _.node( 'div', focusedYear, settings.klass.year )
        } //createYearLabel


        // Materialize modified
        createDayLabel = function() {
                if (selectedObject != null)
                    return _.node( 'div', selectedObject.date)
                else return _.node( 'div', nowObject.date)
            }
        createWeekdayLabel = function() {
            var display_day;

            if (selectedObject != null)
                display_day = selectedObject.day;
            else
                display_day = nowObject.day;
            var weekday = settings.weekdaysFull[ display_day ]
            return weekday
        }


    // Create and return the entire calendar.
return _.node(
        // Date presentation View
        'div',
            _.node(
                'div',
                createWeekdayLabel(),
                "picker__weekday-display"
            )+
            _.node(
                // Div for short Month
                'div',
                createMonthLabel("short_months"),
                settings.klass.month_display
            )+
            _.node(
                // Div for Day
                'div',
                createDayLabel() ,
                settings.klass.day_display
            )+
            _.node(
                // Div for Year
                'div',
                createYearLabel("raw") ,
                settings.klass.year_display
            ),
        settings.klass.date_display
    )+
    // Calendar container
    _.node('div',
        _.node('div',
        ( settings.selectYears ?  createMonthLabel() + createYearLabel() : createMonthLabel() + createYearLabel() ) +
        createMonthNav() + createMonthNav( 1 ),
        settings.klass.header
    ) + _.node(
        'table',
        tableHead +
        _.node(
            'tbody',
            _.group({
                min: 0,
                max: WEEKS_IN_CALENDAR - 1,
                i: 1,
                node: 'tr',
                item: function( rowCounter ) {

                    // If Monday is the first day and the month starts on Sunday, shift the date back a week.
                    var shiftDateBy = settings.firstDay && calendar.create([ viewsetObject.year, viewsetObject.month, 1 ]).day === 0 ? -7 : 0

                    return [
                        _.group({
                            min: DAYS_IN_WEEK * rowCounter - viewsetObject.day + shiftDateBy + 1, // Add 1 for weekday 0index
                            max: function() {
                                return this.min + DAYS_IN_WEEK - 1
                            },
                            i: 1,
                            node: 'td',
                            item: function( targetDate ) {

                                // Convert the time date from a relative date to a target date.
                                targetDate = calendar.create([ viewsetObject.year, viewsetObject.month, targetDate + ( settings.firstDay ? 1 : 0 ) ])

                                var isSelected = selectedObject && selectedObject.pick == targetDate.pick,
                                    isHighlighted = highlightedObject && highlightedObject.pick == targetDate.pick,
                                    isDisabled = disabledCollection && calendar.disabled( targetDate ) || targetDate.pick < minLimitObject.pick || targetDate.pick > maxLimitObject.pick,
                                    formattedDate = _.trigger( calendar.formats.toString, calendar, [ settings.format, targetDate ] )

                                return [
                                    _.node(
                                        'div',
                                        targetDate.date,
                                        (function( klasses ) {

                                            // Add the `infocus` or `outfocus` classes based on month in view.
                                            klasses.push( viewsetObject.month == targetDate.month ? settings.klass.infocus : settings.klass.outfocus )

                                            // Add the `today` class if needed.
                                            if ( nowObject.pick == targetDate.pick ) {
                                                klasses.push( settings.klass.now )
                                            }

                                            // Add the `selected` class if something's selected and the time matches.
                                            if ( isSelected ) {
                                                klasses.push( settings.klass.selected )
                                            }

                                            // Add the `highlighted` class if something's highlighted and the time matches.
                                            if ( isHighlighted ) {
                                                klasses.push( settings.klass.highlighted )
                                            }

                                            // Add the `disabled` class if something's disabled and the object matches.
                                            if ( isDisabled ) {
                                                klasses.push( settings.klass.disabled )
                                            }

                                            return klasses.join( ' ' )
                                        })([ settings.klass.day ]),
                                        'data-pick=' + targetDate.pick + ' ' + _.ariaAttr({
                                            role: 'gridcell',
                                            label: formattedDate,
                                            selected: isSelected && calendar.$node.val() === formattedDate ? true : null,
                                            activedescendant: isHighlighted ? true : null,
                                            disabled: isDisabled ? true : null
                                        })
                                    ),
                                    '',
                                    _.ariaAttr({ role: 'presentation' })
                                ] //endreturn
                            }
                        })
                    ] //endreturn
                }
            })
        ),
        settings.klass.table,
        'id="' + calendar.$node[0].id + '_table' + '" ' + _.ariaAttr({
            role: 'grid',
            controls: calendar.$node[0].id,
            readonly: true
        })
    )
    , settings.klass.calendar_container) // end calendar

     +

    // * For Firefox forms to submit, make sure to set the buttons’ `type` attributes as “button”.
    _.node(
        'div',
        _.node( 'button', settings.today, "btn-flat picker__today",
            'type=button data-pick=' + nowObject.pick +
            ( isOpen && !calendar.disabled(nowObject) ? '' : ' disabled' ) + ' ' +
            _.ariaAttr({ controls: calendar.$node[0].id }) ) +
        _.node( 'button', settings.clear, "btn-flat picker__clear",
            'type=button data-clear=1' +
            ( isOpen ? '' : ' disabled' ) + ' ' +
            _.ariaAttr({ controls: calendar.$node[0].id }) ) +
        _.node('button', settings.close, "btn-flat picker__close",
            'type=button data-close=true ' +
            ( isOpen ? '' : ' disabled' ) + ' ' +
            _.ariaAttr({ controls: calendar.$node[0].id }) ),
        settings.klass.footer
    ) //endreturn
} //DatePicker.prototype.nodes




/**
 * The date picker defaults.
 */
DatePicker.defaults = (function( prefix ) {

    return {

        // The title label to use for the month nav buttons
        labelMonthNext: 'Next month',
        labelMonthPrev: 'Previous month',

        // The title label to use for the dropdown selectors
        labelMonthSelect: 'Select a month',
        labelYearSelect: 'Select a year',

        // Months and weekdays
        monthsFull: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ],
        monthsShort: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ],
        weekdaysFull: [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ],
        weekdaysShort: [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ],

        // Materialize modified
        weekdaysLetter: [ 'S', 'M', 'T', 'W', 'T', 'F', 'S' ],

        // Today and clear
        today: 'Today',
        clear: 'Clear',
        close: 'Close',

        // The format to show on the `input` element
        format: 'd mmmm, yyyy',

        // Classes
        klass: {

            table: prefix + 'table',

            header: prefix + 'header',


            // Materialize Added klasses
            date_display: prefix + 'date-display',
            day_display: prefix + 'day-display',
            month_display: prefix + 'month-display',
            year_display: prefix + 'year-display',
            calendar_container: prefix + 'calendar-container',
            // end



            navPrev: prefix + 'nav--prev',
            navNext: prefix + 'nav--next',
            navDisabled: prefix + 'nav--disabled',

            month: prefix + 'month',
            year: prefix + 'year',

            selectMonth: prefix + 'select--month',
            selectYear: prefix + 'select--year',

            weekdays: prefix + 'weekday',

            day: prefix + 'day',
            disabled: prefix + 'day--disabled',
            selected: prefix + 'day--selected',
            highlighted: prefix + 'day--highlighted',
            now: prefix + 'day--today',
            infocus: prefix + 'day--infocus',
            outfocus: prefix + 'day--outfocus',

            footer: prefix + 'footer',

            buttonClear: prefix + 'button--clear',
            buttonToday: prefix + 'button--today',
            buttonClose: prefix + 'button--close'
        }
    }
})( Picker.klasses().picker + '__' )





/**
 * Extend the picker to add the date picker.
 */
Picker.extend( 'pickadate', DatePicker )


}));


;(function ($) {

  $.fn.characterCounter = function(){
    return this.each(function(){

      var itHasLengthAttribute = $(this).attr('length') !== undefined;

      if(itHasLengthAttribute){
        $(this).on('input', updateCounter);
        $(this).on('focus', updateCounter);
        $(this).on('blur', removeCounterElement);

        addCounterElement($(this));
      }

    });
  };

  function updateCounter(){
    var maxLength     = +$(this).attr('length'),
    actualLength      = +$(this).val().length,
    isValidLength     = actualLength <= maxLength;

    $(this).parent().find('span[class="character-counter"]')
                    .html( actualLength + '/' + maxLength);

    addInputStyle(isValidLength, $(this));
  }

  function addCounterElement($input){
    var $counterElement = $('<span/>')
                        .addClass('character-counter')
                        .css('float','right')
                        .css('font-size','12px')
                        .css('height', 1);

    $input.parent().append($counterElement);
  }

  function removeCounterElement(){
    $(this).parent().find('span[class="character-counter"]').html('');
  }

  function addInputStyle(isValidLength, $input){
    var inputHasInvalidClass = $input.hasClass('invalid');
    if (isValidLength && inputHasInvalidClass) {
      $input.removeClass('invalid');
    }
    else if(!isValidLength && !inputHasInvalidClass){
      $input.removeClass('valid');
      $input.addClass('invalid');
    }
  }

  $(document).ready(function(){
    $('input, textarea').characterCounter();
  });

}( jQuery ));

/*! JSON v3.3.2 | http://bestiejs.github.io/json3 | Copyright 2012-2014, Kit Cambridge | http://kit.mit-license.org */
;(function () {
  // Detect the `define` function exposed by asynchronous module loaders. The
  // strict `define` check is necessary for compatibility with `r.js`.
  var isLoader = typeof define === "function" && define.amd;

  // A set of types used to distinguish objects from primitives.
  var objectTypes = {
    "function": true,
    "object": true
  };

  // Detect the `exports` object exposed by CommonJS implementations.
  var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports;

  // Use the `global` object exposed by Node (including Browserify via
  // `insert-module-globals`), Narwhal, and Ringo as the default context,
  // and the `window` object in browsers. Rhino exports a `global` function
  // instead.
  var root = objectTypes[typeof window] && window || this,
      freeGlobal = freeExports && objectTypes[typeof module] && module && !module.nodeType && typeof global == "object" && global;

  if (freeGlobal && (freeGlobal["global"] === freeGlobal || freeGlobal["window"] === freeGlobal || freeGlobal["self"] === freeGlobal)) {
    root = freeGlobal;
  }

  // Public: Initializes JSON 3 using the given `context` object, attaching the
  // `stringify` and `parse` functions to the specified `exports` object.
  function runInContext(context, exports) {
    context || (context = root["Object"]());
    exports || (exports = root["Object"]());

    // Native constructor aliases.
    var Number = context["Number"] || root["Number"],
        String = context["String"] || root["String"],
        Object = context["Object"] || root["Object"],
        Date = context["Date"] || root["Date"],
        SyntaxError = context["SyntaxError"] || root["SyntaxError"],
        TypeError = context["TypeError"] || root["TypeError"],
        Math = context["Math"] || root["Math"],
        nativeJSON = context["JSON"] || root["JSON"];

    // Delegate to the native `stringify` and `parse` implementations.
    if (typeof nativeJSON == "object" && nativeJSON) {
      exports.stringify = nativeJSON.stringify;
      exports.parse = nativeJSON.parse;
    }

    // Convenience aliases.
    var objectProto = Object.prototype,
        getClass = objectProto.toString,
        isProperty, forEach, undef;

    // Test the `Date#getUTC*` methods. Based on work by @Yaffle.
    var isExtended = new Date(-3509827334573292);
    try {
      // The `getUTCFullYear`, `Month`, and `Date` methods return nonsensical
      // results for certain dates in Opera >= 10.53.
      isExtended = isExtended.getUTCFullYear() == -109252 && isExtended.getUTCMonth() === 0 && isExtended.getUTCDate() === 1 &&
        // Safari < 2.0.2 stores the internal millisecond time value correctly,
        // but clips the values returned by the date methods to the range of
        // signed 32-bit integers ([-2 ** 31, 2 ** 31 - 1]).
        isExtended.getUTCHours() == 10 && isExtended.getUTCMinutes() == 37 && isExtended.getUTCSeconds() == 6 && isExtended.getUTCMilliseconds() == 708;
    } catch (exception) {}

    // Internal: Determines whether the native `JSON.stringify` and `parse`
    // implementations are spec-compliant. Based on work by Ken Snyder.
    function has(name) {
      if (has[name] !== undef) {
        // Return cached feature test result.
        return has[name];
      }
      var isSupported;
      if (name == "bug-string-char-index") {
        // IE <= 7 doesn't support accessing string characters using square
        // bracket notation. IE 8 only supports this for primitives.
        isSupported = "a"[0] != "a";
      } else if (name == "json") {
        // Indicates whether both `JSON.stringify` and `JSON.parse` are
        // supported.
        isSupported = has("json-stringify") && has("json-parse");
      } else {
        var value, serialized = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';
        // Test `JSON.stringify`.
        if (name == "json-stringify") {
          var stringify = exports.stringify, stringifySupported = typeof stringify == "function" && isExtended;
          if (stringifySupported) {
            // A test function object with a custom `toJSON` method.
            (value = function () {
              return 1;
            }).toJSON = value;
            try {
              stringifySupported =
                // Firefox 3.1b1 and b2 serialize string, number, and boolean
                // primitives as object literals.
                stringify(0) === "0" &&
                // FF 3.1b1, b2, and JSON 2 serialize wrapped primitives as object
                // literals.
                stringify(new Number()) === "0" &&
                stringify(new String()) == '""' &&
                // FF 3.1b1, 2 throw an error if the value is `null`, `undefined`, or
                // does not define a canonical JSON representation (this applies to
                // objects with `toJSON` properties as well, *unless* they are nested
                // within an object or array).
                stringify(getClass) === undef &&
                // IE 8 serializes `undefined` as `"undefined"`. Safari <= 5.1.7 and
                // FF 3.1b3 pass this test.
                stringify(undef) === undef &&
                // Safari <= 5.1.7 and FF 3.1b3 throw `Error`s and `TypeError`s,
                // respectively, if the value is omitted entirely.
                stringify() === undef &&
                // FF 3.1b1, 2 throw an error if the given value is not a number,
                // string, array, object, Boolean, or `null` literal. This applies to
                // objects with custom `toJSON` methods as well, unless they are nested
                // inside object or array literals. YUI 3.0.0b1 ignores custom `toJSON`
                // methods entirely.
                stringify(value) === "1" &&
                stringify([value]) == "[1]" &&
                // Prototype <= 1.6.1 serializes `[undefined]` as `"[]"` instead of
                // `"[null]"`.
                stringify([undef]) == "[null]" &&
                // YUI 3.0.0b1 fails to serialize `null` literals.
                stringify(null) == "null" &&
                // FF 3.1b1, 2 halts serialization if an array contains a function:
                // `[1, true, getClass, 1]` serializes as "[1,true,],". FF 3.1b3
                // elides non-JSON values from objects and arrays, unless they
                // define custom `toJSON` methods.
                stringify([undef, getClass, null]) == "[null,null,null]" &&
                // Simple serialization test. FF 3.1b1 uses Unicode escape sequences
                // where character escape codes are expected (e.g., `\b` => `\u0008`).
                stringify({ "a": [value, true, false, null, "\x00\b\n\f\r\t"] }) == serialized &&
                // FF 3.1b1 and b2 ignore the `filter` and `width` arguments.
                stringify(null, value) === "1" &&
                stringify([1, 2], null, 1) == "[\n 1,\n 2\n]" &&
                // JSON 2, Prototype <= 1.7, and older WebKit builds incorrectly
                // serialize extended years.
                stringify(new Date(-8.64e15)) == '"-271821-04-20T00:00:00.000Z"' &&
                // The milliseconds are optional in ES 5, but required in 5.1.
                stringify(new Date(8.64e15)) == '"+275760-09-13T00:00:00.000Z"' &&
                // Firefox <= 11.0 incorrectly serializes years prior to 0 as negative
                // four-digit years instead of six-digit years. Credits: @Yaffle.
                stringify(new Date(-621987552e5)) == '"-000001-01-01T00:00:00.000Z"' &&
                // Safari <= 5.1.5 and Opera >= 10.53 incorrectly serialize millisecond
                // values less than 1000. Credits: @Yaffle.
                stringify(new Date(-1)) == '"1969-12-31T23:59:59.999Z"';
            } catch (exception) {
              stringifySupported = false;
            }
          }
          isSupported = stringifySupported;
        }
        // Test `JSON.parse`.
        if (name == "json-parse") {
          var parse = exports.parse;
          if (typeof parse == "function") {
            try {
              // FF 3.1b1, b2 will throw an exception if a bare literal is provided.
              // Conforming implementations should also coerce the initial argument to
              // a string prior to parsing.
              if (parse("0") === 0 && !parse(false)) {
                // Simple parsing test.
                value = parse(serialized);
                var parseSupported = value["a"].length == 5 && value["a"][0] === 1;
                if (parseSupported) {
                  try {
                    // Safari <= 5.1.2 and FF 3.1b1 allow unescaped tabs in strings.
                    parseSupported = !parse('"\t"');
                  } catch (exception) {}
                  if (parseSupported) {
                    try {
                      // FF 4.0 and 4.0.1 allow leading `+` signs and leading
                      // decimal points. FF 4.0, 4.0.1, and IE 9-10 also allow
                      // certain octal literals.
                      parseSupported = parse("01") !== 1;
                    } catch (exception) {}
                  }
                  if (parseSupported) {
                    try {
                      // FF 4.0, 4.0.1, and Rhino 1.7R3-R4 allow trailing decimal
                      // points. These environments, along with FF 3.1b1 and 2,
                      // also allow trailing commas in JSON objects and arrays.
                      parseSupported = parse("1.") !== 1;
                    } catch (exception) {}
                  }
                }
              }
            } catch (exception) {
              parseSupported = false;
            }
          }
          isSupported = parseSupported;
        }
      }
      return has[name] = !!isSupported;
    }

    if (!has("json")) {
      // Common `[[Class]]` name aliases.
      var functionClass = "[object Function]",
          dateClass = "[object Date]",
          numberClass = "[object Number]",
          stringClass = "[object String]",
          arrayClass = "[object Array]",
          booleanClass = "[object Boolean]";

      // Detect incomplete support for accessing string characters by index.
      var charIndexBuggy = has("bug-string-char-index");

      // Define additional utility methods if the `Date` methods are buggy.
      if (!isExtended) {
        var floor = Math.floor;
        // A mapping between the months of the year and the number of days between
        // January 1st and the first of the respective month.
        var Months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];
        // Internal: Calculates the number of days between the Unix epoch and the
        // first day of the given month.
        var getDay = function (year, month) {
          return Months[month] + 365 * (year - 1970) + floor((year - 1969 + (month = +(month > 1))) / 4) - floor((year - 1901 + month) / 100) + floor((year - 1601 + month) / 400);
        };
      }

      // Internal: Determines if a property is a direct property of the given
      // object. Delegates to the native `Object#hasOwnProperty` method.
      if (!(isProperty = objectProto.hasOwnProperty)) {
        isProperty = function (property) {
          var members = {}, constructor;
          if ((members.__proto__ = null, members.__proto__ = {
            // The *proto* property cannot be set multiple times in recent
            // versions of Firefox and SeaMonkey.
            "toString": 1
          }, members).toString != getClass) {
            // Safari <= 2.0.3 doesn't implement `Object#hasOwnProperty`, but
            // supports the mutable *proto* property.
            isProperty = function (property) {
              // Capture and break the object's prototype chain (see section 8.6.2
              // of the ES 5.1 spec). The parenthesized expression prevents an
              // unsafe transformation by the Closure Compiler.
              var original = this.__proto__, result = property in (this.__proto__ = null, this);
              // Restore the original prototype chain.
              this.__proto__ = original;
              return result;
            };
          } else {
            // Capture a reference to the top-level `Object` constructor.
            constructor = members.constructor;
            // Use the `constructor` property to simulate `Object#hasOwnProperty` in
            // other environments.
            isProperty = function (property) {
              var parent = (this.constructor || constructor).prototype;
              return property in this && !(property in parent && this[property] === parent[property]);
            };
          }
          members = null;
          return isProperty.call(this, property);
        };
      }

      // Internal: Normalizes the `for...in` iteration algorithm across
      // environments. Each enumerated key is yielded to a `callback` function.
      forEach = function (object, callback) {
        var size = 0, Properties, members, property;

        // Tests for bugs in the current environment's `for...in` algorithm. The
        // `valueOf` property inherits the non-enumerable flag from
        // `Object.prototype` in older versions of IE, Netscape, and Mozilla.
        (Properties = function () {
          this.valueOf = 0;
        }).prototype.valueOf = 0;

        // Iterate over a new instance of the `Properties` class.
        members = new Properties();
        for (property in members) {
          // Ignore all properties inherited from `Object.prototype`.
          if (isProperty.call(members, property)) {
            size++;
          }
        }
        Properties = members = null;

        // Normalize the iteration algorithm.
        if (!size) {
          // A list of non-enumerable properties inherited from `Object.prototype`.
          members = ["valueOf", "toString", "toLocaleString", "propertyIsEnumerable", "isPrototypeOf", "hasOwnProperty", "constructor"];
          // IE <= 8, Mozilla 1.0, and Netscape 6.2 ignore shadowed non-enumerable
          // properties.
          forEach = function (object, callback) {
            var isFunction = getClass.call(object) == functionClass, property, length;
            var hasProperty = !isFunction && typeof object.constructor != "function" && objectTypes[typeof object.hasOwnProperty] && object.hasOwnProperty || isProperty;
            for (property in object) {
              // Gecko <= 1.0 enumerates the `prototype` property of functions under
              // certain conditions; IE does not.
              if (!(isFunction && property == "prototype") && hasProperty.call(object, property)) {
                callback(property);
              }
            }
            // Manually invoke the callback for each non-enumerable property.
            for (length = members.length; property = members[--length]; hasProperty.call(object, property) && callback(property));
          };
        } else if (size == 2) {
          // Safari <= 2.0.4 enumerates shadowed properties twice.
          forEach = function (object, callback) {
            // Create a set of iterated properties.
            var members = {}, isFunction = getClass.call(object) == functionClass, property;
            for (property in object) {
              // Store each property name to prevent double enumeration. The
              // `prototype` property of functions is not enumerated due to cross-
              // environment inconsistencies.
              if (!(isFunction && property == "prototype") && !isProperty.call(members, property) && (members[property] = 1) && isProperty.call(object, property)) {
                callback(property);
              }
            }
          };
        } else {
          // No bugs detected; use the standard `for...in` algorithm.
          forEach = function (object, callback) {
            var isFunction = getClass.call(object) == functionClass, property, isConstructor;
            for (property in object) {
              if (!(isFunction && property == "prototype") && isProperty.call(object, property) && !(isConstructor = property === "constructor")) {
                callback(property);
              }
            }
            // Manually invoke the callback for the `constructor` property due to
            // cross-environment inconsistencies.
            if (isConstructor || isProperty.call(object, (property = "constructor"))) {
              callback(property);
            }
          };
        }
        return forEach(object, callback);
      };

      // Public: Serializes a JavaScript `value` as a JSON string. The optional
      // `filter` argument may specify either a function that alters how object and
      // array members are serialized, or an array of strings and numbers that
      // indicates which properties should be serialized. The optional `width`
      // argument may be either a string or number that specifies the indentation
      // level of the output.
      if (!has("json-stringify")) {
        // Internal: A map of control characters and their escaped equivalents.
        var Escapes = {
          92: "\\\\",
          34: '\\"',
          8: "\\b",
          12: "\\f",
          10: "\\n",
          13: "\\r",
          9: "\\t"
        };

        // Internal: Converts `value` into a zero-padded string such that its
        // length is at least equal to `width`. The `width` must be <= 6.
        var leadingZeroes = "000000";
        var toPaddedString = function (width, value) {
          // The `|| 0` expression is necessary to work around a bug in
          // Opera <= 7.54u2 where `0 == -0`, but `String(-0) !== "0"`.
          return (leadingZeroes + (value || 0)).slice(-width);
        };

        // Internal: Double-quotes a string `value`, replacing all ASCII control
        // characters (characters with code unit values between 0 and 31) with
        // their escaped equivalents. This is an implementation of the
        // `Quote(value)` operation defined in ES 5.1 section 15.12.3.
        var unicodePrefix = "\\u00";
        var quote = function (value) {
          var result = '"', index = 0, length = value.length, useCharIndex = !charIndexBuggy || length > 10;
          var symbols = useCharIndex && (charIndexBuggy ? value.split("") : value);
          for (; index < length; index++) {
            var charCode = value.charCodeAt(index);
            // If the character is a control character, append its Unicode or
            // shorthand escape sequence; otherwise, append the character as-is.
            switch (charCode) {
              case 8: case 9: case 10: case 12: case 13: case 34: case 92:
                result += Escapes[charCode];
                break;
              default:
                if (charCode < 32) {
                  result += unicodePrefix + toPaddedString(2, charCode.toString(16));
                  break;
                }
                result += useCharIndex ? symbols[index] : value.charAt(index);
            }
          }
          return result + '"';
        };

        // Internal: Recursively serializes an object. Implements the
        // `Str(key, holder)`, `JO(value)`, and `JA(value)` operations.
        var serialize = function (property, object, callback, properties, whitespace, indentation, stack) {
          var value, className, year, month, date, time, hours, minutes, seconds, milliseconds, results, element, index, length, prefix, result;
          try {
            // Necessary for host object support.
            value = object[property];
          } catch (exception) {}
          if (typeof value == "object" && value) {
            className = getClass.call(value);
            if (className == dateClass && !isProperty.call(value, "toJSON")) {
              if (value > -1 / 0 && value < 1 / 0) {
                // Dates are serialized according to the `Date#toJSON` method
                // specified in ES 5.1 section 15.9.5.44. See section 15.9.1.15
                // for the ISO 8601 date time string format.
                if (getDay) {
                  // Manually compute the year, month, date, hours, minutes,
                  // seconds, and milliseconds if the `getUTC*` methods are
                  // buggy. Adapted from @Yaffle's `date-shim` project.
                  date = floor(value / 864e5);
                  for (year = floor(date / 365.2425) + 1970 - 1; getDay(year + 1, 0) <= date; year++);
                  for (month = floor((date - getDay(year, 0)) / 30.42); getDay(year, month + 1) <= date; month++);
                  date = 1 + date - getDay(year, month);
                  // The `time` value specifies the time within the day (see ES
                  // 5.1 section 15.9.1.2). The formula `(A % B + B) % B` is used
                  // to compute `A modulo B`, as the `%` operator does not
                  // correspond to the `modulo` operation for negative numbers.
                  time = (value % 864e5 + 864e5) % 864e5;
                  // The hours, minutes, seconds, and milliseconds are obtained by
                  // decomposing the time within the day. See section 15.9.1.10.
                  hours = floor(time / 36e5) % 24;
                  minutes = floor(time / 6e4) % 60;
                  seconds = floor(time / 1e3) % 60;
                  milliseconds = time % 1e3;
                } else {
                  year = value.getUTCFullYear();
                  month = value.getUTCMonth();
                  date = value.getUTCDate();
                  hours = value.getUTCHours();
                  minutes = value.getUTCMinutes();
                  seconds = value.getUTCSeconds();
                  milliseconds = value.getUTCMilliseconds();
                }
                // Serialize extended years correctly.
                value = (year <= 0 || year >= 1e4 ? (year < 0 ? "-" : "+") + toPaddedString(6, year < 0 ? -year : year) : toPaddedString(4, year)) +
                  "-" + toPaddedString(2, month + 1) + "-" + toPaddedString(2, date) +
                  // Months, dates, hours, minutes, and seconds should have two
                  // digits; milliseconds should have three.
                  "T" + toPaddedString(2, hours) + ":" + toPaddedString(2, minutes) + ":" + toPaddedString(2, seconds) +
                  // Milliseconds are optional in ES 5.0, but required in 5.1.
                  "." + toPaddedString(3, milliseconds) + "Z";
              } else {
                value = null;
              }
            } else if (typeof value.toJSON == "function" && ((className != numberClass && className != stringClass && className != arrayClass) || isProperty.call(value, "toJSON"))) {
              // Prototype <= 1.6.1 adds non-standard `toJSON` methods to the
              // `Number`, `String`, `Date`, and `Array` prototypes. JSON 3
              // ignores all `toJSON` methods on these objects unless they are
              // defined directly on an instance.
              value = value.toJSON(property);
            }
          }
          if (callback) {
            // If a replacement function was provided, call it to obtain the value
            // for serialization.
            value = callback.call(object, property, value);
          }
          if (value === null) {
            return "null";
          }
          className = getClass.call(value);
          if (className == booleanClass) {
            // Booleans are represented literally.
            return "" + value;
          } else if (className == numberClass) {
            // JSON numbers must be finite. `Infinity` and `NaN` are serialized as
            // `"null"`.
            return value > -1 / 0 && value < 1 / 0 ? "" + value : "null";
          } else if (className == stringClass) {
            // Strings are double-quoted and escaped.
            return quote("" + value);
          }
          // Recursively serialize objects and arrays.
          if (typeof value == "object") {
            // Check for cyclic structures. This is a linear search; performance
            // is inversely proportional to the number of unique nested objects.
            for (length = stack.length; length--;) {
              if (stack[length] === value) {
                // Cyclic structures cannot be serialized by `JSON.stringify`.
                throw TypeError();
              }
            }
            // Add the object to the stack of traversed objects.
            stack.push(value);
            results = [];
            // Save the current indentation level and indent one additional level.
            prefix = indentation;
            indentation += whitespace;
            if (className == arrayClass) {
              // Recursively serialize array elements.
              for (index = 0, length = value.length; index < length; index++) {
                element = serialize(index, value, callback, properties, whitespace, indentation, stack);
                results.push(element === undef ? "null" : element);
              }
              result = results.length ? (whitespace ? "[\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "]" : ("[" + results.join(",") + "]")) : "[]";
            } else {
              // Recursively serialize object members. Members are selected from
              // either a user-specified list of property names, or the object
              // itself.
              forEach(properties || value, function (property) {
                var element = serialize(property, value, callback, properties, whitespace, indentation, stack);
                if (element !== undef) {
                  // According to ES 5.1 section 15.12.3: "If `gap` {whitespace}
                  // is not the empty string, let `member` {quote(property) + ":"}
                  // be the concatenation of `member` and the `space` character."
                  // The "`space` character" refers to the literal space
                  // character, not the `space` {width} argument provided to
                  // `JSON.stringify`.
                  results.push(quote(property) + ":" + (whitespace ? " " : "") + element);
                }
              });
              result = results.length ? (whitespace ? "{\n" + indentation + results.join(",\n" + indentation) + "\n" + prefix + "}" : ("{" + results.join(",") + "}")) : "{}";
            }
            // Remove the object from the traversed object stack.
            stack.pop();
            return result;
          }
        };

        // Public: `JSON.stringify`. See ES 5.1 section 15.12.3.
        exports.stringify = function (source, filter, width) {
          var whitespace, callback, properties, className;
          if (objectTypes[typeof filter] && filter) {
            if ((className = getClass.call(filter)) == functionClass) {
              callback = filter;
            } else if (className == arrayClass) {
              // Convert the property names array into a makeshift set.
              properties = {};
              for (var index = 0, length = filter.length, value; index < length; value = filter[index++], ((className = getClass.call(value)), className == stringClass || className == numberClass) && (properties[value] = 1));
            }
          }
          if (width) {
            if ((className = getClass.call(width)) == numberClass) {
              // Convert the `width` to an integer and create a string containing
              // `width` number of space characters.
              if ((width -= width % 1) > 0) {
                for (whitespace = "", width > 10 && (width = 10); whitespace.length < width; whitespace += " ");
              }
            } else if (className == stringClass) {
              whitespace = width.length <= 10 ? width : width.slice(0, 10);
            }
          }
          // Opera <= 7.54u2 discards the values associated with empty string keys
          // (`""`) only if they are used directly within an object member list
          // (e.g., `!("" in { "": 1})`).
          return serialize("", (value = {}, value[""] = source, value), callback, properties, whitespace, "", []);
        };
      }

      // Public: Parses a JSON source string.
      if (!has("json-parse")) {
        var fromCharCode = String.fromCharCode;

        // Internal: A map of escaped control characters and their unescaped
        // equivalents.
        var Unescapes = {
          92: "\\",
          34: '"',
          47: "/",
          98: "\b",
          116: "\t",
          110: "\n",
          102: "\f",
          114: "\r"
        };

        // Internal: Stores the parser state.
        var Index, Source;

        // Internal: Resets the parser state and throws a `SyntaxError`.
        var abort = function () {
          Index = Source = null;
          throw SyntaxError();
        };

        // Internal: Returns the next token, or `"$"` if the parser has reached
        // the end of the source string. A token may be a string, number, `null`
        // literal, or Boolean literal.
        var lex = function () {
          var source = Source, length = source.length, value, begin, position, isSigned, charCode;
          while (Index < length) {
            charCode = source.charCodeAt(Index);
            switch (charCode) {
              case 9: case 10: case 13: case 32:
                // Skip whitespace tokens, including tabs, carriage returns, line
                // feeds, and space characters.
                Index++;
                break;
              case 123: case 125: case 91: case 93: case 58: case 44:
                // Parse a punctuator token (`{`, `}`, `[`, `]`, `:`, or `,`) at
                // the current position.
                value = charIndexBuggy ? source.charAt(Index) : source[Index];
                Index++;
                return value;
              case 34:
                // `"` delimits a JSON string; advance to the next character and
                // begin parsing the string. String tokens are prefixed with the
                // sentinel `@` character to distinguish them from punctuators and
                // end-of-string tokens.
                for (value = "@", Index++; Index < length;) {
                  charCode = source.charCodeAt(Index);
                  if (charCode < 32) {
                    // Unescaped ASCII control characters (those with a code unit
                    // less than the space character) are not permitted.
                    abort();
                  } else if (charCode == 92) {
                    // A reverse solidus (`\`) marks the beginning of an escaped
                    // control character (including `"`, `\`, and `/`) or Unicode
                    // escape sequence.
                    charCode = source.charCodeAt(++Index);
                    switch (charCode) {
                      case 92: case 34: case 47: case 98: case 116: case 110: case 102: case 114:
                        // Revive escaped control characters.
                        value += Unescapes[charCode];
                        Index++;
                        break;
                      case 117:
                        // `\u` marks the beginning of a Unicode escape sequence.
                        // Advance to the first character and validate the
                        // four-digit code point.
                        begin = ++Index;
                        for (position = Index + 4; Index < position; Index++) {
                          charCode = source.charCodeAt(Index);
                          // A valid sequence comprises four hexdigits (case-
                          // insensitive) that form a single hexadecimal value.
                          if (!(charCode >= 48 && charCode <= 57 || charCode >= 97 && charCode <= 102 || charCode >= 65 && charCode <= 70)) {
                            // Invalid Unicode escape sequence.
                            abort();
                          }
                        }
                        // Revive the escaped character.
                        value += fromCharCode("0x" + source.slice(begin, Index));
                        break;
                      default:
                        // Invalid escape sequence.
                        abort();
                    }
                  } else {
                    if (charCode == 34) {
                      // An unescaped double-quote character marks the end of the
                      // string.
                      break;
                    }
                    charCode = source.charCodeAt(Index);
                    begin = Index;
                    // Optimize for the common case where a string is valid.
                    while (charCode >= 32 && charCode != 92 && charCode != 34) {
                      charCode = source.charCodeAt(++Index);
                    }
                    // Append the string as-is.
                    value += source.slice(begin, Index);
                  }
                }
                if (source.charCodeAt(Index) == 34) {
                  // Advance to the next character and return the revived string.
                  Index++;
                  return value;
                }
                // Unterminated string.
                abort();
              default:
                // Parse numbers and literals.
                begin = Index;
                // Advance past the negative sign, if one is specified.
                if (charCode == 45) {
                  isSigned = true;
                  charCode = source.charCodeAt(++Index);
                }
                // Parse an integer or floating-point value.
                if (charCode >= 48 && charCode <= 57) {
                  // Leading zeroes are interpreted as octal literals.
                  if (charCode == 48 && ((charCode = source.charCodeAt(Index + 1)), charCode >= 48 && charCode <= 57)) {
                    // Illegal octal literal.
                    abort();
                  }
                  isSigned = false;
                  // Parse the integer component.
                  for (; Index < length && ((charCode = source.charCodeAt(Index)), charCode >= 48 && charCode <= 57); Index++);
                  // Floats cannot contain a leading decimal point; however, this
                  // case is already accounted for by the parser.
                  if (source.charCodeAt(Index) == 46) {
                    position = ++Index;
                    // Parse the decimal component.
                    for (; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++);
                    if (position == Index) {
                      // Illegal trailing decimal.
                      abort();
                    }
                    Index = position;
                  }
                  // Parse exponents. The `e` denoting the exponent is
                  // case-insensitive.
                  charCode = source.charCodeAt(Index);
                  if (charCode == 101 || charCode == 69) {
                    charCode = source.charCodeAt(++Index);
                    // Skip past the sign following the exponent, if one is
                    // specified.
                    if (charCode == 43 || charCode == 45) {
                      Index++;
                    }
                    // Parse the exponential component.
                    for (position = Index; position < length && ((charCode = source.charCodeAt(position)), charCode >= 48 && charCode <= 57); position++);
                    if (position == Index) {
                      // Illegal empty exponent.
                      abort();
                    }
                    Index = position;
                  }
                  // Coerce the parsed value to a JavaScript number.
                  return +source.slice(begin, Index);
                }
                // A negative sign may only precede numbers.
                if (isSigned) {
                  abort();
                }
                // `true`, `false`, and `null` literals.
                if (source.slice(Index, Index + 4) == "true") {
                  Index += 4;
                  return true;
                } else if (source.slice(Index, Index + 5) == "false") {
                  Index += 5;
                  return false;
                } else if (source.slice(Index, Index + 4) == "null") {
                  Index += 4;
                  return null;
                }
                // Unrecognized token.
                abort();
            }
          }
          // Return the sentinel `$` character if the parser has reached the end
          // of the source string.
          return "$";
        };

        // Internal: Parses a JSON `value` token.
        var get = function (value) {
          var results, hasMembers;
          if (value == "$") {
            // Unexpected end of input.
            abort();
          }
          if (typeof value == "string") {
            if ((charIndexBuggy ? value.charAt(0) : value[0]) == "@") {
              // Remove the sentinel `@` character.
              return value.slice(1);
            }
            // Parse object and array literals.
            if (value == "[") {
              // Parses a JSON array, returning a new JavaScript array.
              results = [];
              for (;; hasMembers || (hasMembers = true)) {
                value = lex();
                // A closing square bracket marks the end of the array literal.
                if (value == "]") {
                  break;
                }
                // If the array literal contains elements, the current token
                // should be a comma separating the previous element from the
                // next.
                if (hasMembers) {
                  if (value == ",") {
                    value = lex();
                    if (value == "]") {
                      // Unexpected trailing `,` in array literal.
                      abort();
                    }
                  } else {
                    // A `,` must separate each array element.
                    abort();
                  }
                }
                // Elisions and leading commas are not permitted.
                if (value == ",") {
                  abort();
                }
                results.push(get(value));
              }
              return results;
            } else if (value == "{") {
              // Parses a JSON object, returning a new JavaScript object.
              results = {};
              for (;; hasMembers || (hasMembers = true)) {
                value = lex();
                // A closing curly brace marks the end of the object literal.
                if (value == "}") {
                  break;
                }
                // If the object literal contains members, the current token
                // should be a comma separator.
                if (hasMembers) {
                  if (value == ",") {
                    value = lex();
                    if (value == "}") {
                      // Unexpected trailing `,` in object literal.
                      abort();
                    }
                  } else {
                    // A `,` must separate each object member.
                    abort();
                  }
                }
                // Leading commas are not permitted, object property names must be
                // double-quoted strings, and a `:` must separate each property
                // name and value.
                if (value == "," || typeof value != "string" || (charIndexBuggy ? value.charAt(0) : value[0]) != "@" || lex() != ":") {
                  abort();
                }
                results[value.slice(1)] = get(lex());
              }
              return results;
            }
            // Unexpected token encountered.
            abort();
          }
          return value;
        };

        // Internal: Updates a traversed object member.
        var update = function (source, property, callback) {
          var element = walk(source, property, callback);
          if (element === undef) {
            delete source[property];
          } else {
            source[property] = element;
          }
        };

        // Internal: Recursively traverses a parsed JSON object, invoking the
        // `callback` function for each value. This is an implementation of the
        // `Walk(holder, name)` operation defined in ES 5.1 section 15.12.2.
        var walk = function (source, property, callback) {
          var value = source[property], length;
          if (typeof value == "object" && value) {
            // `forEach` can't be used to traverse an array in Opera <= 8.54
            // because its `Object#hasOwnProperty` implementation returns `false`
            // for array indices (e.g., `![1, 2, 3].hasOwnProperty("0")`).
            if (getClass.call(value) == arrayClass) {
              for (length = value.length; length--;) {
                update(value, length, callback);
              }
            } else {
              forEach(value, function (property) {
                update(value, property, callback);
              });
            }
          }
          return callback.call(source, property, value);
        };

        // Public: `JSON.parse`. See ES 5.1 section 15.12.2.
        exports.parse = function (source, callback) {
          var result, value;
          Index = 0;
          Source = "" + source;
          result = get(lex());
          // If a JSON string contains multiple tokens, it is invalid.
          if (lex() != "$") {
            abort();
          }
          // Reset the parser state.
          Index = Source = null;
          return callback && getClass.call(callback) == functionClass ? walk((value = {}, value[""] = result, value), "", callback) : result;
        };
      }
    }

    exports["runInContext"] = runInContext;
    return exports;
  }

  if (freeExports && !isLoader) {
    // Export for CommonJS environments.
    runInContext(root, freeExports);
  } else {
    // Export for web browsers and JavaScript engines.
    var nativeJSON = root.JSON,
        previousJSON = root["JSON3"],
        isRestored = false;

    var JSON3 = runInContext(root, (root["JSON3"] = {
      // Public: Restores the original value of the global `JSON` object and
      // returns a reference to the `JSON3` object.
      "noConflict": function () {
        if (!isRestored) {
          isRestored = true;
          root.JSON = nativeJSON;
          root["JSON3"] = previousJSON;
          nativeJSON = previousJSON = null;
        }
        return JSON3;
      }
    }));

    root.JSON = {
      "parse": JSON3.parse,
      "stringify": JSON3.stringify
    };
  }

  // Export for asynchronous module loaders.
  if (isLoader) {
    define(function () {
      return JSON3;
    });
  }
}).call(this);

/*! Hammer.JS - v2.0.4 - 2014-09-28
 * http://hammerjs.github.io/
 *
 * Copyright (c) 2014 Jorik Tangelder;
 * Licensed under the MIT license */
(function(window, document, exportName, undefined) {
  'use strict';

var VENDOR_PREFIXES = ['', 'webkit', 'moz', 'MS', 'ms', 'o'];
var TEST_ELEMENT = document.createElement('div');

var TYPE_FUNCTION = 'function';

var round = Math.round;
var abs = Math.abs;
var now = Date.now;

/**
 * set a timeout with a given scope
 * @param {Function} fn
 * @param {Number} timeout
 * @param {Object} context
 * @returns {number}
 */
function setTimeoutContext(fn, timeout, context) {
    return setTimeout(bindFn(fn, context), timeout);
}

/**
 * if the argument is an array, we want to execute the fn on each entry
 * if it aint an array we don't want to do a thing.
 * this is used by all the methods that accept a single and array argument.
 * @param {*|Array} arg
 * @param {String} fn
 * @param {Object} [context]
 * @returns {Boolean}
 */
function invokeArrayArg(arg, fn, context) {
    if (Array.isArray(arg)) {
        each(arg, context[fn], context);
        return true;
    }
    return false;
}

/**
 * walk objects and arrays
 * @param {Object} obj
 * @param {Function} iterator
 * @param {Object} context
 */
function each(obj, iterator, context) {
    var i;

    if (!obj) {
        return;
    }

    if (obj.forEach) {
        obj.forEach(iterator, context);
    } else if (obj.length !== undefined) {
        i = 0;
        while (i < obj.length) {
            iterator.call(context, obj[i], i, obj);
            i++;
        }
    } else {
        for (i in obj) {
            obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);
        }
    }
}

/**
 * extend object.
 * means that properties in dest will be overwritten by the ones in src.
 * @param {Object} dest
 * @param {Object} src
 * @param {Boolean} [merge]
 * @returns {Object} dest
 */
function extend(dest, src, merge) {
    var keys = Object.keys(src);
    var i = 0;
    while (i < keys.length) {
        if (!merge || (merge && dest[keys[i]] === undefined)) {
            dest[keys[i]] = src[keys[i]];
        }
        i++;
    }
    return dest;
}

/**
 * merge the values from src in the dest.
 * means that properties that exist in dest will not be overwritten by src
 * @param {Object} dest
 * @param {Object} src
 * @returns {Object} dest
 */
function merge(dest, src) {
    return extend(dest, src, true);
}

/**
 * simple class inheritance
 * @param {Function} child
 * @param {Function} base
 * @param {Object} [properties]
 */
function inherit(child, base, properties) {
    var baseP = base.prototype,
        childP;

    childP = child.prototype = Object.create(baseP);
    childP.constructor = child;
    childP._super = baseP;

    if (properties) {
        extend(childP, properties);
    }
}

/**
 * simple function bind
 * @param {Function} fn
 * @param {Object} context
 * @returns {Function}
 */
function bindFn(fn, context) {
    return function boundFn() {
        return fn.apply(context, arguments);
    };
}

/**
 * let a boolean value also be a function that must return a boolean
 * this first item in args will be used as the context
 * @param {Boolean|Function} val
 * @param {Array} [args]
 * @returns {Boolean}
 */
function boolOrFn(val, args) {
    if (typeof val == TYPE_FUNCTION) {
        return val.apply(args ? args[0] || undefined : undefined, args);
    }
    return val;
}

/**
 * use the val2 when val1 is undefined
 * @param {*} val1
 * @param {*} val2
 * @returns {*}
 */
function ifUndefined(val1, val2) {
    return (val1 === undefined) ? val2 : val1;
}

/**
 * addEventListener with multiple events at once
 * @param {EventTarget} target
 * @param {String} types
 * @param {Function} handler
 */
function addEventListeners(target, types, handler) {
    each(splitStr(types), function(type) {
        target.addEventListener(type, handler, false);
    });
}

/**
 * removeEventListener with multiple events at once
 * @param {EventTarget} target
 * @param {String} types
 * @param {Function} handler
 */
function removeEventListeners(target, types, handler) {
    each(splitStr(types), function(type) {
        target.removeEventListener(type, handler, false);
    });
}

/**
 * find if a node is in the given parent
 * @method hasParent
 * @param {HTMLElement} node
 * @param {HTMLElement} parent
 * @return {Boolean} found
 */
function hasParent(node, parent) {
    while (node) {
        if (node == parent) {
            return true;
        }
        node = node.parentNode;
    }
    return false;
}

/**
 * small indexOf wrapper
 * @param {String} str
 * @param {String} find
 * @returns {Boolean} found
 */
function inStr(str, find) {
    return str.indexOf(find) > -1;
}

/**
 * split string on whitespace
 * @param {String} str
 * @returns {Array} words
 */
function splitStr(str) {
    return str.trim().split(/\s+/g);
}

/**
 * find if a array contains the object using indexOf or a simple polyFill
 * @param {Array} src
 * @param {String} find
 * @param {String} [findByKey]
 * @return {Boolean|Number} false when not found, or the index
 */
function inArray(src, find, findByKey) {
    if (src.indexOf && !findByKey) {
        return src.indexOf(find);
    } else {
        var i = 0;
        while (i < src.length) {
            if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {
                return i;
            }
            i++;
        }
        return -1;
    }
}

/**
 * convert array-like objects to real arrays
 * @param {Object} obj
 * @returns {Array}
 */
function toArray(obj) {
    return Array.prototype.slice.call(obj, 0);
}

/**
 * unique array with objects based on a key (like 'id') or just by the array's value
 * @param {Array} src [{id:1},{id:2},{id:1}]
 * @param {String} [key]
 * @param {Boolean} [sort=False]
 * @returns {Array} [{id:1},{id:2}]
 */
function uniqueArray(src, key, sort) {
    var results = [];
    var values = [];
    var i = 0;

    while (i < src.length) {
        var val = key ? src[i][key] : src[i];
        if (inArray(values, val) < 0) {
            results.push(src[i]);
        }
        values[i] = val;
        i++;
    }

    if (sort) {
        if (!key) {
            results = results.sort();
        } else {
            results = results.sort(function sortUniqueArray(a, b) {
                return a[key] > b[key];
            });
        }
    }

    return results;
}

/**
 * get the prefixed property
 * @param {Object} obj
 * @param {String} property
 * @returns {String|Undefined} prefixed
 */
function prefixed(obj, property) {
    var prefix, prop;
    var camelProp = property[0].toUpperCase() + property.slice(1);

    var i = 0;
    while (i < VENDOR_PREFIXES.length) {
        prefix = VENDOR_PREFIXES[i];
        prop = (prefix) ? prefix + camelProp : property;

        if (prop in obj) {
            return prop;
        }
        i++;
    }
    return undefined;
}

/**
 * get a unique id
 * @returns {number} uniqueId
 */
var _uniqueId = 1;
function uniqueId() {
    return _uniqueId++;
}

/**
 * get the window object of an element
 * @param {HTMLElement} element
 * @returns {DocumentView|Window}
 */
function getWindowForElement(element) {
    var doc = element.ownerDocument;
    return (doc.defaultView || doc.parentWindow);
}

var MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;

var SUPPORT_TOUCH = ('ontouchstart' in window);
var SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;
var SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);

var INPUT_TYPE_TOUCH = 'touch';
var INPUT_TYPE_PEN = 'pen';
var INPUT_TYPE_MOUSE = 'mouse';
var INPUT_TYPE_KINECT = 'kinect';

var COMPUTE_INTERVAL = 25;

var INPUT_START = 1;
var INPUT_MOVE = 2;
var INPUT_END = 4;
var INPUT_CANCEL = 8;

var DIRECTION_NONE = 1;
var DIRECTION_LEFT = 2;
var DIRECTION_RIGHT = 4;
var DIRECTION_UP = 8;
var DIRECTION_DOWN = 16;

var DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;
var DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;
var DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;

var PROPS_XY = ['x', 'y'];
var PROPS_CLIENT_XY = ['clientX', 'clientY'];

/**
 * create new input type manager
 * @param {Manager} manager
 * @param {Function} callback
 * @returns {Input}
 * @constructor
 */
function Input(manager, callback) {
    var self = this;
    this.manager = manager;
    this.callback = callback;
    this.element = manager.element;
    this.target = manager.options.inputTarget;

    // smaller wrapper around the handler, for the scope and the enabled state of the manager,
    // so when disabled the input events are completely bypassed.
    this.domHandler = function(ev) {
        if (boolOrFn(manager.options.enable, [manager])) {
            self.handler(ev);
        }
    };

    this.init();

}

Input.prototype = {
    /**
     * should handle the inputEvent data and trigger the callback
     * @virtual
     */
    handler: function() { },

    /**
     * bind the events
     */
    init: function() {
        this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);
        this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);
        this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);
    },

    /**
     * unbind the events
     */
    destroy: function() {
        this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);
        this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);
        this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);
    }
};

/**
 * create new input type manager
 * called by the Manager constructor
 * @param {Hammer} manager
 * @returns {Input}
 */
function createInputInstance(manager) {
    var Type;
    var inputClass = manager.options.inputClass;

    if (inputClass) {
        Type = inputClass;
    } else if (SUPPORT_POINTER_EVENTS) {
        Type = PointerEventInput;
    } else if (SUPPORT_ONLY_TOUCH) {
        Type = TouchInput;
    } else if (!SUPPORT_TOUCH) {
        Type = MouseInput;
    } else {
        Type = TouchMouseInput;
    }
    return new (Type)(manager, inputHandler);
}

/**
 * handle input events
 * @param {Manager} manager
 * @param {String} eventType
 * @param {Object} input
 */
function inputHandler(manager, eventType, input) {
    var pointersLen = input.pointers.length;
    var changedPointersLen = input.changedPointers.length;
    var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));
    var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));

    input.isFirst = !!isFirst;
    input.isFinal = !!isFinal;

    if (isFirst) {
        manager.session = {};
    }

    // source event is the normalized value of the domEvents
    // like 'touchstart, mouseup, pointerdown'
    input.eventType = eventType;

    // compute scale, rotation etc
    computeInputData(manager, input);

    // emit secret event
    manager.emit('hammer.input', input);

    manager.recognize(input);
    manager.session.prevInput = input;
}

/**
 * extend the data with some usable properties like scale, rotate, velocity etc
 * @param {Object} manager
 * @param {Object} input
 */
function computeInputData(manager, input) {
    var session = manager.session;
    var pointers = input.pointers;
    var pointersLength = pointers.length;

    // store the first input to calculate the distance and direction
    if (!session.firstInput) {
        session.firstInput = simpleCloneInputData(input);
    }

    // to compute scale and rotation we need to store the multiple touches
    if (pointersLength > 1 && !session.firstMultiple) {
        session.firstMultiple = simpleCloneInputData(input);
    } else if (pointersLength === 1) {
        session.firstMultiple = false;
    }

    var firstInput = session.firstInput;
    var firstMultiple = session.firstMultiple;
    var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;

    var center = input.center = getCenter(pointers);
    input.timeStamp = now();
    input.deltaTime = input.timeStamp - firstInput.timeStamp;

    input.angle = getAngle(offsetCenter, center);
    input.distance = getDistance(offsetCenter, center);

    computeDeltaXY(session, input);
    input.offsetDirection = getDirection(input.deltaX, input.deltaY);

    input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;
    input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;

    computeIntervalInputData(session, input);

    // find the correct target
    var target = manager.element;
    if (hasParent(input.srcEvent.target, target)) {
        target = input.srcEvent.target;
    }
    input.target = target;
}

function computeDeltaXY(session, input) {
    var center = input.center;
    var offset = session.offsetDelta || {};
    var prevDelta = session.prevDelta || {};
    var prevInput = session.prevInput || {};

    if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {
        prevDelta = session.prevDelta = {
            x: prevInput.deltaX || 0,
            y: prevInput.deltaY || 0
        };

        offset = session.offsetDelta = {
            x: center.x,
            y: center.y
        };
    }

    input.deltaX = prevDelta.x + (center.x - offset.x);
    input.deltaY = prevDelta.y + (center.y - offset.y);
}

/**
 * velocity is calculated every x ms
 * @param {Object} session
 * @param {Object} input
 */
function computeIntervalInputData(session, input) {
    var last = session.lastInterval || input,
        deltaTime = input.timeStamp - last.timeStamp,
        velocity, velocityX, velocityY, direction;

    if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {
        var deltaX = last.deltaX - input.deltaX;
        var deltaY = last.deltaY - input.deltaY;

        var v = getVelocity(deltaTime, deltaX, deltaY);
        velocityX = v.x;
        velocityY = v.y;
        velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;
        direction = getDirection(deltaX, deltaY);

        session.lastInterval = input;
    } else {
        // use latest velocity info if it doesn't overtake a minimum period
        velocity = last.velocity;
        velocityX = last.velocityX;
        velocityY = last.velocityY;
        direction = last.direction;
    }

    input.velocity = velocity;
    input.velocityX = velocityX;
    input.velocityY = velocityY;
    input.direction = direction;
}

/**
 * create a simple clone from the input used for storage of firstInput and firstMultiple
 * @param {Object} input
 * @returns {Object} clonedInputData
 */
function simpleCloneInputData(input) {
    // make a simple copy of the pointers because we will get a reference if we don't
    // we only need clientXY for the calculations
    var pointers = [];
    var i = 0;
    while (i < input.pointers.length) {
        pointers[i] = {
            clientX: round(input.pointers[i].clientX),
            clientY: round(input.pointers[i].clientY)
        };
        i++;
    }

    return {
        timeStamp: now(),
        pointers: pointers,
        center: getCenter(pointers),
        deltaX: input.deltaX,
        deltaY: input.deltaY
    };
}

/**
 * get the center of all the pointers
 * @param {Array} pointers
 * @return {Object} center contains `x` and `y` properties
 */
function getCenter(pointers) {
    var pointersLength = pointers.length;

    // no need to loop when only one touch
    if (pointersLength === 1) {
        return {
            x: round(pointers[0].clientX),
            y: round(pointers[0].clientY)
        };
    }

    var x = 0, y = 0, i = 0;
    while (i < pointersLength) {
        x += pointers[i].clientX;
        y += pointers[i].clientY;
        i++;
    }

    return {
        x: round(x / pointersLength),
        y: round(y / pointersLength)
    };
}

/**
 * calculate the velocity between two points. unit is in px per ms.
 * @param {Number} deltaTime
 * @param {Number} x
 * @param {Number} y
 * @return {Object} velocity `x` and `y`
 */
function getVelocity(deltaTime, x, y) {
    return {
        x: x / deltaTime || 0,
        y: y / deltaTime || 0
    };
}

/**
 * get the direction between two points
 * @param {Number} x
 * @param {Number} y
 * @return {Number} direction
 */
function getDirection(x, y) {
    if (x === y) {
        return DIRECTION_NONE;
    }

    if (abs(x) >= abs(y)) {
        return x > 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;
    }
    return y > 0 ? DIRECTION_UP : DIRECTION_DOWN;
}

/**
 * calculate the absolute distance between two points
 * @param {Object} p1 {x, y}
 * @param {Object} p2 {x, y}
 * @param {Array} [props] containing x and y keys
 * @return {Number} distance
 */
function getDistance(p1, p2, props) {
    if (!props) {
        props = PROPS_XY;
    }
    var x = p2[props[0]] - p1[props[0]],
        y = p2[props[1]] - p1[props[1]];

    return Math.sqrt((x * x) + (y * y));
}

/**
 * calculate the angle between two coordinates
 * @param {Object} p1
 * @param {Object} p2
 * @param {Array} [props] containing x and y keys
 * @return {Number} angle
 */
function getAngle(p1, p2, props) {
    if (!props) {
        props = PROPS_XY;
    }
    var x = p2[props[0]] - p1[props[0]],
        y = p2[props[1]] - p1[props[1]];
    return Math.atan2(y, x) * 180 / Math.PI;
}

/**
 * calculate the rotation degrees between two pointersets
 * @param {Array} start array of pointers
 * @param {Array} end array of pointers
 * @return {Number} rotation
 */
function getRotation(start, end) {
    return getAngle(end[1], end[0], PROPS_CLIENT_XY) - getAngle(start[1], start[0], PROPS_CLIENT_XY);
}

/**
 * calculate the scale factor between two pointersets
 * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out
 * @param {Array} start array of pointers
 * @param {Array} end array of pointers
 * @return {Number} scale
 */
function getScale(start, end) {
    return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);
}

var MOUSE_INPUT_MAP = {
    mousedown: INPUT_START,
    mousemove: INPUT_MOVE,
    mouseup: INPUT_END
};

var MOUSE_ELEMENT_EVENTS = 'mousedown';
var MOUSE_WINDOW_EVENTS = 'mousemove mouseup';

/**
 * Mouse events input
 * @constructor
 * @extends Input
 */
function MouseInput() {
    this.evEl = MOUSE_ELEMENT_EVENTS;
    this.evWin = MOUSE_WINDOW_EVENTS;

    this.allow = true; // used by Input.TouchMouse to disable mouse events
    this.pressed = false; // mousedown state

    Input.apply(this, arguments);
}

inherit(MouseInput, Input, {
    /**
     * handle mouse events
     * @param {Object} ev
     */
    handler: function MEhandler(ev) {
        var eventType = MOUSE_INPUT_MAP[ev.type];

        // on start we want to have the left mouse button down
        if (eventType & INPUT_START && ev.button === 0) {
            this.pressed = true;
        }

        if (eventType & INPUT_MOVE && ev.which !== 1) {
            eventType = INPUT_END;
        }

        // mouse must be down, and mouse events are allowed (see the TouchMouse input)
        if (!this.pressed || !this.allow) {
            return;
        }

        if (eventType & INPUT_END) {
            this.pressed = false;
        }

        this.callback(this.manager, eventType, {
            pointers: [ev],
            changedPointers: [ev],
            pointerType: INPUT_TYPE_MOUSE,
            srcEvent: ev
        });
    }
});

var POINTER_INPUT_MAP = {
    pointerdown: INPUT_START,
    pointermove: INPUT_MOVE,
    pointerup: INPUT_END,
    pointercancel: INPUT_CANCEL,
    pointerout: INPUT_CANCEL
};

// in IE10 the pointer types is defined as an enum
var IE10_POINTER_TYPE_ENUM = {
    2: INPUT_TYPE_TOUCH,
    3: INPUT_TYPE_PEN,
    4: INPUT_TYPE_MOUSE,
    5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816
};

var POINTER_ELEMENT_EVENTS = 'pointerdown';
var POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';

// IE10 has prefixed support, and case-sensitive
if (window.MSPointerEvent) {
    POINTER_ELEMENT_EVENTS = 'MSPointerDown';
    POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';
}

/**
 * Pointer events input
 * @constructor
 * @extends Input
 */
function PointerEventInput() {
    this.evEl = POINTER_ELEMENT_EVENTS;
    this.evWin = POINTER_WINDOW_EVENTS;

    Input.apply(this, arguments);

    this.store = (this.manager.session.pointerEvents = []);
}

inherit(PointerEventInput, Input, {
    /**
     * handle mouse events
     * @param {Object} ev
     */
    handler: function PEhandler(ev) {
        var store = this.store;
        var removePointer = false;

        var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');
        var eventType = POINTER_INPUT_MAP[eventTypeNormalized];
        var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;

        var isTouch = (pointerType == INPUT_TYPE_TOUCH);

        // get index of the event in the store
        var storeIndex = inArray(store, ev.pointerId, 'pointerId');

        // start and mouse must be down
        if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {
            if (storeIndex < 0) {
                store.push(ev);
                storeIndex = store.length - 1;
            }
        } else if (eventType & (INPUT_END | INPUT_CANCEL)) {
            removePointer = true;
        }

        // it not found, so the pointer hasn't been down (so it's probably a hover)
        if (storeIndex < 0) {
            return;
        }

        // update the event in the store
        store[storeIndex] = ev;

        this.callback(this.manager, eventType, {
            pointers: store,
            changedPointers: [ev],
            pointerType: pointerType,
            srcEvent: ev
        });

        if (removePointer) {
            // remove from the store
            store.splice(storeIndex, 1);
        }
    }
});

var SINGLE_TOUCH_INPUT_MAP = {
    touchstart: INPUT_START,
    touchmove: INPUT_MOVE,
    touchend: INPUT_END,
    touchcancel: INPUT_CANCEL
};

var SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';
var SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';

/**
 * Touch events input
 * @constructor
 * @extends Input
 */
function SingleTouchInput() {
    this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;
    this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;
    this.started = false;

    Input.apply(this, arguments);
}

inherit(SingleTouchInput, Input, {
    handler: function TEhandler(ev) {
        var type = SINGLE_TOUCH_INPUT_MAP[ev.type];

        // should we handle the touch events?
        if (type === INPUT_START) {
            this.started = true;
        }

        if (!this.started) {
            return;
        }

        var touches = normalizeSingleTouches.call(this, ev, type);

        // when done, reset the started state
        if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {
            this.started = false;
        }

        this.callback(this.manager, type, {
            pointers: touches[0],
            changedPointers: touches[1],
            pointerType: INPUT_TYPE_TOUCH,
            srcEvent: ev
        });
    }
});

/**
 * @this {TouchInput}
 * @param {Object} ev
 * @param {Number} type flag
 * @returns {undefined|Array} [all, changed]
 */
function normalizeSingleTouches(ev, type) {
    var all = toArray(ev.touches);
    var changed = toArray(ev.changedTouches);

    if (type & (INPUT_END | INPUT_CANCEL)) {
        all = uniqueArray(all.concat(changed), 'identifier', true);
    }

    return [all, changed];
}

var TOUCH_INPUT_MAP = {
    touchstart: INPUT_START,
    touchmove: INPUT_MOVE,
    touchend: INPUT_END,
    touchcancel: INPUT_CANCEL
};

var TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';

/**
 * Multi-user touch events input
 * @constructor
 * @extends Input
 */
function TouchInput() {
    this.evTarget = TOUCH_TARGET_EVENTS;
    this.targetIds = {};

    Input.apply(this, arguments);
}

inherit(TouchInput, Input, {
    handler: function MTEhandler(ev) {
        var type = TOUCH_INPUT_MAP[ev.type];
        var touches = getTouches.call(this, ev, type);
        if (!touches) {
            return;
        }

        this.callback(this.manager, type, {
            pointers: touches[0],
            changedPointers: touches[1],
            pointerType: INPUT_TYPE_TOUCH,
            srcEvent: ev
        });
    }
});

/**
 * @this {TouchInput}
 * @param {Object} ev
 * @param {Number} type flag
 * @returns {undefined|Array} [all, changed]
 */
function getTouches(ev, type) {
    var allTouches = toArray(ev.touches);
    var targetIds = this.targetIds;

    // when there is only one touch, the process can be simplified
    if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {
        targetIds[allTouches[0].identifier] = true;
        return [allTouches, allTouches];
    }

    var i,
        targetTouches,
        changedTouches = toArray(ev.changedTouches),
        changedTargetTouches = [],
        target = this.target;

    // get target touches from touches
    targetTouches = allTouches.filter(function(touch) {
        return hasParent(touch.target, target);
    });

    // collect touches
    if (type === INPUT_START) {
        i = 0;
        while (i < targetTouches.length) {
            targetIds[targetTouches[i].identifier] = true;
            i++;
        }
    }

    // filter changed touches to only contain touches that exist in the collected target ids
    i = 0;
    while (i < changedTouches.length) {
        if (targetIds[changedTouches[i].identifier]) {
            changedTargetTouches.push(changedTouches[i]);
        }

        // cleanup removed touches
        if (type & (INPUT_END | INPUT_CANCEL)) {
            delete targetIds[changedTouches[i].identifier];
        }
        i++;
    }

    if (!changedTargetTouches.length) {
        return;
    }

    return [
        // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'
        uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),
        changedTargetTouches
    ];
}

/**
 * Combined touch and mouse input
 *
 * Touch has a higher priority then mouse, and while touching no mouse events are allowed.
 * This because touch devices also emit mouse events while doing a touch.
 *
 * @constructor
 * @extends Input
 */
function TouchMouseInput() {
    Input.apply(this, arguments);

    var handler = bindFn(this.handler, this);
    this.touch = new TouchInput(this.manager, handler);
    this.mouse = new MouseInput(this.manager, handler);
}

inherit(TouchMouseInput, Input, {
    /**
     * handle mouse and touch events
     * @param {Hammer} manager
     * @param {String} inputEvent
     * @param {Object} inputData
     */
    handler: function TMEhandler(manager, inputEvent, inputData) {
        var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),
            isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);

        // when we're in a touch event, so  block all upcoming mouse events
        // most mobile browser also emit mouseevents, right after touchstart
        if (isTouch) {
            this.mouse.allow = false;
        } else if (isMouse && !this.mouse.allow) {
            return;
        }

        // reset the allowMouse when we're done
        if (inputEvent & (INPUT_END | INPUT_CANCEL)) {
            this.mouse.allow = true;
        }

        this.callback(manager, inputEvent, inputData);
    },

    /**
     * remove the event listeners
     */
    destroy: function destroy() {
        this.touch.destroy();
        this.mouse.destroy();
    }
});

var PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');
var NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;

// magical touchAction value
var TOUCH_ACTION_COMPUTE = 'compute';
var TOUCH_ACTION_AUTO = 'auto';
var TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented
var TOUCH_ACTION_NONE = 'none';
var TOUCH_ACTION_PAN_X = 'pan-x';
var TOUCH_ACTION_PAN_Y = 'pan-y';

/**
 * Touch Action
 * sets the touchAction property or uses the js alternative
 * @param {Manager} manager
 * @param {String} value
 * @constructor
 */
function TouchAction(manager, value) {
    this.manager = manager;
    this.set(value);
}

TouchAction.prototype = {
    /**
     * set the touchAction value on the element or enable the polyfill
     * @param {String} value
     */
    set: function(value) {
        // find out the touch-action by the event handlers
        if (value == TOUCH_ACTION_COMPUTE) {
            value = this.compute();
        }

        if (NATIVE_TOUCH_ACTION) {
            this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;
        }
        this.actions = value.toLowerCase().trim();
    },

    /**
     * just re-set the touchAction value
     */
    update: function() {
        this.set(this.manager.options.touchAction);
    },

    /**
     * compute the value for the touchAction property based on the recognizer's settings
     * @returns {String} value
     */
    compute: function() {
        var actions = [];
        each(this.manager.recognizers, function(recognizer) {
            if (boolOrFn(recognizer.options.enable, [recognizer])) {
                actions = actions.concat(recognizer.getTouchAction());
            }
        });
        return cleanTouchActions(actions.join(' '));
    },

    /**
     * this method is called on each input cycle and provides the preventing of the browser behavior
     * @param {Object} input
     */
    preventDefaults: function(input) {
        // not needed with native support for the touchAction property
        if (NATIVE_TOUCH_ACTION) {
            return;
        }

        var srcEvent = input.srcEvent;
        var direction = input.offsetDirection;

        // if the touch action did prevented once this session
        if (this.manager.session.prevented) {
            srcEvent.preventDefault();
            return;
        }

        var actions = this.actions;
        var hasNone = inStr(actions, TOUCH_ACTION_NONE);
        var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);
        var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);

        if (hasNone ||
            (hasPanY && direction & DIRECTION_HORIZONTAL) ||
            (hasPanX && direction & DIRECTION_VERTICAL)) {
            return this.preventSrc(srcEvent);
        }
    },

    /**
     * call preventDefault to prevent the browser's default behavior (scrolling in most cases)
     * @param {Object} srcEvent
     */
    preventSrc: function(srcEvent) {
        this.manager.session.prevented = true;
        srcEvent.preventDefault();
    }
};

/**
 * when the touchActions are collected they are not a valid value, so we need to clean things up. *
 * @param {String} actions
 * @returns {*}
 */
function cleanTouchActions(actions) {
    // none
    if (inStr(actions, TOUCH_ACTION_NONE)) {
        return TOUCH_ACTION_NONE;
    }

    var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);
    var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);

    // pan-x and pan-y can be combined
    if (hasPanX && hasPanY) {
        return TOUCH_ACTION_PAN_X + ' ' + TOUCH_ACTION_PAN_Y;
    }

    // pan-x OR pan-y
    if (hasPanX || hasPanY) {
        return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;
    }

    // manipulation
    if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {
        return TOUCH_ACTION_MANIPULATION;
    }

    return TOUCH_ACTION_AUTO;
}

/**
 * Recognizer flow explained; *
 * All recognizers have the initial state of POSSIBLE when a input session starts.
 * The definition of a input session is from the first input until the last input, with all it's movement in it. *
 * Example session for mouse-input: mousedown -> mousemove -> mouseup
 *
 * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed
 * which determines with state it should be.
 *
 * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to
 * POSSIBLE to give it another change on the next cycle.
 *
 *               Possible
 *                  |
 *            +-----+---------------+
 *            |                     |
 *      +-----+-----+               |
 *      |           |               |
 *   Failed      Cancelled          |
 *                          +-------+------+
 *                          |              |
 *                      Recognized       Began
 *                                         |
 *                                      Changed
 *                                         |
 *                                  Ended/Recognized
 */
var STATE_POSSIBLE = 1;
var STATE_BEGAN = 2;
var STATE_CHANGED = 4;
var STATE_ENDED = 8;
var STATE_RECOGNIZED = STATE_ENDED;
var STATE_CANCELLED = 16;
var STATE_FAILED = 32;

/**
 * Recognizer
 * Every recognizer needs to extend from this class.
 * @constructor
 * @param {Object} options
 */
function Recognizer(options) {
    this.id = uniqueId();

    this.manager = null;
    this.options = merge(options || {}, this.defaults);

    // default is enable true
    this.options.enable = ifUndefined(this.options.enable, true);

    this.state = STATE_POSSIBLE;

    this.simultaneous = {};
    this.requireFail = [];
}

Recognizer.prototype = {
    /**
     * @virtual
     * @type {Object}
     */
    defaults: {},

    /**
     * set options
     * @param {Object} options
     * @return {Recognizer}
     */
    set: function(options) {
        extend(this.options, options);

        // also update the touchAction, in case something changed about the directions/enabled state
        this.manager && this.manager.touchAction.update();
        return this;
    },

    /**
     * recognize simultaneous with an other recognizer.
     * @param {Recognizer} otherRecognizer
     * @returns {Recognizer} this
     */
    recognizeWith: function(otherRecognizer) {
        if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {
            return this;
        }

        var simultaneous = this.simultaneous;
        otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);
        if (!simultaneous[otherRecognizer.id]) {
            simultaneous[otherRecognizer.id] = otherRecognizer;
            otherRecognizer.recognizeWith(this);
        }
        return this;
    },

    /**
     * drop the simultaneous link. it doesnt remove the link on the other recognizer.
     * @param {Recognizer} otherRecognizer
     * @returns {Recognizer} this
     */
    dropRecognizeWith: function(otherRecognizer) {
        if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {
            return this;
        }

        otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);
        delete this.simultaneous[otherRecognizer.id];
        return this;
    },

    /**
     * recognizer can only run when an other is failing
     * @param {Recognizer} otherRecognizer
     * @returns {Recognizer} this
     */
    requireFailure: function(otherRecognizer) {
        if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {
            return this;
        }

        var requireFail = this.requireFail;
        otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);
        if (inArray(requireFail, otherRecognizer) === -1) {
            requireFail.push(otherRecognizer);
            otherRecognizer.requireFailure(this);
        }
        return this;
    },

    /**
     * drop the requireFailure link. it does not remove the link on the other recognizer.
     * @param {Recognizer} otherRecognizer
     * @returns {Recognizer} this
     */
    dropRequireFailure: function(otherRecognizer) {
        if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {
            return this;
        }

        otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);
        var index = inArray(this.requireFail, otherRecognizer);
        if (index > -1) {
            this.requireFail.splice(index, 1);
        }
        return this;
    },

    /**
     * has require failures boolean
     * @returns {boolean}
     */
    hasRequireFailures: function() {
        return this.requireFail.length > 0;
    },

    /**
     * if the recognizer can recognize simultaneous with an other recognizer
     * @param {Recognizer} otherRecognizer
     * @returns {Boolean}
     */
    canRecognizeWith: function(otherRecognizer) {
        return !!this.simultaneous[otherRecognizer.id];
    },

    /**
     * You should use `tryEmit` instead of `emit` directly to check
     * that all the needed recognizers has failed before emitting.
     * @param {Object} input
     */
    emit: function(input) {
        var self = this;
        var state = this.state;

        function emit(withState) {
            self.manager.emit(self.options.event + (withState ? stateStr(state) : ''), input);
        }

        // 'panstart' and 'panmove'
        if (state < STATE_ENDED) {
            emit(true);
        }

        emit(); // simple 'eventName' events

        // panend and pancancel
        if (state >= STATE_ENDED) {
            emit(true);
        }
    },

    /**
     * Check that all the require failure recognizers has failed,
     * if true, it emits a gesture event,
     * otherwise, setup the state to FAILED.
     * @param {Object} input
     */
    tryEmit: function(input) {
        if (this.canEmit()) {
            return this.emit(input);
        }
        // it's failing anyway
        this.state = STATE_FAILED;
    },

    /**
     * can we emit?
     * @returns {boolean}
     */
    canEmit: function() {
        var i = 0;
        while (i < this.requireFail.length) {
            if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {
                return false;
            }
            i++;
        }
        return true;
    },

    /**
     * update the recognizer
     * @param {Object} inputData
     */
    recognize: function(inputData) {
        // make a new copy of the inputData
        // so we can change the inputData without messing up the other recognizers
        var inputDataClone = extend({}, inputData);

        // is is enabled and allow recognizing?
        if (!boolOrFn(this.options.enable, [this, inputDataClone])) {
            this.reset();
            this.state = STATE_FAILED;
            return;
        }

        // reset when we've reached the end
        if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {
            this.state = STATE_POSSIBLE;
        }

        this.state = this.process(inputDataClone);

        // the recognizer has recognized a gesture
        // so trigger an event
        if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {
            this.tryEmit(inputDataClone);
        }
    },

    /**
     * return the state of the recognizer
     * the actual recognizing happens in this method
     * @virtual
     * @param {Object} inputData
     * @returns {Const} STATE
     */
    process: function(inputData) { }, // jshint ignore:line

    /**
     * return the preferred touch-action
     * @virtual
     * @returns {Array}
     */
    getTouchAction: function() { },

    /**
     * called when the gesture isn't allowed to recognize
     * like when another is being recognized or it is disabled
     * @virtual
     */
    reset: function() { }
};

/**
 * get a usable string, used as event postfix
 * @param {Const} state
 * @returns {String} state
 */
function stateStr(state) {
    if (state & STATE_CANCELLED) {
        return 'cancel';
    } else if (state & STATE_ENDED) {
        return 'end';
    } else if (state & STATE_CHANGED) {
        return 'move';
    } else if (state & STATE_BEGAN) {
        return 'start';
    }
    return '';
}

/**
 * direction cons to string
 * @param {Const} direction
 * @returns {String}
 */
function directionStr(direction) {
    if (direction == DIRECTION_DOWN) {
        return 'down';
    } else if (direction == DIRECTION_UP) {
        return 'up';
    } else if (direction == DIRECTION_LEFT) {
        return 'left';
    } else if (direction == DIRECTION_RIGHT) {
        return 'right';
    }
    return '';
}

/**
 * get a recognizer by name if it is bound to a manager
 * @param {Recognizer|String} otherRecognizer
 * @param {Recognizer} recognizer
 * @returns {Recognizer}
 */
function getRecognizerByNameIfManager(otherRecognizer, recognizer) {
    var manager = recognizer.manager;
    if (manager) {
        return manager.get(otherRecognizer);
    }
    return otherRecognizer;
}

/**
 * This recognizer is just used as a base for the simple attribute recognizers.
 * @constructor
 * @extends Recognizer
 */
function AttrRecognizer() {
    Recognizer.apply(this, arguments);
}

inherit(AttrRecognizer, Recognizer, {
    /**
     * @namespace
     * @memberof AttrRecognizer
     */
    defaults: {
        /**
         * @type {Number}
         * @default 1
         */
        pointers: 1
    },

    /**
     * Used to check if it the recognizer receives valid input, like input.distance > 10.
     * @memberof AttrRecognizer
     * @param {Object} input
     * @returns {Boolean} recognized
     */
    attrTest: function(input) {
        var optionPointers = this.options.pointers;
        return optionPointers === 0 || input.pointers.length === optionPointers;
    },

    /**
     * Process the input and return the state for the recognizer
     * @memberof AttrRecognizer
     * @param {Object} input
     * @returns {*} State
     */
    process: function(input) {
        var state = this.state;
        var eventType = input.eventType;

        var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);
        var isValid = this.attrTest(input);

        // on cancel input and we've recognized before, return STATE_CANCELLED
        if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {
            return state | STATE_CANCELLED;
        } else if (isRecognized || isValid) {
            if (eventType & INPUT_END) {
                return state | STATE_ENDED;
            } else if (!(state & STATE_BEGAN)) {
                return STATE_BEGAN;
            }
            return state | STATE_CHANGED;
        }
        return STATE_FAILED;
    }
});

/**
 * Pan
 * Recognized when the pointer is down and moved in the allowed direction.
 * @constructor
 * @extends AttrRecognizer
 */
function PanRecognizer() {
    AttrRecognizer.apply(this, arguments);

    this.pX = null;
    this.pY = null;
}

inherit(PanRecognizer, AttrRecognizer, {
    /**
     * @namespace
     * @memberof PanRecognizer
     */
    defaults: {
        event: 'pan',
        threshold: 10,
        pointers: 1,
        direction: DIRECTION_ALL
    },

    getTouchAction: function() {
        var direction = this.options.direction;
        var actions = [];
        if (direction & DIRECTION_HORIZONTAL) {
            actions.push(TOUCH_ACTION_PAN_Y);
        }
        if (direction & DIRECTION_VERTICAL) {
            actions.push(TOUCH_ACTION_PAN_X);
        }
        return actions;
    },

    directionTest: function(input) {
        var options = this.options;
        var hasMoved = true;
        var distance = input.distance;
        var direction = input.direction;
        var x = input.deltaX;
        var y = input.deltaY;

        // lock to axis?
        if (!(direction & options.direction)) {
            if (options.direction & DIRECTION_HORIZONTAL) {
                direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;
                hasMoved = x != this.pX;
                distance = Math.abs(input.deltaX);
            } else {
                direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;
                hasMoved = y != this.pY;
                distance = Math.abs(input.deltaY);
            }
        }
        input.direction = direction;
        return hasMoved && distance > options.threshold && direction & options.direction;
    },

    attrTest: function(input) {
        return AttrRecognizer.prototype.attrTest.call(this, input) &&
            (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));
    },

    emit: function(input) {
        this.pX = input.deltaX;
        this.pY = input.deltaY;

        var direction = directionStr(input.direction);
        if (direction) {
            this.manager.emit(this.options.event + direction, input);
        }

        this._super.emit.call(this, input);
    }
});

/**
 * Pinch
 * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).
 * @constructor
 * @extends AttrRecognizer
 */
function PinchRecognizer() {
    AttrRecognizer.apply(this, arguments);
}

inherit(PinchRecognizer, AttrRecognizer, {
    /**
     * @namespace
     * @memberof PinchRecognizer
     */
    defaults: {
        event: 'pinch',
        threshold: 0,
        pointers: 2
    },

    getTouchAction: function() {
        return [TOUCH_ACTION_NONE];
    },

    attrTest: function(input) {
        return this._super.attrTest.call(this, input) &&
            (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);
    },

    emit: function(input) {
        this._super.emit.call(this, input);
        if (input.scale !== 1) {
            var inOut = input.scale < 1 ? 'in' : 'out';
            this.manager.emit(this.options.event + inOut, input);
        }
    }
});

/**
 * Press
 * Recognized when the pointer is down for x ms without any movement.
 * @constructor
 * @extends Recognizer
 */
function PressRecognizer() {
    Recognizer.apply(this, arguments);

    this._timer = null;
    this._input = null;
}

inherit(PressRecognizer, Recognizer, {
    /**
     * @namespace
     * @memberof PressRecognizer
     */
    defaults: {
        event: 'press',
        pointers: 1,
        time: 500, // minimal time of the pointer to be pressed
        threshold: 5 // a minimal movement is ok, but keep it low
    },

    getTouchAction: function() {
        return [TOUCH_ACTION_AUTO];
    },

    process: function(input) {
        var options = this.options;
        var validPointers = input.pointers.length === options.pointers;
        var validMovement = input.distance < options.threshold;
        var validTime = input.deltaTime > options.time;

        this._input = input;

        // we only allow little movement
        // and we've reached an end event, so a tap is possible
        if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {
            this.reset();
        } else if (input.eventType & INPUT_START) {
            this.reset();
            this._timer = setTimeoutContext(function() {
                this.state = STATE_RECOGNIZED;
                this.tryEmit();
            }, options.time, this);
        } else if (input.eventType & INPUT_END) {
            return STATE_RECOGNIZED;
        }
        return STATE_FAILED;
    },

    reset: function() {
        clearTimeout(this._timer);
    },

    emit: function(input) {
        if (this.state !== STATE_RECOGNIZED) {
            return;
        }

        if (input && (input.eventType & INPUT_END)) {
            this.manager.emit(this.options.event + 'up', input);
        } else {
            this._input.timeStamp = now();
            this.manager.emit(this.options.event, this._input);
        }
    }
});

/**
 * Rotate
 * Recognized when two or more pointer are moving in a circular motion.
 * @constructor
 * @extends AttrRecognizer
 */
function RotateRecognizer() {
    AttrRecognizer.apply(this, arguments);
}

inherit(RotateRecognizer, AttrRecognizer, {
    /**
     * @namespace
     * @memberof RotateRecognizer
     */
    defaults: {
        event: 'rotate',
        threshold: 0,
        pointers: 2
    },

    getTouchAction: function() {
        return [TOUCH_ACTION_NONE];
    },

    attrTest: function(input) {
        return this._super.attrTest.call(this, input) &&
            (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);
    }
});

/**
 * Swipe
 * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.
 * @constructor
 * @extends AttrRecognizer
 */
function SwipeRecognizer() {
    AttrRecognizer.apply(this, arguments);
}

inherit(SwipeRecognizer, AttrRecognizer, {
    /**
     * @namespace
     * @memberof SwipeRecognizer
     */
    defaults: {
        event: 'swipe',
        threshold: 10,
        velocity: 0.65,
        direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,
        pointers: 1
    },

    getTouchAction: function() {
        return PanRecognizer.prototype.getTouchAction.call(this);
    },

    attrTest: function(input) {
        var direction = this.options.direction;
        var velocity;

        if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {
            velocity = input.velocity;
        } else if (direction & DIRECTION_HORIZONTAL) {
            velocity = input.velocityX;
        } else if (direction & DIRECTION_VERTICAL) {
            velocity = input.velocityY;
        }

        return this._super.attrTest.call(this, input) &&
            direction & input.direction &&
            input.distance > this.options.threshold &&
            abs(velocity) > this.options.velocity && input.eventType & INPUT_END;
    },

    emit: function(input) {
        var direction = directionStr(input.direction);
        if (direction) {
            this.manager.emit(this.options.event + direction, input);
        }

        this.manager.emit(this.options.event, input);
    }
});

/**
 * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur
 * between the given interval and position. The delay option can be used to recognize multi-taps without firing
 * a single tap.
 *
 * The eventData from the emitted event contains the property `tapCount`, which contains the amount of
 * multi-taps being recognized.
 * @constructor
 * @extends Recognizer
 */
function TapRecognizer() {
    Recognizer.apply(this, arguments);

    // previous time and center,
    // used for tap counting
    this.pTime = false;
    this.pCenter = false;

    this._timer = null;
    this._input = null;
    this.count = 0;
}

inherit(TapRecognizer, Recognizer, {
    /**
     * @namespace
     * @memberof PinchRecognizer
     */
    defaults: {
        event: 'tap',
        pointers: 1,
        taps: 1,
        interval: 300, // max time between the multi-tap taps
        time: 250, // max time of the pointer to be down (like finger on the screen)
        threshold: 2, // a minimal movement is ok, but keep it low
        posThreshold: 10 // a multi-tap can be a bit off the initial position
    },

    getTouchAction: function() {
        return [TOUCH_ACTION_MANIPULATION];
    },

    process: function(input) {
        var options = this.options;

        var validPointers = input.pointers.length === options.pointers;
        var validMovement = input.distance < options.threshold;
        var validTouchTime = input.deltaTime < options.time;

        this.reset();

        if ((input.eventType & INPUT_START) && (this.count === 0)) {
            return this.failTimeout();
        }

        // we only allow little movement
        // and we've reached an end event, so a tap is possible
        if (validMovement && validTouchTime && validPointers) {
            if (input.eventType != INPUT_END) {
                return this.failTimeout();
            }

            var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;
            var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;

            this.pTime = input.timeStamp;
            this.pCenter = input.center;

            if (!validMultiTap || !validInterval) {
                this.count = 1;
            } else {
                this.count += 1;
            }

            this._input = input;

            // if tap count matches we have recognized it,
            // else it has began recognizing...
            var tapCount = this.count % options.taps;
            if (tapCount === 0) {
                // no failing requirements, immediately trigger the tap event
                // or wait as long as the multitap interval to trigger
                if (!this.hasRequireFailures()) {
                    return STATE_RECOGNIZED;
                } else {
                    this._timer = setTimeoutContext(function() {
                        this.state = STATE_RECOGNIZED;
                        this.tryEmit();
                    }, options.interval, this);
                    return STATE_BEGAN;
                }
            }
        }
        return STATE_FAILED;
    },

    failTimeout: function() {
        this._timer = setTimeoutContext(function() {
            this.state = STATE_FAILED;
        }, this.options.interval, this);
        return STATE_FAILED;
    },

    reset: function() {
        clearTimeout(this._timer);
    },

    emit: function() {
        if (this.state == STATE_RECOGNIZED ) {
            this._input.tapCount = this.count;
            this.manager.emit(this.options.event, this._input);
        }
    }
});

/**
 * Simple way to create an manager with a default set of recognizers.
 * @param {HTMLElement} element
 * @param {Object} [options]
 * @constructor
 */
function Hammer(element, options) {
    options = options || {};
    options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);
    return new Manager(element, options);
}

/**
 * @const {string}
 */
Hammer.VERSION = '2.0.4';

/**
 * default settings
 * @namespace
 */
Hammer.defaults = {
    /**
     * set if DOM events are being triggered.
     * But this is slower and unused by simple implementations, so disabled by default.
     * @type {Boolean}
     * @default false
     */
    domEvents: false,

    /**
     * The value for the touchAction property/fallback.
     * When set to `compute` it will magically set the correct value based on the added recognizers.
     * @type {String}
     * @default compute
     */
    touchAction: TOUCH_ACTION_COMPUTE,

    /**
     * @type {Boolean}
     * @default true
     */
    enable: true,

    /**
     * EXPERIMENTAL FEATURE -- can be removed/changed
     * Change the parent input target element.
     * If Null, then it is being set the to main element.
     * @type {Null|EventTarget}
     * @default null
     */
    inputTarget: null,

    /**
     * force an input class
     * @type {Null|Function}
     * @default null
     */
    inputClass: null,

    /**
     * Default recognizer setup when calling `Hammer()`
     * When creating a new Manager these will be skipped.
     * @type {Array}
     */
    preset: [
        // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]
        [RotateRecognizer, { enable: false }],
        [PinchRecognizer, { enable: false }, ['rotate']],
        [SwipeRecognizer,{ direction: DIRECTION_HORIZONTAL }],
        [PanRecognizer, { direction: DIRECTION_HORIZONTAL }, ['swipe']],
        [TapRecognizer],
        [TapRecognizer, { event: 'doubletap', taps: 2 }, ['tap']],
        [PressRecognizer]
    ],

    /**
     * Some CSS properties can be used to improve the working of Hammer.
     * Add them to this method and they will be set when creating a new Manager.
     * @namespace
     */
    cssProps: {
        /**
         * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.
         * @type {String}
         * @default 'none'
         */
        userSelect: 'none',

        /**
         * Disable the Windows Phone grippers when pressing an element.
         * @type {String}
         * @default 'none'
         */
        touchSelect: 'none',

        /**
         * Disables the default callout shown when you touch and hold a touch target.
         * On iOS, when you touch and hold a touch target such as a link, Safari displays
         * a callout containing information about the link. This property allows you to disable that callout.
         * @type {String}
         * @default 'none'
         */
        touchCallout: 'none',

        /**
         * Specifies whether zooming is enabled. Used by IE10>
         * @type {String}
         * @default 'none'
         */
        contentZooming: 'none',

        /**
         * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.
         * @type {String}
         * @default 'none'
         */
        userDrag: 'none',

        /**
         * Overrides the highlight color shown when the user taps a link or a JavaScript
         * clickable element in iOS. This property obeys the alpha value, if specified.
         * @type {String}
         * @default 'rgba(0,0,0,0)'
         */
        tapHighlightColor: 'rgba(0,0,0,0)'
    }
};

var STOP = 1;
var FORCED_STOP = 2;

/**
 * Manager
 * @param {HTMLElement} element
 * @param {Object} [options]
 * @constructor
 */
function Manager(element, options) {
    options = options || {};

    this.options = merge(options, Hammer.defaults);
    this.options.inputTarget = this.options.inputTarget || element;

    this.handlers = {};
    this.session = {};
    this.recognizers = [];

    this.element = element;
    this.input = createInputInstance(this);
    this.touchAction = new TouchAction(this, this.options.touchAction);

    toggleCssProps(this, true);

    each(options.recognizers, function(item) {
        var recognizer = this.add(new (item[0])(item[1]));
        item[2] && recognizer.recognizeWith(item[2]);
        item[3] && recognizer.requireFailure(item[3]);
    }, this);
}

Manager.prototype = {
    /**
     * set options
     * @param {Object} options
     * @returns {Manager}
     */
    set: function(options) {
        extend(this.options, options);

        // Options that need a little more setup
        if (options.touchAction) {
            this.touchAction.update();
        }
        if (options.inputTarget) {
            // Clean up existing event listeners and reinitialize
            this.input.destroy();
            this.input.target = options.inputTarget;
            this.input.init();
        }
        return this;
    },

    /**
     * stop recognizing for this session.
     * This session will be discarded, when a new [input]start event is fired.
     * When forced, the recognizer cycle is stopped immediately.
     * @param {Boolean} [force]
     */
    stop: function(force) {
        this.session.stopped = force ? FORCED_STOP : STOP;
    },

    /**
     * run the recognizers!
     * called by the inputHandler function on every movement of the pointers (touches)
     * it walks through all the recognizers and tries to detect the gesture that is being made
     * @param {Object} inputData
     */
    recognize: function(inputData) {
        var session = this.session;
        if (session.stopped) {
            return;
        }

        // run the touch-action polyfill
        this.touchAction.preventDefaults(inputData);

        var recognizer;
        var recognizers = this.recognizers;

        // this holds the recognizer that is being recognized.
        // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED
        // if no recognizer is detecting a thing, it is set to `null`
        var curRecognizer = session.curRecognizer;

        // reset when the last recognizer is recognized
        // or when we're in a new session
        if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {
            curRecognizer = session.curRecognizer = null;
        }

        var i = 0;
        while (i < recognizers.length) {
            recognizer = recognizers[i];

            // find out if we are allowed try to recognize the input for this one.
            // 1.   allow if the session is NOT forced stopped (see the .stop() method)
            // 2.   allow if we still haven't recognized a gesture in this session, or the this recognizer is the one
            //      that is being recognized.
            // 3.   allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.
            //      this can be setup with the `recognizeWith()` method on the recognizer.
            if (session.stopped !== FORCED_STOP && ( // 1
                    !curRecognizer || recognizer == curRecognizer || // 2
                    recognizer.canRecognizeWith(curRecognizer))) { // 3
                recognizer.recognize(inputData);
            } else {
                recognizer.reset();
            }

            // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the
            // current active recognizer. but only if we don't already have an active recognizer
            if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {
                curRecognizer = session.curRecognizer = recognizer;
            }
            i++;
        }
    },

    /**
     * get a recognizer by its event name.
     * @param {Recognizer|String} recognizer
     * @returns {Recognizer|Null}
     */
    get: function(recognizer) {
        if (recognizer instanceof Recognizer) {
            return recognizer;
        }

        var recognizers = this.recognizers;
        for (var i = 0; i < recognizers.length; i++) {
            if (recognizers[i].options.event == recognizer) {
                return recognizers[i];
            }
        }
        return null;
    },

    /**
     * add a recognizer to the manager
     * existing recognizers with the same event name will be removed
     * @param {Recognizer} recognizer
     * @returns {Recognizer|Manager}
     */
    add: function(recognizer) {
        if (invokeArrayArg(recognizer, 'add', this)) {
            return this;
        }

        // remove existing
        var existing = this.get(recognizer.options.event);
        if (existing) {
            this.remove(existing);
        }

        this.recognizers.push(recognizer);
        recognizer.manager = this;

        this.touchAction.update();
        return recognizer;
    },

    /**
     * remove a recognizer by name or instance
     * @param {Recognizer|String} recognizer
     * @returns {Manager}
     */
    remove: function(recognizer) {
        if (invokeArrayArg(recognizer, 'remove', this)) {
            return this;
        }

        var recognizers = this.recognizers;
        recognizer = this.get(recognizer);
        recognizers.splice(inArray(recognizers, recognizer), 1);

        this.touchAction.update();
        return this;
    },

    /**
     * bind event
     * @param {String} events
     * @param {Function} handler
     * @returns {EventEmitter} this
     */
    on: function(events, handler) {
        var handlers = this.handlers;
        each(splitStr(events), function(event) {
            handlers[event] = handlers[event] || [];
            handlers[event].push(handler);
        });
        return this;
    },

    /**
     * unbind event, leave emit blank to remove all handlers
     * @param {String} events
     * @param {Function} [handler]
     * @returns {EventEmitter} this
     */
    off: function(events, handler) {
        var handlers = this.handlers;
        each(splitStr(events), function(event) {
            if (!handler) {
                delete handlers[event];
            } else {
                handlers[event].splice(inArray(handlers[event], handler), 1);
            }
        });
        return this;
    },

    /**
     * emit event to the listeners
     * @param {String} event
     * @param {Object} data
     */
    emit: function(event, data) {
        // we also want to trigger dom events
        if (this.options.domEvents) {
            triggerDomEvent(event, data);
        }

        // no handlers, so skip it all
        var handlers = this.handlers[event] && this.handlers[event].slice();
        if (!handlers || !handlers.length) {
            return;
        }

        data.type = event;
        data.preventDefault = function() {
            data.srcEvent.preventDefault();
        };

        var i = 0;
        while (i < handlers.length) {
            handlers[i](data);
            i++;
        }
    },

    /**
     * destroy the manager and unbinds all events
     * it doesn't unbind dom events, that is the user own responsibility
     */
    destroy: function() {
        this.element && toggleCssProps(this, false);

        this.handlers = {};
        this.session = {};
        this.input.destroy();
        this.element = null;
    }
};

/**
 * add/remove the css properties as defined in manager.options.cssProps
 * @param {Manager} manager
 * @param {Boolean} add
 */
function toggleCssProps(manager, add) {
    var element = manager.element;
    each(manager.options.cssProps, function(value, name) {
        element.style[prefixed(element.style, name)] = add ? value : '';
    });
}

/**
 * trigger dom event
 * @param {String} event
 * @param {Object} data
 */
function triggerDomEvent(event, data) {
    var gestureEvent = document.createEvent('Event');
    gestureEvent.initEvent(event, true, true);
    gestureEvent.gesture = data;
    data.target.dispatchEvent(gestureEvent);
}

extend(Hammer, {
    INPUT_START: INPUT_START,
    INPUT_MOVE: INPUT_MOVE,
    INPUT_END: INPUT_END,
    INPUT_CANCEL: INPUT_CANCEL,

    STATE_POSSIBLE: STATE_POSSIBLE,
    STATE_BEGAN: STATE_BEGAN,
    STATE_CHANGED: STATE_CHANGED,
    STATE_ENDED: STATE_ENDED,
    STATE_RECOGNIZED: STATE_RECOGNIZED,
    STATE_CANCELLED: STATE_CANCELLED,
    STATE_FAILED: STATE_FAILED,

    DIRECTION_NONE: DIRECTION_NONE,
    DIRECTION_LEFT: DIRECTION_LEFT,
    DIRECTION_RIGHT: DIRECTION_RIGHT,
    DIRECTION_UP: DIRECTION_UP,
    DIRECTION_DOWN: DIRECTION_DOWN,
    DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,
    DIRECTION_VERTICAL: DIRECTION_VERTICAL,
    DIRECTION_ALL: DIRECTION_ALL,

    Manager: Manager,
    Input: Input,
    TouchAction: TouchAction,

    TouchInput: TouchInput,
    MouseInput: MouseInput,
    PointerEventInput: PointerEventInput,
    TouchMouseInput: TouchMouseInput,
    SingleTouchInput: SingleTouchInput,

    Recognizer: Recognizer,
    AttrRecognizer: AttrRecognizer,
    Tap: TapRecognizer,
    Pan: PanRecognizer,
    Swipe: SwipeRecognizer,
    Pinch: PinchRecognizer,
    Rotate: RotateRecognizer,
    Press: PressRecognizer,

    on: addEventListeners,
    off: removeEventListeners,
    each: each,
    merge: merge,
    extend: extend,
    inherit: inherit,
    bindFn: bindFn,
    prefixed: prefixed
});

if (typeof define == TYPE_FUNCTION && define.amd) {
    define(function() {
        return Hammer;
    });
} else if (typeof module != 'undefined' && module.exports) {
    module.exports = Hammer;
} else {
    window[exportName] = Hammer;
}

})(window, document, 'Hammer');

(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
/**
 * Copyright (c) 2014-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 */

module.exports.Dispatcher = require('./lib/Dispatcher')

},{"./lib/Dispatcher":2}],2:[function(require,module,exports){
/*
 * Copyright (c) 2014, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule Dispatcher
 * @typechecks
 */

"use strict";

var invariant = require('./invariant');

var _lastID = 1;
var _prefix = 'ID_';

/**
 * Dispatcher is used to broadcast payloads to registered callbacks. This is
 * different from generic pub-sub systems in two ways:
 *
 *   1) Callbacks are not subscribed to particular events. Every payload is
 *      dispatched to every registered callback.
 *   2) Callbacks can be deferred in whole or part until other callbacks have
 *      been executed.
 *
 * For example, consider this hypothetical flight destination form, which
 * selects a default city when a country is selected:
 *
 *   var flightDispatcher = new Dispatcher();
 *
 *   // Keeps track of which country is selected
 *   var CountryStore = {country: null};
 *
 *   // Keeps track of which city is selected
 *   var CityStore = {city: null};
 *
 *   // Keeps track of the base flight price of the selected city
 *   var FlightPriceStore = {price: null}
 *
 * When a user changes the selected city, we dispatch the payload:
 *
 *   flightDispatcher.dispatch({
 *     actionType: 'city-update',
 *     selectedCity: 'paris'
 *   });
 *
 * This payload is digested by `CityStore`:
 *
 *   flightDispatcher.register(function(payload) {
 *     if (payload.actionType === 'city-update') {
 *       CityStore.city = payload.selectedCity;
 *     }
 *   });
 *
 * When the user selects a country, we dispatch the payload:
 *
 *   flightDispatcher.dispatch({
 *     actionType: 'country-update',
 *     selectedCountry: 'australia'
 *   });
 *
 * This payload is digested by both stores:
 *
 *    CountryStore.dispatchToken = flightDispatcher.register(function(payload) {
 *     if (payload.actionType === 'country-update') {
 *       CountryStore.country = payload.selectedCountry;
 *     }
 *   });
 *
 * When the callback to update `CountryStore` is registered, we save a reference
 * to the returned token. Using this token with `waitFor()`, we can guarantee
 * that `CountryStore` is updated before the callback that updates `CityStore`
 * needs to query its data.
 *
 *   CityStore.dispatchToken = flightDispatcher.register(function(payload) {
 *     if (payload.actionType === 'country-update') {
 *       // `CountryStore.country` may not be updated.
 *       flightDispatcher.waitFor([CountryStore.dispatchToken]);
 *       // `CountryStore.country` is now guaranteed to be updated.
 *
 *       // Select the default city for the new country
 *       CityStore.city = getDefaultCityForCountry(CountryStore.country);
 *     }
 *   });
 *
 * The usage of `waitFor()` can be chained, for example:
 *
 *   FlightPriceStore.dispatchToken =
 *     flightDispatcher.register(function(payload) {
 *       switch (payload.actionType) {
 *         case 'country-update':
 *           flightDispatcher.waitFor([CityStore.dispatchToken]);
 *           FlightPriceStore.price =
 *             getFlightPriceStore(CountryStore.country, CityStore.city);
 *           break;
 *
 *         case 'city-update':
 *           FlightPriceStore.price =
 *             FlightPriceStore(CountryStore.country, CityStore.city);
 *           break;
 *     }
 *   });
 *
 * The `country-update` payload will be guaranteed to invoke the stores'
 * registered callbacks in order: `CountryStore`, `CityStore`, then
 * `FlightPriceStore`.
 */

  function Dispatcher() {
    this.$Dispatcher_callbacks = {};
    this.$Dispatcher_isPending = {};
    this.$Dispatcher_isHandled = {};
    this.$Dispatcher_isDispatching = false;
    this.$Dispatcher_pendingPayload = null;
  }

  /**
   * Registers a callback to be invoked with every dispatched payload. Returns
   * a token that can be used with `waitFor()`.
   *
   * @param {function} callback
   * @return {string}
   */
  Dispatcher.prototype.register=function(callback) {
    var id = _prefix + _lastID++;
    this.$Dispatcher_callbacks[id] = callback;
    return id;
  };

  /**
   * Removes a callback based on its token.
   *
   * @param {string} id
   */
  Dispatcher.prototype.unregister=function(id) {
    invariant(
      this.$Dispatcher_callbacks[id],
      'Dispatcher.unregister(...): `%s` does not map to a registered callback.',
      id
    );
    delete this.$Dispatcher_callbacks[id];
  };

  /**
   * Waits for the callbacks specified to be invoked before continuing execution
   * of the current callback. This method should only be used by a callback in
   * response to a dispatched payload.
   *
   * @param {array<string>} ids
   */
  Dispatcher.prototype.waitFor=function(ids) {
    invariant(
      this.$Dispatcher_isDispatching,
      'Dispatcher.waitFor(...): Must be invoked while dispatching.'
    );
    for (var ii = 0; ii < ids.length; ii++) {
      var id = ids[ii];
      if (this.$Dispatcher_isPending[id]) {
        invariant(
          this.$Dispatcher_isHandled[id],
          'Dispatcher.waitFor(...): Circular dependency detected while ' +
          'waiting for `%s`.',
          id
        );
        continue;
      }
      invariant(
        this.$Dispatcher_callbacks[id],
        'Dispatcher.waitFor(...): `%s` does not map to a registered callback.',
        id
      );
      this.$Dispatcher_invokeCallback(id);
    }
  };

  /**
   * Dispatches a payload to all registered callbacks.
   *
   * @param {object} payload
   */
  Dispatcher.prototype.dispatch=function(payload) {
    invariant(
      !this.$Dispatcher_isDispatching,
      'Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch.'
    );
    this.$Dispatcher_startDispatching(payload);
    try {
      for (var id in this.$Dispatcher_callbacks) {
        if (this.$Dispatcher_isPending[id]) {
          continue;
        }
        this.$Dispatcher_invokeCallback(id);
      }
    } finally {
      this.$Dispatcher_stopDispatching();
    }
  };

  /**
   * Is this Dispatcher currently dispatching.
   *
   * @return {boolean}
   */
  Dispatcher.prototype.isDispatching=function() {
    return this.$Dispatcher_isDispatching;
  };

  /**
   * Call the callback stored with the given id. Also do some internal
   * bookkeeping.
   *
   * @param {string} id
   * @internal
   */
  Dispatcher.prototype.$Dispatcher_invokeCallback=function(id) {
    this.$Dispatcher_isPending[id] = true;
    this.$Dispatcher_callbacks[id](this.$Dispatcher_pendingPayload);
    this.$Dispatcher_isHandled[id] = true;
  };

  /**
   * Set up bookkeeping needed when dispatching.
   *
   * @param {object} payload
   * @internal
   */
  Dispatcher.prototype.$Dispatcher_startDispatching=function(payload) {
    for (var id in this.$Dispatcher_callbacks) {
      this.$Dispatcher_isPending[id] = false;
      this.$Dispatcher_isHandled[id] = false;
    }
    this.$Dispatcher_pendingPayload = payload;
    this.$Dispatcher_isDispatching = true;
  };

  /**
   * Clear bookkeeping used for dispatching.
   *
   * @internal
   */
  Dispatcher.prototype.$Dispatcher_stopDispatching=function() {
    this.$Dispatcher_pendingPayload = null;
    this.$Dispatcher_isDispatching = false;
  };


module.exports = Dispatcher;

},{"./invariant":3}],3:[function(require,module,exports){
/**
 * Copyright (c) 2014, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule invariant
 */

"use strict";

/**
 * Use invariant() to assert state which your program assumes to be true.
 *
 * Provide sprintf-style format (only %s is supported) and arguments
 * to provide information about what broke and what you were
 * expecting.
 *
 * The invariant message will be stripped in production, but the invariant
 * will remain to ensure logic does not differ in production.
 */

var invariant = function(condition, format, a, b, c, d, e, f) {
  if (false) {
    if (format === undefined) {
      throw new Error('invariant requires an error message argument');
    }
  }

  if (!condition) {
    var error;
    if (format === undefined) {
      error = new Error(
        'Minified exception occurred; use the non-minified dev environment ' +
        'for the full error message and additional helpful warnings.'
      );
    } else {
      var args = [a, b, c, d, e, f];
      var argIndex = 0;
      error = new Error(
        'Invariant Violation: ' +
        format.replace(/%s/g, function() { return args[argIndex++]; })
      );
    }

    error.framesToPop = 1; // we don't care about invariant's own frame
    throw error;
  }
};

module.exports = invariant;

},{}],4:[function(require,module,exports){
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.

function EventEmitter() {
  this._events = this._events || {};
  this._maxListeners = this._maxListeners || undefined;
}
module.exports = EventEmitter;

// Backwards-compat with node 0.10.x
EventEmitter.EventEmitter = EventEmitter;

EventEmitter.prototype._events = undefined;
EventEmitter.prototype._maxListeners = undefined;

// By default EventEmitters will print a warning if more than 10 listeners are
// added to it. This is a useful default which helps finding memory leaks.
EventEmitter.defaultMaxListeners = 10;

// Obviously not all Emitters should be limited to 10. This function allows
// that to be increased. Set to zero for unlimited.
EventEmitter.prototype.setMaxListeners = function(n) {
  if (!isNumber(n) || n < 0 || isNaN(n))
    throw TypeError('n must be a positive number');
  this._maxListeners = n;
  return this;
};

EventEmitter.prototype.emit = function(type) {
  var er, handler, len, args, i, listeners;

  if (!this._events)
    this._events = {};

  // If there is no 'error' event listener then throw.
  if (type === 'error') {
    if (!this._events.error ||
        (isObject(this._events.error) && !this._events.error.length)) {
      er = arguments[1];
      if (er instanceof Error) {
        throw er; // Unhandled 'error' event
      }
      throw TypeError('Uncaught, unspecified "error" event.');
    }
  }

  handler = this._events[type];

  if (isUndefined(handler))
    return false;

  if (isFunction(handler)) {
    switch (arguments.length) {
      // fast cases
      case 1:
        handler.call(this);
        break;
      case 2:
        handler.call(this, arguments[1]);
        break;
      case 3:
        handler.call(this, arguments[1], arguments[2]);
        break;
      // slower
      default:
        len = arguments.length;
        args = new Array(len - 1);
        for (i = 1; i < len; i++)
          args[i - 1] = arguments[i];
        handler.apply(this, args);
    }
  } else if (isObject(handler)) {
    len = arguments.length;
    args = new Array(len - 1);
    for (i = 1; i < len; i++)
      args[i - 1] = arguments[i];

    listeners = handler.slice();
    len = listeners.length;
    for (i = 0; i < len; i++)
      listeners[i].apply(this, args);
  }

  return true;
};

EventEmitter.prototype.addListener = function(type, listener) {
  var m;

  if (!isFunction(listener))
    throw TypeError('listener must be a function');

  if (!this._events)
    this._events = {};

  // To avoid recursion in the case that type === "newListener"! Before
  // adding it to the listeners, first emit "newListener".
  if (this._events.newListener)
    this.emit('newListener', type,
              isFunction(listener.listener) ?
              listener.listener : listener);

  if (!this._events[type])
    // Optimize the case of one listener. Don't need the extra array object.
    this._events[type] = listener;
  else if (isObject(this._events[type]))
    // If we've already got an array, just append.
    this._events[type].push(listener);
  else
    // Adding the second element, need to change to array.
    this._events[type] = [this._events[type], listener];

  // Check for listener leak
  if (isObject(this._events[type]) && !this._events[type].warned) {
    var m;
    if (!isUndefined(this._maxListeners)) {
      m = this._maxListeners;
    } else {
      m = EventEmitter.defaultMaxListeners;
    }

    if (m && m > 0 && this._events[type].length > m) {
      this._events[type].warned = true;
      console.error('(node) warning: possible EventEmitter memory ' +
                    'leak detected. %d listeners added. ' +
                    'Use emitter.setMaxListeners() to increase limit.',
                    this._events[type].length);
      if (typeof console.trace === 'function') {
        // not supported in IE 10
        console.trace();
      }
    }
  }

  return this;
};

EventEmitter.prototype.on = EventEmitter.prototype.addListener;

EventEmitter.prototype.once = function(type, listener) {
  if (!isFunction(listener))
    throw TypeError('listener must be a function');

  var fired = false;

  function g() {
    this.removeListener(type, g);

    if (!fired) {
      fired = true;
      listener.apply(this, arguments);
    }
  }

  g.listener = listener;
  this.on(type, g);

  return this;
};

// emits a 'removeListener' event iff the listener was removed
EventEmitter.prototype.removeListener = function(type, listener) {
  var list, position, length, i;

  if (!isFunction(listener))
    throw TypeError('listener must be a function');

  if (!this._events || !this._events[type])
    return this;

  list = this._events[type];
  length = list.length;
  position = -1;

  if (list === listener ||
      (isFunction(list.listener) && list.listener === listener)) {
    delete this._events[type];
    if (this._events.removeListener)
      this.emit('removeListener', type, listener);

  } else if (isObject(list)) {
    for (i = length; i-- > 0;) {
      if (list[i] === listener ||
          (list[i].listener && list[i].listener === listener)) {
        position = i;
        break;
      }
    }

    if (position < 0)
      return this;

    if (list.length === 1) {
      list.length = 0;
      delete this._events[type];
    } else {
      list.splice(position, 1);
    }

    if (this._events.removeListener)
      this.emit('removeListener', type, listener);
  }

  return this;
};

EventEmitter.prototype.removeAllListeners = function(type) {
  var key, listeners;

  if (!this._events)
    return this;

  // not listening for removeListener, no need to emit
  if (!this._events.removeListener) {
    if (arguments.length === 0)
      this._events = {};
    else if (this._events[type])
      delete this._events[type];
    return this;
  }

  // emit removeListener for all listeners on all events
  if (arguments.length === 0) {
    for (key in this._events) {
      if (key === 'removeListener') continue;
      this.removeAllListeners(key);
    }
    this.removeAllListeners('removeListener');
    this._events = {};
    return this;
  }

  listeners = this._events[type];

  if (isFunction(listeners)) {
    this.removeListener(type, listeners);
  } else {
    // LIFO order
    while (listeners.length)
      this.removeListener(type, listeners[listeners.length - 1]);
  }
  delete this._events[type];

  return this;
};

EventEmitter.prototype.listeners = function(type) {
  var ret;
  if (!this._events || !this._events[type])
    ret = [];
  else if (isFunction(this._events[type]))
    ret = [this._events[type]];
  else
    ret = this._events[type].slice();
  return ret;
};

EventEmitter.listenerCount = function(emitter, type) {
  var ret;
  if (!emitter._events || !emitter._events[type])
    ret = 0;
  else if (isFunction(emitter._events[type]))
    ret = 1;
  else
    ret = emitter._events[type].length;
  return ret;
};

function isFunction(arg) {
  return typeof arg === 'function';
}

function isNumber(arg) {
  return typeof arg === 'number';
}

function isObject(arg) {
  return typeof arg === 'object' && arg !== null;
}

function isUndefined(arg) {
  return arg === void 0;
}

},{}],5:[function(require,module,exports){
// shim for using process in browser

var process = module.exports = {};

process.nextTick = (function () {
    var canSetImmediate = typeof window !== 'undefined'
    && window.setImmediate;
    var canPost = typeof window !== 'undefined'
    && window.postMessage && window.addEventListener
    ;

    if (canSetImmediate) {
        return function (f) { return window.setImmediate(f) };
    }

    if (canPost) {
        var queue = [];
        window.addEventListener('message', function (ev) {
            var source = ev.source;
            if ((source === window || source === null) && ev.data === 'process-tick') {
                ev.stopPropagation();
                if (queue.length > 0) {
                    var fn = queue.shift();
                    fn();
                }
            }
        }, true);

        return function nextTick(fn) {
            queue.push(fn);
            window.postMessage('process-tick', '*');
        };
    }

    return function nextTick(fn) {
        setTimeout(fn, 0);
    };
})();

process.title = 'browser';
process.browser = true;
process.env = {};
process.argv = [];

function noop() {}

process.on = noop;
process.addListener = noop;
process.once = noop;
process.off = noop;
process.removeListener = noop;
process.removeAllListeners = noop;
process.emit = noop;

process.binding = function (name) {
    throw new Error('process.binding is not supported');
}

// TODO(shtylman)
process.cwd = function () { return '/' };
process.chdir = function (dir) {
    throw new Error('process.chdir is not supported');
};

},{}],6:[function(require,module,exports){
/**
 * Copyright 2013-2014 Facebook, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

"use strict";

/**
 * Constructs an enumeration with keys equal to their value.
 *
 * For example:
 *
 *   var COLORS = keyMirror({blue: null, red: null});
 *   var myColor = COLORS.blue;
 *   var isColorValid = !!COLORS[myColor];
 *
 * The last line could not be performed if the values of the generated enum were
 * not equal to their keys.
 *
 *   Input:  {key1: val1, key2: val2}
 *   Output: {key1: key1, key2: key2}
 *
 * @param {object} obj
 * @return {object}
 */
var keyMirror = function(obj) {
  var ret = {};
  var key;
  if (!(obj instanceof Object && !Array.isArray(obj))) {
    throw new Error('keyMirror(...): Argument must be an object.');
  }
  for (key in obj) {
    if (!obj.hasOwnProperty(key)) {
      continue;
    }
    ret[key] = key;
  }
  return ret;
};

module.exports = keyMirror;

},{}],7:[function(require,module,exports){
/**
 * 农历（阴历）万年历
 * LunarCalendar
 * vervison : v0.1.4
 * Github : https://github.com/zzyss86/LunarCalendar
 * HomePage : http://www.tuijs.com/
 * Author : JasonZhou
 * Email : zzyss86@qq.com
 */

(function(){
	var extend = function(o, c){
		if(o && c && typeof c == "object"){
			for(var p in c){
				o[p] = c[p];
			}
		}
		return o;
	};
	
	var creatLenArr = function(year,month,len,start){
		var arr = [];
			start = start || 0;
		if(len<1)return arr;
		var k = start;
		for(var i=0;i<len;i++){
			arr.push({year:year,month:month,day:k});
			k++;
		}
		return arr;
	};
	
	var errorCode = { //错误码列表
		100 : '输入的年份超过了可查询范围，仅支持1891至2100年',
		101 : '参数输入错误，请查阅文档'
	};
	
	var cache = null; //某年相同计算进行cache，以加速计算速度
	var cacheUtil = { //cache管理工具
		current : '',
		setCurrent : function(year){
			if(this.current != year){
				this.current = year;
				this.clear();
			}
		},
		set : function(key,value){
			if(!cache) cache = {};
			cache[key] = value;
			return cache[key];
		},
		get : function(key){
			if(!cache) cache = {};
			return cache[key];
		},
		clear : function(){
			cache = null;
		}
	};
	
	var formateDayD4 = function(month,day){
		month = month+1;
		month = month<10 ? '0'+month : month;
		day = day<10 ? '0'+day : day;
		return 'd'+month+day;
	};
	
	var minYear = 1890;//最小年限
	var maxYear = 2100;//最大年限
	var DATA = {
		heavenlyStems: ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'], //天干
		earthlyBranches: ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥'], //地支
		zodiac: ['鼠','牛','虎','兔','龙','蛇','马','羊','猴','鸡','狗','猪'], //对应地支十二生肖
		solarTerm: ['小寒', '大寒', '立春', '雨水', '惊蛰', '春分', '清明', '谷雨', '立夏', '小满', '芒种', '夏至', '小暑', '大暑', '立秋', '处暑', '白露', '秋分', '寒露', '霜降', '立冬', '小雪', '大雪','冬至'], //二十四节气
		monthCn: ['正', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'],
		dateCn: ['初一', '初二', '初三', '初四', '初五', '初六', '初七', '初八', '初九', '初十', '十一', '十二', '十三', '十四', '十五', '十六', '十七', '十八', '十九', '二十', '廿一', '廿二', '廿三', '廿四', '廿五', '廿六', '廿七', '廿八', '廿九', '三十', '卅一']
	};
	
	//中国节日放假安排，外部设置，0无特殊安排，1工作，2放假
	var worktime = {};
	//默认设置2013-2014年放假安排
	worktime.y2013 = {"d0101":2,"d0102":2,"d0103":2,"d0105":1,"d0106":1,"d0209":2,"d0210":2,"d0211":2,"d0212":2,"d0213":2,"d0214":2,"d0215":2,"d0216":1,"d0217":1,"d0404":2,"d0405":2,"d0406":2,"d0407":1,"d0427":1,"d0428":1,"d0429":2,"d0430":2,"d0501":2,"d0608":1,"d0609":1,"d0610":2,"d0611":2,"d0612":2,"d0919":2,"d0920":2,"d0921":2,"d0922":1,"d0929":1,"d1001":2,"d1002":2,"d1003":2,"d1004":2,"d1005":2,"d1006":2,"d1007":2,"d1012":1};
	worktime.y2014 = {"d0101":2,"d0126":1,"d0131":2,"d0201":2,"d0202":2,"d0203":2,"d0204":2,"d0205":2,"d0206":2,"d0208":1,"d0405":2,"d0407":2,"d0501":2,"d0502":2,"d0503":2,"d0504":1,"d0602":2,"d0908":2,"d0928":1,"d1001":2,"d1002":2,"d1003":2,"d1004":2,"d1005":2,"d1006":2,"d1007":2,"d1011":1};
	
	//公历节日
	var solarFestival = {
		'd0101':'元旦节',
		'd0202':'世界湿地日',
		'd0210':'国际气象节',
		'd0214':'情人节',
		'd0301':'国际海豹日',
		'd0303':'全国爱耳日',
		'd0305':'学雷锋纪念日',
		'd0308':'妇女节',
		'd0312':'植树节 孙中山逝世纪念日',
		'd0314':'国际警察日',
		'd0315':'消费者权益日',
		'd0317':'中国国医节 国际航海日',
		'd0321':'世界森林日 消除种族歧视国际日 世界儿歌日',
		'd0322':'世界水日',
		'd0323':'世界气象日',
		'd0324':'世界防治结核病日',
		'd0325':'全国中小学生安全教育日',
		'd0330':'巴勒斯坦国土日',
		'd0401':'愚人节 全国爱国卫生运动月(四月) 税收宣传月(四月)',
		'd0407':'世界卫生日',
		'd0422':'世界地球日',
		'd0423':'世界图书和版权日',
		'd0424':'亚非新闻工作者日',
		'd0501':'劳动节',
		'd0504':'青年节',
		'd0505':'碘缺乏病防治日',
		'd0508':'世界红十字日',
		'd0512':'国际护士节',
		'd0515':'国际家庭日',
		'd0517':'世界电信日',
		'd0518':'国际博物馆日',
		'd0520':'全国学生营养日',
		'd0522':'国际生物多样性日',
		'd0523':'国际牛奶日',
		'd0531':'世界无烟日', 
		'd0601':'国际儿童节',
		'd0605':'世界环境日',
		'd0606':'全国爱眼日',
		'd0617':'防治荒漠化和干旱日',
		'd0623':'国际奥林匹克日',
		'd0625':'全国土地日',
		'd0626':'国际禁毒日',
		'd0701':'香港回归纪念日 中共诞辰 世界建筑日',
		'd0702':'国际体育记者日',
		'd0707':'抗日战争纪念日',
		'd0711':'世界人口日',
		'd0730':'非洲妇女日',
		'd0801':'建军节',
		'd0808':'中国男子节(爸爸节)',
		'd0815':'抗日战争胜利纪念',
		'd0908':'国际扫盲日 国际新闻工作者日',
		'd0909':'毛泽东逝世纪念',
		'd0910':'中国教师节', 
		'd0914':'世界清洁地球日',
		'd0916':'国际臭氧层保护日',
		'd0918':'九一八事变纪念日',
		'd0920':'国际爱牙日',
		'd0927':'世界旅游日',
		'd0928':'孔子诞辰',
		'd1001':'国庆节 世界音乐日 国际老人节',
		'd1002':'国际和平与民主自由斗争日',
		'd1004':'世界动物日',
		'd1006':'老人节',
		'd1008':'全国高血压日 世界视觉日',
		'd1009':'世界邮政日 万国邮联日',
		'd1010':'辛亥革命纪念日 世界精神卫生日',
		'd1013':'世界保健日 国际教师节',
		'd1014':'世界标准日',
		'd1015':'国际盲人节(白手杖节)',
		'd1016':'世界粮食日',
		'd1017':'世界消除贫困日',
		'd1022':'世界传统医药日',
		'd1024':'联合国日 世界发展信息日',
		'd1031':'世界勤俭日',
		'd1107':'十月社会主义革命纪念日',
		'd1108':'中国记者日',
		'd1109':'全国消防安全宣传教育日',
		'd1110':'世界青年节',
		'd1111':'国际科学与和平周(本日所属的一周)',
		'd1112':'孙中山诞辰纪念日',
		'd1114':'世界糖尿病日',
		'd1117':'国际大学生节 世界学生节',
		'd1121':'世界问候日 世界电视日',
		'd1129':'国际声援巴勒斯坦人民国际日',
		'd1201':'世界艾滋病日',
		'd1203':'世界残疾人日',
		'd1205':'国际经济和社会发展志愿人员日',
		'd1208':'国际儿童电视日',
		'd1209':'世界足球日',
		'd1210':'世界人权日',
		'd1212':'西安事变纪念日',
		'd1213':'南京大屠杀(1937年)纪念日！紧记血泪史！',
		'd1220':'澳门回归纪念',
		'd1221':'国际篮球日',
		'd1224':'平安夜',
		'd1225':'圣诞节',
		'd1226':'毛泽东诞辰纪念'
	};
	
	//农历节日
	var lunarFestival = {
		'd0101':'春节',
		'd0115':'元宵节',
		'd0202':'龙抬头节',
		'd0323':'妈祖生辰',
		'd0505':'端午节',
		'd0707':'七夕情人节',
		'd0715':'中元节',
		'd0815':'中秋节',
		'd0909':'重阳节',
		'd1015':'下元节',
		'd1208':'腊八节',
		'd1223':'小年',
		'd0100':'除夕'
	}

	/**
	 * 1890 - 2100 年的农历数据
	 * 数据格式：[0,2,9,21936]
	 * [闰月所在月，0为没有闰月; *正月初一对应公历月; *正月初一对应公历日; *农历每月的天数的数组（需转换为二进制,得到每月大小，0=小月(29日),1=大月(30日)）;]
	*/
	var lunarInfo = [[2,1,21,22184],[0,2,9,21936],[6,1,30,9656],[0,2,17,9584],[0,2,6,21168],[5,1,26,43344],[0,2,13,59728],[0,2,2,27296],[3,1,22,44368],[0,2,10,43856],[8,1,30,19304],[0,2,19,19168],[0,2,8,42352],[5,1,29,21096],[0,2,16,53856],[0,2,4,55632],[4,1,25,27304],[0,2,13,22176],[0,2,2,39632],[2,1,22,19176],[0,2,10,19168],[6,1,30,42200],[0,2,18,42192],[0,2,6,53840],[5,1,26,54568],[0,2,14,46400],[0,2,3,54944],[2,1,23,38608],[0,2,11,38320],[7,2,1,18872],[0,2,20,18800],[0,2,8,42160],[5,1,28,45656],[0,2,16,27216],[0,2,5,27968],[4,1,24,44456],[0,2,13,11104],[0,2,2,38256],[2,1,23,18808],[0,2,10,18800],[6,1,30,25776],[0,2,17,54432],[0,2,6,59984],[5,1,26,27976],[0,2,14,23248],[0,2,4,11104],[3,1,24,37744],[0,2,11,37600],[7,1,31,51560],[0,2,19,51536],[0,2,8,54432],[6,1,27,55888],[0,2,15,46416],[0,2,5,22176],[4,1,25,43736],[0,2,13,9680],[0,2,2,37584],[2,1,22,51544],[0,2,10,43344],[7,1,29,46248],[0,2,17,27808],[0,2,6,46416],[5,1,27,21928],[0,2,14,19872],[0,2,3,42416],[3,1,24,21176],[0,2,12,21168],[8,1,31,43344],[0,2,18,59728],[0,2,8,27296],[6,1,28,44368],[0,2,15,43856],[0,2,5,19296],[4,1,25,42352],[0,2,13,42352],[0,2,2,21088],[3,1,21,59696],[0,2,9,55632],[7,1,30,23208],[0,2,17,22176],[0,2,6,38608],[5,1,27,19176],[0,2,15,19152],[0,2,3,42192],[4,1,23,53864],[0,2,11,53840],[8,1,31,54568],[0,2,18,46400],[0,2,7,46752],[6,1,28,38608],[0,2,16,38320],[0,2,5,18864],[4,1,25,42168],[0,2,13,42160],[10,2,2,45656],[0,2,20,27216],[0,2,9,27968],[6,1,29,44448],[0,2,17,43872],[0,2,6,38256],[5,1,27,18808],[0,2,15,18800],[0,2,4,25776],[3,1,23,27216],[0,2,10,59984],[8,1,31,27432],[0,2,19,23232],[0,2,7,43872],[5,1,28,37736],[0,2,16,37600],[0,2,5,51552],[4,1,24,54440],[0,2,12,54432],[0,2,1,55888],[2,1,22,23208],[0,2,9,22176],[7,1,29,43736],[0,2,18,9680],[0,2,7,37584],[5,1,26,51544],[0,2,14,43344],[0,2,3,46240],[4,1,23,46416],[0,2,10,44368],[9,1,31,21928],[0,2,19,19360],[0,2,8,42416],[6,1,28,21176],[0,2,16,21168],[0,2,5,43312],[4,1,25,29864],[0,2,12,27296],[0,2,1,44368],[2,1,22,19880],[0,2,10,19296],[6,1,29,42352],[0,2,17,42208],[0,2,6,53856],[5,1,26,59696],[0,2,13,54576],[0,2,3,23200],[3,1,23,27472],[0,2,11,38608],[11,1,31,19176],[0,2,19,19152],[0,2,8,42192],[6,1,28,53848],[0,2,15,53840],[0,2,4,54560],[5,1,24,55968],[0,2,12,46496],[0,2,1,22224],[2,1,22,19160],[0,2,10,18864],[7,1,30,42168],[0,2,17,42160],[0,2,6,43600],[5,1,26,46376],[0,2,14,27936],[0,2,2,44448],[3,1,23,21936],[0,2,11,37744],[8,2,1,18808],[0,2,19,18800],[0,2,8,25776],[6,1,28,27216],[0,2,15,59984],[0,2,4,27424],[4,1,24,43872],[0,2,12,43744],[0,2,2,37600],[3,1,21,51568],[0,2,9,51552],[7,1,29,54440],[0,2,17,54432],[0,2,5,55888],[5,1,26,23208],[0,2,14,22176],[0,2,3,42704],[4,1,23,21224],[0,2,11,21200],[8,1,31,43352],[0,2,19,43344],[0,2,7,46240],[6,1,27,46416],[0,2,15,44368],[0,2,5,21920],[4,1,24,42448],[0,2,12,42416],[0,2,2,21168],[3,1,22,43320],[0,2,9,26928],[7,1,29,29336],[0,2,17,27296],[0,2,6,44368],[5,1,26,19880],[0,2,14,19296],[0,2,3,42352],[4,1,24,21104],[0,2,10,53856],[8,1,30,59696],[0,2,18,54560],[0,2,7,55968],[6,1,27,27472],[0,2,15,22224],[0,2,5,19168],[4,1,25,42216],[0,2,12,42192],[0,2,1,53584],[2,1,21,55592],[0,2,9,54560]];
	
	/**
	 * 二十四节气数据，节气点时间（单位是分钟）
	 * 从0小寒起算
	 */
	var termInfo = [0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758];
	
	/**
	 * 判断农历年闰月数
	 * @param {Number} year 农历年
	 * return 闰月数 （月份从1开始）
	 */
	function getLunarLeapYear(year){
		var yearData = lunarInfo[year-minYear];
		return yearData[0];
	};
	
	/**
	 * 获取农历年份一年的每月的天数及一年的总天数
	 * @param {Number} year 农历年
	 */
	function getLunarYearDays(year){
		var yearData = lunarInfo[year-minYear];
		var leapMonth = yearData[0]; //闰月
		var monthData = yearData[3].toString(2);
		var monthDataArr = monthData.split('');
		
		//还原数据至16位,少于16位的在前面插入0（二进制存储时前面的0被忽略）
		for(var i=0;i<16-monthDataArr.length;i++){
			monthDataArr.unshift(0);
		}
		
		var len = leapMonth ? 13 : 12; //该年有几个月
		var yearDays = 0;
		var monthDays = [];
		for(var i=0;i<len;i++){
			if(monthDataArr[i]==0){
				yearDays += 29;
				monthDays.push(29);
			}else{
				yearDays += 30;
				monthDays.push(30);
			}
		}
		
		return {
			yearDays : yearDays,
			monthDays : monthDays
		};
	};
	
	/**
	 * 通过间隔天数查找农历日期
	 * @param {Number} year,between 农历年，间隔天数
	 */
	function getLunarDateByBetween(year,between){
		var lunarYearDays = getLunarYearDays(year);
		var end = between>0 ? between : lunarYearDays.yearDays - Math.abs(between);
		var monthDays = lunarYearDays.monthDays;
		var tempDays = 0;
		var month = 0;
		for(var i=0;i<monthDays.length;i++){
			tempDays += monthDays[i];
			if(tempDays > end){
				month = i;
				tempDays = tempDays-monthDays[i];
				break;
			}
		}
		
		return [year,month,end - tempDays + 1];
	};

	/**
	 * 根据距离正月初一的天数计算农历日期
	 * @param {Number} year 公历年，月，日
	 */
	function getLunarByBetween(year,month,day){
		var yearData = lunarInfo[year-minYear];
		var zenMonth = yearData[1];
		var zenDay = yearData[2];
		var between = getDaysBetweenSolar(year,zenMonth-1,zenDay,year,month,day);
		if(between==0){ //正月初一
			return [year,0,1];
		}else{
			var lunarYear = between>0 ? year : year-1;
			return getLunarDateByBetween(lunarYear,between);
		}
	};
	
	/**
	 * 两个公历日期之间的天数
	 */
	function getDaysBetweenSolar(year,month,day,year1,month1,day1){
		var date = new Date(year,month,day).getTime();
		var date1 = new Date(year1,month1,day1).getTime();
		return (date1-date) / 86400000;
	};
	
	/**
	 * 计算农历日期离正月初一有多少天
	 * @param {Number} year,month,day 农年，月(0-12，有闰月)，日
	 */
	function getDaysBetweenZheng(year,month,day){
		var lunarYearDays = getLunarYearDays(year);
		var monthDays = lunarYearDays.monthDays;
		var days = 0;
		for(var i=0;i<monthDays.length;i++){
			if(i<month){
				days += monthDays[i];
			}else{
				break;
			}
		};
		return days+day-1;
	};
	
	/**
	 * 某年的第n个节气为几日
	 * 31556925974.7为地球公转周期，是毫秒
	 * 1890年的正小寒点：01-05 16:02:31，1890年为基准点
	 * @param {Number} y 公历年
	 * @param {Number} n 第几个节气，从0小寒起算
	 * 由于农历24节气交节时刻采用近似算法，可能存在少量误差(30分钟内)
	 */
	function getTerm(y,n) {
		var offDate = new Date( ( 31556925974.7*(y-1890) + termInfo[n]*60000  ) + Date.UTC(1890,0,5,16,2,31) );
		return(offDate.getUTCDate());
	};
	
	/**
	 * 获取公历年一年的二十四节气
	 * 返回key:日期，value:节气中文名
	 */
	function getYearTerm(year){
		var res = {};
		var month = 0;
		for(var i=0;i<24;i++){
			var day = getTerm(year,i);
			if(i%2==0)month++
			res[formateDayD4(month-1,day)] = DATA.solarTerm[i];
		}
		return res;
	};
	
	/**
	 * 获取生肖
	 * @param {Number} year 干支所在年（默认以立春前的公历年作为基数）
	 */
	function getYearZodiac(year){
		 var num = year-1890+25; //参考干支纪年的计算，生肖对应地支
		 return DATA.zodiac[num%12];
	};
	
	/**
	 * 计算天干地支
	 * @param {Number} num 60进制中的位置(把60个天干地支，当成一个60进制的数)
	 */
	function cyclical(num) {
		return(DATA.heavenlyStems[num%10]+DATA.earthlyBranches[num%12]);
	}
	
	/**
	 * 获取干支纪年
	 * @param {Number} year 干支所在年
	 * @param {Number} offset 偏移量，默认为0，便于查询一个年跨两个干支纪年（以立春为分界线）
	 */
	function getLunarYearName(year,offset){
		offset = offset || 0;
		//1890年1月小寒（小寒一般是1月5或6日）以前为己丑年，在60进制中排25
		return cyclical(year-1890+25+offset);
	};
	
	/**
	 * 获取干支纪月
	 * @param {Number} year,month 公历年，干支所在月
	 * @param {Number} offset 偏移量，默认为0，便于查询一个月跨两个干支纪月（有立春的2月）
	 */
	function getLunarMonthName(year,month,offset){
		offset = offset || 0;
		//1890年1月小寒以前为丙子月，在60进制中排12
		return cyclical((year-1890)*12+month+12+offset);
	};
	
	/**
	 * 获取干支纪日
	 * @param {Number} year,month,day 公历年，月，日
	 */
	function getLunarDayName(year,month,day){
		//当日与1890/1/1 相差天数
		//1890/1/1与 1970/1/1 相差29219日, 1890/1/1 日柱为壬午日(60进制18)
		var dayCyclical = Date.UTC(year,month,day)/86400000+29219+18;
		return cyclical(dayCyclical);
	};
	
	/**
	 * 获取公历月份的天数
	 * @param {Number} year 公历年
	 * @param {Number} month 公历月
	 */
	function getSolarMonthDays(year,month){
		 var monthDays = [31,isLeapYear(year)?29:28,31,30,31,30,31,31,30,31,30,31];
		 return monthDays[month];
	};
	
	/**
	 * 判断公历年是否是闰年
	 * @param {Number} year 公历年
	 */
	function isLeapYear(year){
		return ((year%4==0 && year%100 !=0) || (year%400==0));
	};
		
	/*
	 * 统一日期输入参数（输入月份从1开始，内部月份统一从0开始）
	 */
	function formateDate(year,month,day,_minYear){
		var argsLen = arguments.length;
		var now = new Date();
		year = argsLen ? parseInt(year,10) : now.getFullYear();
		month = argsLen ? parseInt(month-1,10) : now.getMonth();
		day = argsLen ? parseInt(day,10) || now.getDate() : now.getDate();
		if(year < (_minYear ? _minYear : minYear+1) || year > maxYear)return {error:100, msg:errorCode[100]};
		return {
			year : year,
			month : month,
			day : day
		};
	};
	
	/**
	 * 将农历转换为公历
	 * @param {Number} year,month,day 农历年，月(1-13，有闰月)，日
	 */
	function lunarToSolar(_year,_month,_day){
		var inputDate = formateDate(_year,_month,_day);
		if(inputDate.error)return inputDate;
		var year = inputDate.year;
		var month = inputDate.month;
		var day = inputDate.day;
		
		var between = getDaysBetweenZheng(year,month,day); //离正月初一的天数
		var yearData = lunarInfo[year-minYear];
		var zenMonth = yearData[1];
		var zenDay = yearData[2];
		
		var offDate = new Date(year,zenMonth-1,zenDay).getTime() + between * 86400000;
			offDate = new Date(offDate);
		return {
			year : offDate.getFullYear(),
			month : offDate.getMonth()+1,
			day : offDate.getDate()
		};
	};
	
	/**
	 * 将公历转换为农历
	 * @param {Number} year,month,day 公历年，月，日
	 */
	function solarToLunar(_year,_month,_day){
		var inputDate = formateDate(_year,_month,_day,minYear);
		if(inputDate.error)return inputDate;
		var year = inputDate.year;
		var month = inputDate.month;
		var day = inputDate.day;
		
		cacheUtil.setCurrent(year);
		//立春日期
		var term2 = cacheUtil.get('term2') ? cacheUtil.get('term2') : cacheUtil.set('term2',getTerm(year,2));
		//二十四节气
		var termList = cacheUtil.get('termList') ? cacheUtil.get('termList') : cacheUtil.set('termList',getYearTerm(year));
		
		var firstTerm = getTerm(year,month*2); //某月第一个节气开始日期
		var GanZhiYear = (month>1 || month==1 && day>=term2) ? year+1 : year;//干支所在年份
		var GanZhiMonth = day>=firstTerm ? month+1 : month; //干支所在月份（以节气为界）
		
		var lunarDate = getLunarByBetween(year,month,day);
		var lunarLeapMonth = getLunarLeapYear(lunarDate[0]);
		var lunarMonthName = '';
		if(lunarLeapMonth>0 && lunarLeapMonth==lunarDate[1]){
			lunarMonthName = '闰'+DATA.monthCn[lunarDate[1]-1]+'月';
		}else if(lunarLeapMonth>0 && lunarDate[1]>lunarLeapMonth){
			lunarMonthName = DATA.monthCn[lunarDate[1]-1]+'月';
		}else{
			lunarMonthName = DATA.monthCn[lunarDate[1]]+'月';
		}
		
		//农历节日判断
		var lunarFtv = '';
		var lunarMonthDays = getLunarYearDays(lunarDate[0]).monthDays;
		//除夕
		if(lunarDate[1] == lunarMonthDays.length-1 && lunarDate[2]==lunarMonthDays[lunarMonthDays.length-1]){
			lunarFtv = lunarFestival['d0100'];
		}else if(lunarLeapMonth>0 && lunarDate[1]>lunarLeapMonth){
			lunarFtv = lunarFestival[formateDayD4(lunarDate[1]-1,lunarDate[2])];
		}else{
			lunarFtv = lunarFestival[formateDayD4(lunarDate[1],lunarDate[2])];
		}
		
		var res = {
			zodiac : getYearZodiac(GanZhiYear),
			GanZhiYear : getLunarYearName(GanZhiYear),
			GanZhiMonth : getLunarMonthName(year,GanZhiMonth),
			GanZhiDay : getLunarDayName(year,month,day),
			//放假安排：0无特殊安排，1工作，2放假
			worktime : worktime['y'+year] && worktime['y'+year][formateDayD4(month,day)] ? worktime['y'+year][formateDayD4(month,day)] : 0,
			term : termList[formateDayD4(month,day)],
			
			lunarYear : lunarDate[0],
			lunarMonth : lunarDate[1]+1,
			lunarDay : lunarDate[2],
			lunarMonthName : lunarMonthName,
			lunarDayName : DATA.dateCn[lunarDate[2]-1],
			lunarLeapMonth : lunarLeapMonth,
			
			solarFestival : solarFestival[formateDayD4(month,day)],
			lunarFestival : lunarFtv
		};

		return res;
	};
	
	/**
	 * 获取指定公历月份的农历数据
	 * return res{Object}
	 * @param {Number} year,month 公历年，月
	 * @param {Boolean} fill 是否用上下月数据补齐首尾空缺，首例数据从周日开始
	 */
	function calendar(_year,_month,fill){
		var inputDate = formateDate(_year,_month);
		if(inputDate.error)return inputDate;
		var year = inputDate.year;
		var month = inputDate.month;
		
		var calendarData = solarCalendar(year,month+1,fill);
		for(var i=0;i<calendarData.monthData.length;i++){
			var cData = calendarData.monthData[i];
			var lunarData = solarToLunar(cData.year,cData.month,cData.day);
			extend(calendarData.monthData[i],lunarData);
		}
		return calendarData;
	};
	
	/**
	 * 公历某月日历
	 * return res{Object}
	 * @param {Number} year,month 公历年，月
	 * @param {Boolean} fill 是否用上下月数据补齐首尾空缺，首例数据从周日开始 (7*6阵列)
	 */
	function solarCalendar(_year,_month,fill){
		var inputDate = formateDate(_year,_month);
		if(inputDate.error)return inputDate;
		var year = inputDate.year;
		var month = inputDate.month;
		
		var firstDate = new Date(year,month,1);
		var preMonthDays,preMonthData,nextMonthData;
		
		var res = {
			firstDay : firstDate.getDay(), //该月1号星期几
			monthDays : getSolarMonthDays(year,month), //该月天数
			monthData : []
		};
		
		res.monthData = creatLenArr(year,month+1,res.monthDays,1);

		if(fill){
			if(res.firstDay > 0){ //前补
				var preYear = month-1<0 ? year-1 : year;
				var preMonth = month-1<0 ? 11 : month-1;
				preMonthDays = getSolarMonthDays(preYear,preMonth);
				preMonthData = creatLenArr(preYear,preMonth+1,res.firstDay,preMonthDays-res.firstDay+1);
				res.monthData = preMonthData.concat(res.monthData);
			}
			
			if(7*6 - res.monthData.length!=0){ //后补
				var nextYear = month+1>11 ? year+1 : year;
				var nextMonth = month+1>11 ? 0 : month+1;
				var fillLen = 7*6 - res.monthData.length;
				nextMonthData = creatLenArr(nextYear,nextMonth+1,fillLen,1);
				res.monthData = res.monthData.concat(nextMonthData);
			}
		}
		
		return res;
	};
	
	/**
	 * 设置放假安排【对外暴露接口】
	 * @param {Object} workData
	 */
	function setWorktime(workData){
		extend(worktime,workData);
	};

	var LunarCalendar = {
		solarToLunar : solarToLunar,
		lunarToSolar : lunarToSolar,
		calendar : calendar,
		solarCalendar : solarCalendar,
		setWorktime : setWorktime,
		getSolarMonthDays : getSolarMonthDays
	};
	
	if (typeof define === 'function'){
		define (function (){
			return LunarCalendar;
		});
	}else if(typeof exports === 'object'){
		module.exports = LunarCalendar;
	}else{
		window.LunarCalendar = LunarCalendar;
	};
})();
},{}],8:[function(require,module,exports){
'use strict';

function ToObject(val) {
	if (val == null) {
		throw new TypeError('Object.assign cannot be called with null or undefined');
	}

	return Object(val);
}

module.exports = Object.assign || function (target, source) {
	var from;
	var keys;
	var to = ToObject(target);

	for (var s = 1; s < arguments.length; s++) {
		from = arguments[s];
		keys = Object.keys(Object(from));

		for (var i = 0; i < keys.length; i++) {
			to[keys[i]] = from[keys[i]];
		}
	}

	return to;
};

},{}],9:[function(require,module,exports){
var React = require('react');
var D = React.DOM;

var Symbol = require('./symbol');
var symbol = React.createFactory(Symbol);

var TransitiveNumber = React.createClass({
    getDefaultProps: function() {
        return {
            className: null,
            enableInitialAnimation: false
        };
    },
    render: function() {
        var value = this.props.children.toString();

        // Invert animation direction when negative number is supplied.
        var inverted = value[0] === '-';

        return D.span(
            {
                className: this.props.className,
                style: {
                    whiteSpace: 'pre'
                }
            },
            value
                .split('')
                .map(function(s, index) {
                    return symbol({
                        symbol: s,
                        inverted: inverted,
                        enableInitialAnimation: this.props.enableInitialAnimation,
                        key: index
                    });
                }, this)
        );
    }
});

module.exports = TransitiveNumber;

},{"./symbol":10,"react":184}],10:[function(require,module,exports){
var React = require('react');
var D = React.DOM;

var Transition = require('./transition');
var transition = React.createFactory(Transition);

var Symbol = React.createClass({
    getInitialState: function() {
        return {
            previous: null,
            decrementing: false,
            initialRender: true
        };
    },
    componentDidMount: function() {
        React.findDOMNode(this).addEventListener('transitionend', this.removePrevious);
    },
    componentWillUnmount: function() {
        React.findDOMNode(this).removeEventListener('transitionend', this.removePrevious);
    },
    componentWillReceiveProps: function(nextProps) {
        if (nextProps.symbol !== this.props.symbol) {
            var decrementing = isDecrementing(this.props.symbol, nextProps.symbol);

            this.setState({
                previous: this.props.symbol,
                decrementing: (
                    this.props.inverted ?
                        !decrementing :
                        decrementing
                ),
                initialRender: false
            });
        }
    },
    shouldComponentUpdate: function(nextProps, nextState) {
        return (
            nextProps.symbol !== this.props.symbol ||
            nextState.previous !== this.state.previous
        );
    },
    removePrevious: function() {
        this.setState({
            previous: null
        });
    },
    render: function() {
        return D.span(
            {
                style: {
                    position: 'relative'
                }
            },
            // Have to render this transparent spacer span to mitigate the issue
            // when Safari would not animate transition if changing `position`
            // from `absolute` to `static`.
            this.renderSpacer(),
            this.renderTransitionIn(),
            this.renderTransitionOut()
        );
    },
    renderSpacer: function() {
        return D.span(
            {
                style: {
                    visibility: 'hidden'
                }
            },
            this.props.symbol
        );
    },
    renderTransitionIn: function() {
        return transition({
            value: this.props.symbol,
            goingUp: this.state.decrementing,
            animateEntrance: (
                this.state.initialRender ?
                    this.props.enableInitialAnimation :
                    true
            ),
            key: this.props.symbol
        });
    },
    renderTransitionOut: function() {
        if (this.state.previous !== null) {
            return transition({
                value: this.state.previous,
                goingUp: this.state.decrementing,
                out: true,
                key: this.state.previous
            });
        }

        return null;
    }
});

module.exports = Symbol;

function isDecrementing(a, b) {
    var numberA = Number(a);
    var numberB = Number(b);

    // Special case when going from 9 or 6 to 0 (and back).
    if (Math.abs(numberB - numberA) !== 1) {
        return numberA === 0;
    } else {
        return numberB < numberA;
    }
}

},{"./transition":11,"react":184}],11:[function(require,module,exports){
var React = require('react');
var D = React.DOM;

var Transition = React.createClass({
    getInitialState: function() {
        return {
            in: (
                this.props.out ?
                    true :
                    !this.props.animateEntrance
            )
        };
    },
    componentDidMount: function() {
        this._timeout = raf(this.tada);
    },
    componentWillUnmount: function() {
        caf(this._timeout);
    },
    tada: function() {
        // Force element reflow to ensure correct animation in FF.
        React.findDOMNode(this).offsetWidth;

        this.setState({
            in: true
        });
    },
    getAppearance: function() {
        var transform = this.getTransform();

        return {
            display: 'inline-block',

            // Can't dynamically change `position` from `absolute` to `static` -
            // it will break transition animation in Safari.
            position: 'absolute',
            left: 0,

            WebkitTransition: '-webkit-transform 0.2s, opacity 0.2s',
            transition: 'transform 0.2s, opacity 0.2s',

            WebkitTransform: transform,
            transform: transform,

            opacity: (
                this.isHidden() ?
                    0 :
                    1
            ),

            pointerEvents: 'none'
        };
    },
    getTransform: function() {
        if (this.props.out) {
            return translateY(this.props.goingUp);
        }

        if (!this.state.in) {
            return translateY(!this.props.goingUp);
        }

        // This has better text rendering in FF than simply `none`.
        return 'translateY(0)';
    },
    isHidden: function() {
        return this.props.out || !this.state.in;
    },
    render: function() {
        return D.span(
            {
                style: this.getAppearance()
            },
            this.props.value
        );
    }
});

module.exports = Transition;

function raf(fn) {
    if (typeof window.requestAnimationFrame === 'function') {
        return window.requestAnimationFrame(fn);
    } else {
        return setTimeout(fn, 0);
    }
}

function caf(timer) {
    if (typeof window.cancelAnimationFrame === 'function') {
        return window.cancelAnimationFrame(timer);
    } else {
        return clearTimeout(timer);
    }
}

function translateY(isUp) {
    return isUp ? 'translateY(-60%)' : 'translateY(60%)';
}

},{"react":184}],12:[function(require,module,exports){
module.exports = require('./lib/ReactWithAddons');

},{"./lib/ReactWithAddons":112}],13:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule AutoFocusMixin
 * @typechecks static-only
 */

'use strict';

var focusNode = require("./focusNode");

var AutoFocusMixin = {
  componentDidMount: function() {
    if (this.props.autoFocus) {
      focusNode(this.getDOMNode());
    }
  }
};

module.exports = AutoFocusMixin;

},{"./focusNode":146}],14:[function(require,module,exports){
/**
 * Copyright 2013-2015 Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule BeforeInputEventPlugin
 * @typechecks static-only
 */

'use strict';

var EventConstants = require("./EventConstants");
var EventPropagators = require("./EventPropagators");
var ExecutionEnvironment = require("./ExecutionEnvironment");
var FallbackCompositionState = require("./FallbackCompositionState");
var SyntheticCompositionEvent = require("./SyntheticCompositionEvent");
var SyntheticInputEvent = require("./SyntheticInputEvent");

var keyOf = require("./keyOf");

var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space
var START_KEYCODE = 229;

var canUseCompositionEvent = (
  ExecutionEnvironment.canUseDOM &&
  'CompositionEvent' in window
);

var documentMode = null;
if (ExecutionEnvironment.canUseDOM && 'documentMode' in document) {
  documentMode = document.documentMode;
}

// Webkit offers a very useful `textInput` event that can be used to
// directly represent `beforeInput`. The IE `textinput` event is not as
// useful, so we don't use it.
var canUseTextInputEvent = (
  ExecutionEnvironment.canUseDOM &&
  'TextEvent' in window &&
  !documentMode &&
  !isPresto()
);

// In IE9+, we have access to composition events, but the data supplied
// by the native compositionend event may be incorrect. Japanese ideographic
// spaces, for instance (\u3000) are not recorded correctly.
var useFallbackCompositionData = (
  ExecutionEnvironment.canUseDOM &&
  (
    (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11)
  )
);

/**
 * Opera <= 12 includes TextEvent in window, but does not fire
 * text input events. Rely on keypress instead.
 */
function isPresto() {
  var opera = window.opera;
  return (
    typeof opera === 'object' &&
    typeof opera.version === 'function' &&
    parseInt(opera.version(), 10) <= 12
  );
}

var SPACEBAR_CODE = 32;
var SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);

var topLevelTypes = EventConstants.topLevelTypes;

// Events and their corresponding property names.
var eventTypes = {
  beforeInput: {
    phasedRegistrationNames: {
      bubbled: keyOf({onBeforeInput: null}),
      captured: keyOf({onBeforeInputCapture: null})
    },
    dependencies: [
      topLevelTypes.topCompositionEnd,
      topLevelTypes.topKeyPress,
      topLevelTypes.topTextInput,
      topLevelTypes.topPaste
    ]
  },
  compositionEnd: {
    phasedRegistrationNames: {
      bubbled: keyOf({onCompositionEnd: null}),
      captured: keyOf({onCompositionEndCapture: null})
    },
    dependencies: [
      topLevelTypes.topBlur,
      topLevelTypes.topCompositionEnd,
      topLevelTypes.topKeyDown,
      topLevelTypes.topKeyPress,
      topLevelTypes.topKeyUp,
      topLevelTypes.topMouseDown
    ]
  },
  compositionStart: {
    phasedRegistrationNames: {
      bubbled: keyOf({onCompositionStart: null}),
      captured: keyOf({onCompositionStartCapture: null})
    },
    dependencies: [
      topLevelTypes.topBlur,
      topLevelTypes.topCompositionStart,
      topLevelTypes.topKeyDown,
      topLevelTypes.topKeyPress,
      topLevelTypes.topKeyUp,
      topLevelTypes.topMouseDown
    ]
  },
  compositionUpdate: {
    phasedRegistrationNames: {
      bubbled: keyOf({onCompositionUpdate: null}),
      captured: keyOf({onCompositionUpdateCapture: null})
    },
    dependencies: [
      topLevelTypes.topBlur,
      topLevelTypes.topCompositionUpdate,
      topLevelTypes.topKeyDown,
      topLevelTypes.topKeyPress,
      topLevelTypes.topKeyUp,
      topLevelTypes.topMouseDown
    ]
  }
};

// Track whether we've ever handled a keypress on the space key.
var hasSpaceKeypress = false;

/**
 * Return whether a native keypress event is assumed to be a command.
 * This is required because Firefox fires `keypress` events for key commands
 * (cut, copy, select-all, etc.) even though no character is inserted.
 */
function isKeypressCommand(nativeEvent) {
  return (
    (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&
    // ctrlKey && altKey is equivalent to AltGr, and is not a command.
    !(nativeEvent.ctrlKey && nativeEvent.altKey)
  );
}


/**
 * Translate native top level events into event types.
 *
 * @param {string} topLevelType
 * @return {object}
 */
function getCompositionEventType(topLevelType) {
  switch (topLevelType) {
    case topLevelTypes.topCompositionStart:
      return eventTypes.compositionStart;
    case topLevelTypes.topCompositionEnd:
      return eventTypes.compositionEnd;
    case topLevelTypes.topCompositionUpdate:
      return eventTypes.compositionUpdate;
  }
}

/**
 * Does our fallback best-guess model think this event signifies that
 * composition has begun?
 *
 * @param {string} topLevelType
 * @param {object} nativeEvent
 * @return {boolean}
 */
function isFallbackCompositionStart(topLevelType, nativeEvent) {
  return (
    topLevelType === topLevelTypes.topKeyDown &&
    nativeEvent.keyCode === START_KEYCODE
  );
}

/**
 * Does our fallback mode think that this event is the end of composition?
 *
 * @param {string} topLevelType
 * @param {object} nativeEvent
 * @return {boolean}
 */
function isFallbackCompositionEnd(topLevelType, nativeEvent) {
  switch (topLevelType) {
    case topLevelTypes.topKeyUp:
      // Command keys insert or clear IME input.
      return (END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1);
    case topLevelTypes.topKeyDown:
      // Expect IME keyCode on each keydown. If we get any other
      // code we must have exited earlier.
      return (nativeEvent.keyCode !== START_KEYCODE);
    case topLevelTypes.topKeyPress:
    case topLevelTypes.topMouseDown:
    case topLevelTypes.topBlur:
      // Events are not possible without cancelling IME.
      return true;
    default:
      return false;
  }
}

/**
 * Google Input Tools provides composition data via a CustomEvent,
 * with the `data` property populated in the `detail` object. If this
 * is available on the event object, use it. If not, this is a plain
 * composition event and we have nothing special to extract.
 *
 * @param {object} nativeEvent
 * @return {?string}
 */
function getDataFromCustomEvent(nativeEvent) {
  var detail = nativeEvent.detail;
  if (typeof detail === 'object' && 'data' in detail) {
    return detail.data;
  }
  return null;
}

// Track the current IME composition fallback object, if any.
var currentComposition = null;

/**
 * @param {string} topLevelType Record from `EventConstants`.
 * @param {DOMEventTarget} topLevelTarget The listening component root node.
 * @param {string} topLevelTargetID ID of `topLevelTarget`.
 * @param {object} nativeEvent Native browser event.
 * @return {?object} A SyntheticCompositionEvent.
 */
function extractCompositionEvent(
  topLevelType,
  topLevelTarget,
  topLevelTargetID,
  nativeEvent
) {
  var eventType;
  var fallbackData;

  if (canUseCompositionEvent) {
    eventType = getCompositionEventType(topLevelType);
  } else if (!currentComposition) {
    if (isFallbackCompositionStart(topLevelType, nativeEvent)) {
      eventType = eventTypes.compositionStart;
    }
  } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) {
    eventType = eventTypes.compositionEnd;
  }

  if (!eventType) {
    return null;
  }

  if (useFallbackCompositionData) {
    // The current composition is stored statically and must not be
    // overwritten while composition continues.
    if (!currentComposition && eventType === eventTypes.compositionStart) {
      currentComposition = FallbackCompositionState.getPooled(topLevelTarget);
    } else if (eventType === eventTypes.compositionEnd) {
      if (currentComposition) {
        fallbackData = currentComposition.getData();
      }
    }
  }

  var event = SyntheticCompositionEvent.getPooled(
    eventType,
    topLevelTargetID,
    nativeEvent
  );

  if (fallbackData) {
    // Inject data generated from fallback path into the synthetic event.
    // This matches the property of native CompositionEventInterface.
    event.data = fallbackData;
  } else {
    var customData = getDataFromCustomEvent(nativeEvent);
    if (customData !== null) {
      event.data = customData;
    }
  }

  EventPropagators.accumulateTwoPhaseDispatches(event);
  return event;
}

/**
 * @param {string} topLevelType Record from `EventConstants`.
 * @param {object} nativeEvent Native browser event.
 * @return {?string} The string corresponding to this `beforeInput` event.
 */
function getNativeBeforeInputChars(topLevelType, nativeEvent) {
  switch (topLevelType) {
    case topLevelTypes.topCompositionEnd:
      return getDataFromCustomEvent(nativeEvent);
    case topLevelTypes.topKeyPress:
      /**
       * If native `textInput` events are available, our goal is to make
       * use of them. However, there is a special case: the spacebar key.
       * In Webkit, preventing default on a spacebar `textInput` event
       * cancels character insertion, but it *also* causes the browser
       * to fall back to its default spacebar behavior of scrolling the
       * page.
       *
       * Tracking at:
       * https://code.google.com/p/chromium/issues/detail?id=355103
       *
       * To avoid this issue, use the keypress event as if no `textInput`
       * event is available.
       */
      var which = nativeEvent.which;
      if (which !== SPACEBAR_CODE) {
        return null;
      }

      hasSpaceKeypress = true;
      return SPACEBAR_CHAR;

    case topLevelTypes.topTextInput:
      // Record the characters to be added to the DOM.
      var chars = nativeEvent.data;

      // If it's a spacebar character, assume that we have already handled
      // it at the keypress level and bail immediately. Android Chrome
      // doesn't give us keycodes, so we need to blacklist it.
      if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {
        return null;
      }

      return chars;

    default:
      // For other native event types, do nothing.
      return null;
  }
}

/**
 * For browsers that do not provide the `textInput` event, extract the
 * appropriate string to use for SyntheticInputEvent.
 *
 * @param {string} topLevelType Record from `EventConstants`.
 * @param {object} nativeEvent Native browser event.
 * @return {?string} The fallback string for this `beforeInput` event.
 */
function getFallbackBeforeInputChars(topLevelType, nativeEvent) {
  // If we are currently composing (IME) and using a fallback to do so,
  // try to extract the composed characters from the fallback object.
  if (currentComposition) {
    if (
      topLevelType === topLevelTypes.topCompositionEnd ||
      isFallbackCompositionEnd(topLevelType, nativeEvent)
    ) {
      var chars = currentComposition.getData();
      FallbackCompositionState.release(currentComposition);
      currentComposition = null;
      return chars;
    }
    return null;
  }

  switch (topLevelType) {
    case topLevelTypes.topPaste:
      // If a paste event occurs after a keypress, throw out the input
      // chars. Paste events should not lead to BeforeInput events.
      return null;
    case topLevelTypes.topKeyPress:
      /**
       * As of v27, Firefox may fire keypress events even when no character
       * will be inserted. A few possibilities:
       *
       * - `which` is `0`. Arrow keys, Esc key, etc.
       *
       * - `which` is the pressed key code, but no char is available.
       *   Ex: 'AltGr + d` in Polish. There is no modified character for
       *   this key combination and no character is inserted into the
       *   document, but FF fires the keypress for char code `100` anyway.
       *   No `input` event will occur.
       *
       * - `which` is the pressed key code, but a command combination is
       *   being used. Ex: `Cmd+C`. No character is inserted, and no
       *   `input` event will occur.
       */
      if (nativeEvent.which && !isKeypressCommand(nativeEvent)) {
        return String.fromCharCode(nativeEvent.which);
      }
      return null;
    case topLevelTypes.topCompositionEnd:
      return useFallbackCompositionData ? null : nativeEvent.data;
    default:
      return null;
  }
}

/**
 * Extract a SyntheticInputEvent for `beforeInput`, based on either native
 * `textInput` or fallback behavior.
 *
 * @param {string} topLevelType Record from `EventConstants`.
 * @param {DOMEventTarget} topLevelTarget The listening component root node.
 * @param {string} topLevelTargetID ID of `topLevelTarget`.
 * @param {object} nativeEvent Native browser event.
 * @return {?object} A SyntheticInputEvent.
 */
function extractBeforeInputEvent(
  topLevelType,
  topLevelTarget,
  topLevelTargetID,
  nativeEvent
) {
  var chars;

  if (canUseTextInputEvent) {
    chars = getNativeBeforeInputChars(topLevelType, nativeEvent);
  } else {
    chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);
  }

  // If no characters are being inserted, no BeforeInput event should
  // be fired.
  if (!chars) {
    return null;
  }

  var event = SyntheticInputEvent.getPooled(
    eventTypes.beforeInput,
    topLevelTargetID,
    nativeEvent
  );

  event.data = chars;
  EventPropagators.accumulateTwoPhaseDispatches(event);
  return event;
}

/**
 * Create an `onBeforeInput` event to match
 * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.
 *
 * This event plugin is based on the native `textInput` event
 * available in Chrome, Safari, Opera, and IE. This event fires after
 * `onKeyPress` and `onCompositionEnd`, but before `onInput`.
 *
 * `beforeInput` is spec'd but not implemented in any browsers, and
 * the `input` event does not provide any useful information about what has
 * actually been added, contrary to the spec. Thus, `textInput` is the best
 * available event to identify the characters that have actually been inserted
 * into the target node.
 *
 * This plugin is also responsible for emitting `composition` events, thus
 * allowing us to share composition fallback code for both `beforeInput` and
 * `composition` event types.
 */
var BeforeInputEventPlugin = {

  eventTypes: eventTypes,

  /**
   * @param {string} topLevelType Record from `EventConstants`.
   * @param {DOMEventTarget} topLevelTarget The listening component root node.
   * @param {string} topLevelTargetID ID of `topLevelTarget`.
   * @param {object} nativeEvent Native browser event.
   * @return {*} An accumulation of synthetic events.
   * @see {EventPluginHub.extractEvents}
   */
  extractEvents: function(
    topLevelType,
    topLevelTarget,
    topLevelTargetID,
    nativeEvent
  ) {
    return [
      extractCompositionEvent(
        topLevelType,
        topLevelTarget,
        topLevelTargetID,
        nativeEvent
      ),
      extractBeforeInputEvent(
        topLevelType,
        topLevelTarget,
        topLevelTargetID,
        nativeEvent
      )
    ];
  }
};

module.exports = BeforeInputEventPlugin;

},{"./EventConstants":27,"./EventPropagators":32,"./ExecutionEnvironment":33,"./FallbackCompositionState":34,"./SyntheticCompositionEvent":118,"./SyntheticInputEvent":122,"./keyOf":169}],15:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule CSSCore
 * @typechecks
 */

var invariant = require("./invariant");

/**
 * The CSSCore module specifies the API (and implements most of the methods)
 * that should be used when dealing with the display of elements (via their
 * CSS classes and visibility on screen. It is an API focused on mutating the
 * display and not reading it as no logical state should be encoded in the
 * display of elements.
 */

var CSSCore = {

  /**
   * Adds the class passed in to the element if it doesn't already have it.
   *
   * @param {DOMElement} element the element to set the class on
   * @param {string} className the CSS className
   * @return {DOMElement} the element passed in
   */
  addClass: function(element, className) {
    ("production" !== process.env.NODE_ENV ? invariant(
      !/\s/.test(className),
      'CSSCore.addClass takes only a single class name. "%s" contains ' +
      'multiple classes.', className
    ) : invariant(!/\s/.test(className)));

    if (className) {
      if (element.classList) {
        element.classList.add(className);
      } else if (!CSSCore.hasClass(element, className)) {
        element.className = element.className + ' ' + className;
      }
    }
    return element;
  },

  /**
   * Removes the class passed in from the element
   *
   * @param {DOMElement} element the element to set the class on
   * @param {string} className the CSS className
   * @return {DOMElement} the element passed in
   */
  removeClass: function(element, className) {
    ("production" !== process.env.NODE_ENV ? invariant(
      !/\s/.test(className),
      'CSSCore.removeClass takes only a single class name. "%s" contains ' +
      'multiple classes.', className
    ) : invariant(!/\s/.test(className)));

    if (className) {
      if (element.classList) {
        element.classList.remove(className);
      } else if (CSSCore.hasClass(element, className)) {
        element.className = element.className
          .replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)', 'g'), '$1')
          .replace(/\s+/g, ' ') // multiple spaces to one
          .replace(/^\s*|\s*$/g, ''); // trim the ends
      }
    }
    return element;
  },

  /**
   * Helper to add or remove a class from an element based on a condition.
   *
   * @param {DOMElement} element the element to set the class on
   * @param {string} className the CSS className
   * @param {*} bool condition to whether to add or remove the class
   * @return {DOMElement} the element passed in
   */
  conditionClass: function(element, className, bool) {
    return (bool ? CSSCore.addClass : CSSCore.removeClass)(element, className);
  },

  /**
   * Tests whether the element has the class specified.
   *
   * @param {DOMNode|DOMWindow} element the element to set the class on
   * @param {string} className the CSS className
   * @return {boolean} true if the element has the class, false if not
   */
  hasClass: function(element, className) {
    ("production" !== process.env.NODE_ENV ? invariant(
      !/\s/.test(className),
      'CSS.hasClass takes only a single class name.'
    ) : invariant(!/\s/.test(className)));
    if (element.classList) {
      return !!className && element.classList.contains(className);
    }
    return (' ' + element.className + ' ').indexOf(' ' + className + ' ') > -1;
  }

};

module.exports = CSSCore;

}).call(this,require("1YiZ5S"))
},{"./invariant":162,"1YiZ5S":5}],16:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule CSSProperty
 */

'use strict';

/**
 * CSS properties which accept numbers but are not in units of "px".
 */
var isUnitlessNumber = {
  boxFlex: true,
  boxFlexGroup: true,
  columnCount: true,
  flex: true,
  flexGrow: true,
  flexPositive: true,
  flexShrink: true,
  flexNegative: true,
  fontWeight: true,
  lineClamp: true,
  lineHeight: true,
  opacity: true,
  order: true,
  orphans: true,
  widows: true,
  zIndex: true,
  zoom: true,

  // SVG-related properties
  fillOpacity: true,
  strokeDashoffset: true,
  strokeOpacity: true,
  strokeWidth: true
};

/**
 * @param {string} prefix vendor-specific prefix, eg: Webkit
 * @param {string} key style name, eg: transitionDuration
 * @return {string} style name prefixed with `prefix`, properly camelCased, eg:
 * WebkitTransitionDuration
 */
function prefixKey(prefix, key) {
  return prefix + key.charAt(0).toUpperCase() + key.substring(1);
}

/**
 * Support style names that may come passed in prefixed by adding permutations
 * of vendor prefixes.
 */
var prefixes = ['Webkit', 'ms', 'Moz', 'O'];

// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an
// infinite loop, because it iterates over the newly added props too.
Object.keys(isUnitlessNumber).forEach(function(prop) {
  prefixes.forEach(function(prefix) {
    isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];
  });
});

/**
 * Most style properties can be unset by doing .style[prop] = '' but IE8
 * doesn't like doing that with shorthand properties so for the properties that
 * IE8 breaks on, which are listed here, we instead unset each of the
 * individual properties. See http://bugs.jquery.com/ticket/12385.
 * The 4-value 'clock' properties like margin, padding, border-width seem to
 * behave without any problems. Curiously, list-style works too without any
 * special prodding.
 */
var shorthandPropertyExpansions = {
  background: {
    backgroundImage: true,
    backgroundPosition: true,
    backgroundRepeat: true,
    backgroundColor: true
  },
  border: {
    borderWidth: true,
    borderStyle: true,
    borderColor: true
  },
  borderBottom: {
    borderBottomWidth: true,
    borderBottomStyle: true,
    borderBottomColor: true
  },
  borderLeft: {
    borderLeftWidth: true,
    borderLeftStyle: true,
    borderLeftColor: true
  },
  borderRight: {
    borderRightWidth: true,
    borderRightStyle: true,
    borderRightColor: true
  },
  borderTop: {
    borderTopWidth: true,
    borderTopStyle: true,
    borderTopColor: true
  },
  font: {
    fontStyle: true,
    fontVariant: true,
    fontWeight: true,
    fontSize: true,
    lineHeight: true,
    fontFamily: true
  }
};

var CSSProperty = {
  isUnitlessNumber: isUnitlessNumber,
  shorthandPropertyExpansions: shorthandPropertyExpansions
};

module.exports = CSSProperty;

},{}],17:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule CSSPropertyOperations
 * @typechecks static-only
 */

'use strict';

var CSSProperty = require("./CSSProperty");
var ExecutionEnvironment = require("./ExecutionEnvironment");

var camelizeStyleName = require("./camelizeStyleName");
var dangerousStyleValue = require("./dangerousStyleValue");
var hyphenateStyleName = require("./hyphenateStyleName");
var memoizeStringOnly = require("./memoizeStringOnly");
var warning = require("./warning");

var processStyleName = memoizeStringOnly(function(styleName) {
  return hyphenateStyleName(styleName);
});

var styleFloatAccessor = 'cssFloat';
if (ExecutionEnvironment.canUseDOM) {
  // IE8 only supports accessing cssFloat (standard) as styleFloat
  if (document.documentElement.style.cssFloat === undefined) {
    styleFloatAccessor = 'styleFloat';
  }
}

if ("production" !== process.env.NODE_ENV) {
  // 'msTransform' is correct, but the other prefixes should be capitalized
  var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;

  // style values shouldn't contain a semicolon
  var badStyleValueWithSemicolonPattern = /;\s*$/;

  var warnedStyleNames = {};
  var warnedStyleValues = {};

  var warnHyphenatedStyleName = function(name) {
    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {
      return;
    }

    warnedStyleNames[name] = true;
    ("production" !== process.env.NODE_ENV ? warning(
      false,
      'Unsupported style property %s. Did you mean %s?',
      name,
      camelizeStyleName(name)
    ) : null);
  };

  var warnBadVendoredStyleName = function(name) {
    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {
      return;
    }

    warnedStyleNames[name] = true;
    ("production" !== process.env.NODE_ENV ? warning(
      false,
      'Unsupported vendor-prefixed style property %s. Did you mean %s?',
      name,
      name.charAt(0).toUpperCase() + name.slice(1)
    ) : null);
  };

  var warnStyleValueWithSemicolon = function(name, value) {
    if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {
      return;
    }

    warnedStyleValues[value] = true;
    ("production" !== process.env.NODE_ENV ? warning(
      false,
      'Style property values shouldn\'t contain a semicolon. ' +
      'Try "%s: %s" instead.',
      name,
      value.replace(badStyleValueWithSemicolonPattern, '')
    ) : null);
  };

  /**
   * @param {string} name
   * @param {*} value
   */
  var warnValidStyle = function(name, value) {
    if (name.indexOf('-') > -1) {
      warnHyphenatedStyleName(name);
    } else if (badVendoredStyleNamePattern.test(name)) {
      warnBadVendoredStyleName(name);
    } else if (badStyleValueWithSemicolonPattern.test(value)) {
      warnStyleValueWithSemicolon(name, value);
    }
  };
}

/**
 * Operations for dealing with CSS properties.
 */
var CSSPropertyOperations = {

  /**
   * Serializes a mapping of style properties for use as inline styles:
   *
   *   > createMarkupForStyles({width: '200px', height: 0})
   *   "width:200px;height:0;"
   *
   * Undefined values are ignored so that declarative programming is easier.
   * The result should be HTML-escaped before insertion into the DOM.
   *
   * @param {object} styles
   * @return {?string}
   */
  createMarkupForStyles: function(styles) {
    var serialized = '';
    for (var styleName in styles) {
      if (!styles.hasOwnProperty(styleName)) {
        continue;
      }
      var styleValue = styles[styleName];
      if ("production" !== process.env.NODE_ENV) {
        warnValidStyle(styleName, styleValue);
      }
      if (styleValue != null) {
        serialized += processStyleName(styleName) + ':';
        serialized += dangerousStyleValue(styleName, styleValue) + ';';
      }
    }
    return serialized || null;
  },

  /**
   * Sets the value for multiple styles on a node.  If a value is specified as
   * '' (empty string), the corresponding style property will be unset.
   *
   * @param {DOMElement} node
   * @param {object} styles
   */
  setValueForStyles: function(node, styles) {
    var style = node.style;
    for (var styleName in styles) {
      if (!styles.hasOwnProperty(styleName)) {
        continue;
      }
      if ("production" !== process.env.NODE_ENV) {
        warnValidStyle(styleName, styles[styleName]);
      }
      var styleValue = dangerousStyleValue(styleName, styles[styleName]);
      if (styleName === 'float') {
        styleName = styleFloatAccessor;
      }
      if (styleValue) {
        style[styleName] = styleValue;
      } else {
        var expansion = CSSProperty.shorthandPropertyExpansions[styleName];
        if (expansion) {
          // Shorthand property that IE8 won't like unsetting, so unset each
          // component to placate it
          for (var individualStyleName in expansion) {
            style[individualStyleName] = '';
          }
        } else {
          style[styleName] = '';
        }
      }
    }
  }

};

module.exports = CSSPropertyOperations;

}).call(this,require("1YiZ5S"))
},{"./CSSProperty":16,"./ExecutionEnvironment":33,"./camelizeStyleName":133,"./dangerousStyleValue":140,"./hyphenateStyleName":160,"./memoizeStringOnly":171,"./warning":183,"1YiZ5S":5}],18:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule CallbackQueue
 */

'use strict';

var PooledClass = require("./PooledClass");

var assign = require("./Object.assign");
var invariant = require("./invariant");

/**
 * A specialized pseudo-event module to help keep track of components waiting to
 * be notified when their DOM representations are available for use.
 *
 * This implements `PooledClass`, so you should never need to instantiate this.
 * Instead, use `CallbackQueue.getPooled()`.
 *
 * @class ReactMountReady
 * @implements PooledClass
 * @internal
 */
function CallbackQueue() {
  this._callbacks = null;
  this._contexts = null;
}

assign(CallbackQueue.prototype, {

  /**
   * Enqueues a callback to be invoked when `notifyAll` is invoked.
   *
   * @param {function} callback Invoked when `notifyAll` is invoked.
   * @param {?object} context Context to call `callback` with.
   * @internal
   */
  enqueue: function(callback, context) {
    this._callbacks = this._callbacks || [];
    this._contexts = this._contexts || [];
    this._callbacks.push(callback);
    this._contexts.push(context);
  },

  /**
   * Invokes all enqueued callbacks and clears the queue. This is invoked after
   * the DOM representation of a component has been created or updated.
   *
   * @internal
   */
  notifyAll: function() {
    var callbacks = this._callbacks;
    var contexts = this._contexts;
    if (callbacks) {
      ("production" !== process.env.NODE_ENV ? invariant(
        callbacks.length === contexts.length,
        'Mismatched list of contexts in callback queue'
      ) : invariant(callbacks.length === contexts.length));
      this._callbacks = null;
      this._contexts = null;
      for (var i = 0, l = callbacks.length; i < l; i++) {
        callbacks[i].call(contexts[i]);
      }
      callbacks.length = 0;
      contexts.length = 0;
    }
  },

  /**
   * Resets the internal queue.
   *
   * @internal
   */
  reset: function() {
    this._callbacks = null;
    this._contexts = null;
  },

  /**
   * `PooledClass` looks for this.
   */
  destructor: function() {
    this.reset();
  }

});

PooledClass.addPoolingTo(CallbackQueue);

module.exports = CallbackQueue;

}).call(this,require("1YiZ5S"))
},{"./Object.assign":40,"./PooledClass":41,"./invariant":162,"1YiZ5S":5}],19:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ChangeEventPlugin
 */

'use strict';

var EventConstants = require("./EventConstants");
var EventPluginHub = require("./EventPluginHub");
var EventPropagators = require("./EventPropagators");
var ExecutionEnvironment = require("./ExecutionEnvironment");
var ReactUpdates = require("./ReactUpdates");
var SyntheticEvent = require("./SyntheticEvent");

var isEventSupported = require("./isEventSupported");
var isTextInputElement = require("./isTextInputElement");
var keyOf = require("./keyOf");

var topLevelTypes = EventConstants.topLevelTypes;

var eventTypes = {
  change: {
    phasedRegistrationNames: {
      bubbled: keyOf({onChange: null}),
      captured: keyOf({onChangeCapture: null})
    },
    dependencies: [
      topLevelTypes.topBlur,
      topLevelTypes.topChange,
      topLevelTypes.topClick,
      topLevelTypes.topFocus,
      topLevelTypes.topInput,
      topLevelTypes.topKeyDown,
      topLevelTypes.topKeyUp,
      topLevelTypes.topSelectionChange
    ]
  }
};

/**
 * For IE shims
 */
var activeElement = null;
var activeElementID = null;
var activeElementValue = null;
var activeElementValueProp = null;

/**
 * SECTION: handle `change` event
 */
function shouldUseChangeEvent(elem) {
  return (
    elem.nodeName === 'SELECT' ||
    (elem.nodeName === 'INPUT' && elem.type === 'file')
  );
}

var doesChangeEventBubble = false;
if (ExecutionEnvironment.canUseDOM) {
  // See `handleChange` comment below
  doesChangeEventBubble = isEventSupported('change') && (
    (!('documentMode' in document) || document.documentMode > 8)
  );
}

function manualDispatchChangeEvent(nativeEvent) {
  var event = SyntheticEvent.getPooled(
    eventTypes.change,
    activeElementID,
    nativeEvent
  );
  EventPropagators.accumulateTwoPhaseDispatches(event);

  // If change and propertychange bubbled, we'd just bind to it like all the
  // other events and have it go through ReactBrowserEventEmitter. Since it
  // doesn't, we manually listen for the events and so we have to enqueue and
  // process the abstract event manually.
  //
  // Batching is necessary here in order to ensure that all event handlers run
  // before the next rerender (including event handlers attached to ancestor
  // elements instead of directly on the input). Without this, controlled
  // components don't work properly in conjunction with event bubbling because
  // the component is rerendered and the value reverted before all the event
  // handlers can run. See https://github.com/facebook/react/issues/708.
  ReactUpdates.batchedUpdates(runEventInBatch, event);
}

function runEventInBatch(event) {
  EventPluginHub.enqueueEvents(event);
  EventPluginHub.processEventQueue();
}

function startWatchingForChangeEventIE8(target, targetID) {
  activeElement = target;
  activeElementID = targetID;
  activeElement.attachEvent('onchange', manualDispatchChangeEvent);
}

function stopWatchingForChangeEventIE8() {
  if (!activeElement) {
    return;
  }
  activeElement.detachEvent('onchange', manualDispatchChangeEvent);
  activeElement = null;
  activeElementID = null;
}

function getTargetIDForChangeEvent(
    topLevelType,
    topLevelTarget,
    topLevelTargetID) {
  if (topLevelType === topLevelTypes.topChange) {
    return topLevelTargetID;
  }
}
function handleEventsForChangeEventIE8(
    topLevelType,
    topLevelTarget,
    topLevelTargetID) {
  if (topLevelType === topLevelTypes.topFocus) {
    // stopWatching() should be a noop here but we call it just in case we
    // missed a blur event somehow.
    stopWatchingForChangeEventIE8();
    startWatchingForChangeEventIE8(topLevelTarget, topLevelTargetID);
  } else if (topLevelType === topLevelTypes.topBlur) {
    stopWatchingForChangeEventIE8();
  }
}


/**
 * SECTION: handle `input` event
 */
var isInputEventSupported = false;
if (ExecutionEnvironment.canUseDOM) {
  // IE9 claims to support the input event but fails to trigger it when
  // deleting text, so we ignore its input events
  isInputEventSupported = isEventSupported('input') && (
    (!('documentMode' in document) || document.documentMode > 9)
  );
}

/**
 * (For old IE.) Replacement getter/setter for the `value` property that gets
 * set on the active element.
 */
var newValueProp =  {
  get: function() {
    return activeElementValueProp.get.call(this);
  },
  set: function(val) {
    // Cast to a string so we can do equality checks.
    activeElementValue = '' + val;
    activeElementValueProp.set.call(this, val);
  }
};

/**
 * (For old IE.) Starts tracking propertychange events on the passed-in element
 * and override the value property so that we can distinguish user events from
 * value changes in JS.
 */
function startWatchingForValueChange(target, targetID) {
  activeElement = target;
  activeElementID = targetID;
  activeElementValue = target.value;
  activeElementValueProp = Object.getOwnPropertyDescriptor(
    target.constructor.prototype,
    'value'
  );

  Object.defineProperty(activeElement, 'value', newValueProp);
  activeElement.attachEvent('onpropertychange', handlePropertyChange);
}

/**
 * (For old IE.) Removes the event listeners from the currently-tracked element,
 * if any exists.
 */
function stopWatchingForValueChange() {
  if (!activeElement) {
    return;
  }

  // delete restores the original property definition
  delete activeElement.value;
  activeElement.detachEvent('onpropertychange', handlePropertyChange);

  activeElement = null;
  activeElementID = null;
  activeElementValue = null;
  activeElementValueProp = null;
}

/**
 * (For old IE.) Handles a propertychange event, sending a `change` event if
 * the value of the active element has changed.
 */
function handlePropertyChange(nativeEvent) {
  if (nativeEvent.propertyName !== 'value') {
    return;
  }
  var value = nativeEvent.srcElement.value;
  if (value === activeElementValue) {
    return;
  }
  activeElementValue = value;

  manualDispatchChangeEvent(nativeEvent);
}

/**
 * If a `change` event should be fired, returns the target's ID.
 */
function getTargetIDForInputEvent(
    topLevelType,
    topLevelTarget,
    topLevelTargetID) {
  if (topLevelType === topLevelTypes.topInput) {
    // In modern browsers (i.e., not IE8 or IE9), the input event is exactly
    // what we want so fall through here and trigger an abstract event
    return topLevelTargetID;
  }
}

// For IE8 and IE9.
function handleEventsForInputEventIE(
    topLevelType,
    topLevelTarget,
    topLevelTargetID) {
  if (topLevelType === topLevelTypes.topFocus) {
    // In IE8, we can capture almost all .value changes by adding a
    // propertychange handler and looking for events with propertyName
    // equal to 'value'
    // In IE9, propertychange fires for most input events but is buggy and
    // doesn't fire when text is deleted, but conveniently, selectionchange
    // appears to fire in all of the remaining cases so we catch those and
    // forward the event if the value has changed
    // In either case, we don't want to call the event handler if the value
    // is changed from JS so we redefine a setter for `.value` that updates
    // our activeElementValue variable, allowing us to ignore those changes
    //
    // stopWatching() should be a noop here but we call it just in case we
    // missed a blur event somehow.
    stopWatchingForValueChange();
    startWatchingForValueChange(topLevelTarget, topLevelTargetID);
  } else if (topLevelType === topLevelTypes.topBlur) {
    stopWatchingForValueChange();
  }
}

// For IE8 and IE9.
function getTargetIDForInputEventIE(
    topLevelType,
    topLevelTarget,
    topLevelTargetID) {
  if (topLevelType === topLevelTypes.topSelectionChange ||
      topLevelType === topLevelTypes.topKeyUp ||
      topLevelType === topLevelTypes.topKeyDown) {
    // On the selectionchange event, the target is just document which isn't
    // helpful for us so just check activeElement instead.
    //
    // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire
    // propertychange on the first input event after setting `value` from a
    // script and fires only keydown, keypress, keyup. Catching keyup usually
    // gets it and catching keydown lets us fire an event for the first
    // keystroke if user does a key repeat (it'll be a little delayed: right
    // before the second keystroke). Other input methods (e.g., paste) seem to
    // fire selectionchange normally.
    if (activeElement && activeElement.value !== activeElementValue) {
      activeElementValue = activeElement.value;
      return activeElementID;
    }
  }
}


/**
 * SECTION: handle `click` event
 */
function shouldUseClickEvent(elem) {
  // Use the `click` event to detect changes to checkbox and radio inputs.
  // This approach works across all browsers, whereas `change` does not fire
  // until `blur` in IE8.
  return (
    elem.nodeName === 'INPUT' &&
    (elem.type === 'checkbox' || elem.type === 'radio')
  );
}

function getTargetIDForClickEvent(
    topLevelType,
    topLevelTarget,
    topLevelTargetID) {
  if (topLevelType === topLevelTypes.topClick) {
    return topLevelTargetID;
  }
}

/**
 * This plugin creates an `onChange` event that normalizes change events
 * across form elements. This event fires at a time when it's possible to
 * change the element's value without seeing a flicker.
 *
 * Supported elements are:
 * - input (see `isTextInputElement`)
 * - textarea
 * - select
 */
var ChangeEventPlugin = {

  eventTypes: eventTypes,

  /**
   * @param {string} topLevelType Record from `EventConstants`.
   * @param {DOMEventTarget} topLevelTarget The listening component root node.
   * @param {string} topLevelTargetID ID of `topLevelTarget`.
   * @param {object} nativeEvent Native browser event.
   * @return {*} An accumulation of synthetic events.
   * @see {EventPluginHub.extractEvents}
   */
  extractEvents: function(
      topLevelType,
      topLevelTarget,
      topLevelTargetID,
      nativeEvent) {

    var getTargetIDFunc, handleEventFunc;
    if (shouldUseChangeEvent(topLevelTarget)) {
      if (doesChangeEventBubble) {
        getTargetIDFunc = getTargetIDForChangeEvent;
      } else {
        handleEventFunc = handleEventsForChangeEventIE8;
      }
    } else if (isTextInputElement(topLevelTarget)) {
      if (isInputEventSupported) {
        getTargetIDFunc = getTargetIDForInputEvent;
      } else {
        getTargetIDFunc = getTargetIDForInputEventIE;
        handleEventFunc = handleEventsForInputEventIE;
      }
    } else if (shouldUseClickEvent(topLevelTarget)) {
      getTargetIDFunc = getTargetIDForClickEvent;
    }

    if (getTargetIDFunc) {
      var targetID = getTargetIDFunc(
        topLevelType,
        topLevelTarget,
        topLevelTargetID
      );
      if (targetID) {
        var event = SyntheticEvent.getPooled(
          eventTypes.change,
          targetID,
          nativeEvent
        );
        EventPropagators.accumulateTwoPhaseDispatches(event);
        return event;
      }
    }

    if (handleEventFunc) {
      handleEventFunc(
        topLevelType,
        topLevelTarget,
        topLevelTargetID
      );
    }
  }

};

module.exports = ChangeEventPlugin;

},{"./EventConstants":27,"./EventPluginHub":29,"./EventPropagators":32,"./ExecutionEnvironment":33,"./ReactUpdates":111,"./SyntheticEvent":120,"./isEventSupported":163,"./isTextInputElement":165,"./keyOf":169}],20:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ClientReactRootIndex
 * @typechecks
 */

'use strict';

var nextReactRootIndex = 0;

var ClientReactRootIndex = {
  createReactRootIndex: function() {
    return nextReactRootIndex++;
  }
};

module.exports = ClientReactRootIndex;

},{}],21:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule DOMChildrenOperations
 * @typechecks static-only
 */

'use strict';

var Danger = require("./Danger");
var ReactMultiChildUpdateTypes = require("./ReactMultiChildUpdateTypes");

var setTextContent = require("./setTextContent");
var invariant = require("./invariant");

/**
 * Inserts `childNode` as a child of `parentNode` at the `index`.
 *
 * @param {DOMElement} parentNode Parent node in which to insert.
 * @param {DOMElement} childNode Child node to insert.
 * @param {number} index Index at which to insert the child.
 * @internal
 */
function insertChildAt(parentNode, childNode, index) {
  // By exploiting arrays returning `undefined` for an undefined index, we can
  // rely exclusively on `insertBefore(node, null)` instead of also using
  // `appendChild(node)`. However, using `undefined` is not allowed by all
  // browsers so we must replace it with `null`.
  parentNode.insertBefore(
    childNode,
    parentNode.childNodes[index] || null
  );
}

/**
 * Operations for updating with DOM children.
 */
var DOMChildrenOperations = {

  dangerouslyReplaceNodeWithMarkup: Danger.dangerouslyReplaceNodeWithMarkup,

  updateTextContent: setTextContent,

  /**
   * Updates a component's children by processing a series of updates. The
   * update configurations are each expected to have a `parentNode` property.
   *
   * @param {array<object>} updates List of update configurations.
   * @param {array<string>} markupList List of markup strings.
   * @internal
   */
  processUpdates: function(updates, markupList) {
    var update;
    // Mapping from parent IDs to initial child orderings.
    var initialChildren = null;
    // List of children that will be moved or removed.
    var updatedChildren = null;

    for (var i = 0; i < updates.length; i++) {
      update = updates[i];
      if (update.type === ReactMultiChildUpdateTypes.MOVE_EXISTING ||
          update.type === ReactMultiChildUpdateTypes.REMOVE_NODE) {
        var updatedIndex = update.fromIndex;
        var updatedChild = update.parentNode.childNodes[updatedIndex];
        var parentID = update.parentID;

        ("production" !== process.env.NODE_ENV ? invariant(
          updatedChild,
          'processUpdates(): Unable to find child %s of element. This ' +
          'probably means the DOM was unexpectedly mutated (e.g., by the ' +
          'browser), usually due to forgetting a <tbody> when using tables, ' +
          'nesting tags like <form>, <p>, or <a>, or using non-SVG elements ' +
          'in an <svg> parent. Try inspecting the child nodes of the element ' +
          'with React ID `%s`.',
          updatedIndex,
          parentID
        ) : invariant(updatedChild));

        initialChildren = initialChildren || {};
        initialChildren[parentID] = initialChildren[parentID] || [];
        initialChildren[parentID][updatedIndex] = updatedChild;

        updatedChildren = updatedChildren || [];
        updatedChildren.push(updatedChild);
      }
    }

    var renderedMarkup = Danger.dangerouslyRenderMarkup(markupList);

    // Remove updated children first so that `toIndex` is consistent.
    if (updatedChildren) {
      for (var j = 0; j < updatedChildren.length; j++) {
        updatedChildren[j].parentNode.removeChild(updatedChildren[j]);
      }
    }

    for (var k = 0; k < updates.length; k++) {
      update = updates[k];
      switch (update.type) {
        case ReactMultiChildUpdateTypes.INSERT_MARKUP:
          insertChildAt(
            update.parentNode,
            renderedMarkup[update.markupIndex],
            update.toIndex
          );
          break;
        case ReactMultiChildUpdateTypes.MOVE_EXISTING:
          insertChildAt(
            update.parentNode,
            initialChildren[update.parentID][update.fromIndex],
            update.toIndex
          );
          break;
        case ReactMultiChildUpdateTypes.TEXT_CONTENT:
          setTextContent(
            update.parentNode,
            update.textContent
          );
          break;
        case ReactMultiChildUpdateTypes.REMOVE_NODE:
          // Already removed by the for-loop above.
          break;
      }
    }
  }

};

module.exports = DOMChildrenOperations;

}).call(this,require("1YiZ5S"))
},{"./Danger":24,"./ReactMultiChildUpdateTypes":90,"./invariant":162,"./setTextContent":177,"1YiZ5S":5}],22:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule DOMProperty
 * @typechecks static-only
 */

/*jslint bitwise: true */

'use strict';

var invariant = require("./invariant");

function checkMask(value, bitmask) {
  return (value & bitmask) === bitmask;
}

var DOMPropertyInjection = {
  /**
   * Mapping from normalized, camelcased property names to a configuration that
   * specifies how the associated DOM property should be accessed or rendered.
   */
  MUST_USE_ATTRIBUTE: 0x1,
  MUST_USE_PROPERTY: 0x2,
  HAS_SIDE_EFFECTS: 0x4,
  HAS_BOOLEAN_VALUE: 0x8,
  HAS_NUMERIC_VALUE: 0x10,
  HAS_POSITIVE_NUMERIC_VALUE: 0x20 | 0x10,
  HAS_OVERLOADED_BOOLEAN_VALUE: 0x40,

  /**
   * Inject some specialized knowledge about the DOM. This takes a config object
   * with the following properties:
   *
   * isCustomAttribute: function that given an attribute name will return true
   * if it can be inserted into the DOM verbatim. Useful for data-* or aria-*
   * attributes where it's impossible to enumerate all of the possible
   * attribute names,
   *
   * Properties: object mapping DOM property name to one of the
   * DOMPropertyInjection constants or null. If your attribute isn't in here,
   * it won't get written to the DOM.
   *
   * DOMAttributeNames: object mapping React attribute name to the DOM
   * attribute name. Attribute names not specified use the **lowercase**
   * normalized name.
   *
   * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties.
   * Property names not specified use the normalized name.
   *
   * DOMMutationMethods: Properties that require special mutation methods. If
   * `value` is undefined, the mutation method should unset the property.
   *
   * @param {object} domPropertyConfig the config as described above.
   */
  injectDOMPropertyConfig: function(domPropertyConfig) {
    var Properties = domPropertyConfig.Properties || {};
    var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {};
    var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {};
    var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {};

    if (domPropertyConfig.isCustomAttribute) {
      DOMProperty._isCustomAttributeFunctions.push(
        domPropertyConfig.isCustomAttribute
      );
    }

    for (var propName in Properties) {
      ("production" !== process.env.NODE_ENV ? invariant(
        !DOMProperty.isStandardName.hasOwnProperty(propName),
        'injectDOMPropertyConfig(...): You\'re trying to inject DOM property ' +
        '\'%s\' which has already been injected. You may be accidentally ' +
        'injecting the same DOM property config twice, or you may be ' +
        'injecting two configs that have conflicting property names.',
        propName
      ) : invariant(!DOMProperty.isStandardName.hasOwnProperty(propName)));

      DOMProperty.isStandardName[propName] = true;

      var lowerCased = propName.toLowerCase();
      DOMProperty.getPossibleStandardName[lowerCased] = propName;

      if (DOMAttributeNames.hasOwnProperty(propName)) {
        var attributeName = DOMAttributeNames[propName];
        DOMProperty.getPossibleStandardName[attributeName] = propName;
        DOMProperty.getAttributeName[propName] = attributeName;
      } else {
        DOMProperty.getAttributeName[propName] = lowerCased;
      }

      DOMProperty.getPropertyName[propName] =
        DOMPropertyNames.hasOwnProperty(propName) ?
          DOMPropertyNames[propName] :
          propName;

      if (DOMMutationMethods.hasOwnProperty(propName)) {
        DOMProperty.getMutationMethod[propName] = DOMMutationMethods[propName];
      } else {
        DOMProperty.getMutationMethod[propName] = null;
      }

      var propConfig = Properties[propName];
      DOMProperty.mustUseAttribute[propName] =
        checkMask(propConfig, DOMPropertyInjection.MUST_USE_ATTRIBUTE);
      DOMProperty.mustUseProperty[propName] =
        checkMask(propConfig, DOMPropertyInjection.MUST_USE_PROPERTY);
      DOMProperty.hasSideEffects[propName] =
        checkMask(propConfig, DOMPropertyInjection.HAS_SIDE_EFFECTS);
      DOMProperty.hasBooleanValue[propName] =
        checkMask(propConfig, DOMPropertyInjection.HAS_BOOLEAN_VALUE);
      DOMProperty.hasNumericValue[propName] =
        checkMask(propConfig, DOMPropertyInjection.HAS_NUMERIC_VALUE);
      DOMProperty.hasPositiveNumericValue[propName] =
        checkMask(propConfig, DOMPropertyInjection.HAS_POSITIVE_NUMERIC_VALUE);
      DOMProperty.hasOverloadedBooleanValue[propName] =
        checkMask(propConfig, DOMPropertyInjection.HAS_OVERLOADED_BOOLEAN_VALUE);

      ("production" !== process.env.NODE_ENV ? invariant(
        !DOMProperty.mustUseAttribute[propName] ||
          !DOMProperty.mustUseProperty[propName],
        'DOMProperty: Cannot require using both attribute and property: %s',
        propName
      ) : invariant(!DOMProperty.mustUseAttribute[propName] ||
        !DOMProperty.mustUseProperty[propName]));
      ("production" !== process.env.NODE_ENV ? invariant(
        DOMProperty.mustUseProperty[propName] ||
          !DOMProperty.hasSideEffects[propName],
        'DOMProperty: Properties that have side effects must use property: %s',
        propName
      ) : invariant(DOMProperty.mustUseProperty[propName] ||
        !DOMProperty.hasSideEffects[propName]));
      ("production" !== process.env.NODE_ENV ? invariant(
        !!DOMProperty.hasBooleanValue[propName] +
          !!DOMProperty.hasNumericValue[propName] +
          !!DOMProperty.hasOverloadedBooleanValue[propName] <= 1,
        'DOMProperty: Value can be one of boolean, overloaded boolean, or ' +
        'numeric value, but not a combination: %s',
        propName
      ) : invariant(!!DOMProperty.hasBooleanValue[propName] +
        !!DOMProperty.hasNumericValue[propName] +
        !!DOMProperty.hasOverloadedBooleanValue[propName] <= 1));
    }
  }
};
var defaultValueCache = {};

/**
 * DOMProperty exports lookup objects that can be used like functions:
 *
 *   > DOMProperty.isValid['id']
 *   true
 *   > DOMProperty.isValid['foobar']
 *   undefined
 *
 * Although this may be confusing, it performs better in general.
 *
 * @see http://jsperf.com/key-exists
 * @see http://jsperf.com/key-missing
 */
var DOMProperty = {

  ID_ATTRIBUTE_NAME: 'data-reactid',

  /**
   * Checks whether a property name is a standard property.
   * @type {Object}
   */
  isStandardName: {},

  /**
   * Mapping from lowercase property names to the properly cased version, used
   * to warn in the case of missing properties.
   * @type {Object}
   */
  getPossibleStandardName: {},

  /**
   * Mapping from normalized names to attribute names that differ. Attribute
   * names are used when rendering markup or with `*Attribute()`.
   * @type {Object}
   */
  getAttributeName: {},

  /**
   * Mapping from normalized names to properties on DOM node instances.
   * (This includes properties that mutate due to external factors.)
   * @type {Object}
   */
  getPropertyName: {},

  /**
   * Mapping from normalized names to mutation methods. This will only exist if
   * mutation cannot be set simply by the property or `setAttribute()`.
   * @type {Object}
   */
  getMutationMethod: {},

  /**
   * Whether the property must be accessed and mutated as an object property.
   * @type {Object}
   */
  mustUseAttribute: {},

  /**
   * Whether the property must be accessed and mutated using `*Attribute()`.
   * (This includes anything that fails `<propName> in <element>`.)
   * @type {Object}
   */
  mustUseProperty: {},

  /**
   * Whether or not setting a value causes side effects such as triggering
   * resources to be loaded or text selection changes. We must ensure that
   * the value is only set if it has changed.
   * @type {Object}
   */
  hasSideEffects: {},

  /**
   * Whether the property should be removed when set to a falsey value.
   * @type {Object}
   */
  hasBooleanValue: {},

  /**
   * Whether the property must be numeric or parse as a
   * numeric and should be removed when set to a falsey value.
   * @type {Object}
   */
  hasNumericValue: {},

  /**
   * Whether the property must be positive numeric or parse as a positive
   * numeric and should be removed when set to a falsey value.
   * @type {Object}
   */
  hasPositiveNumericValue: {},

  /**
   * Whether the property can be used as a flag as well as with a value. Removed
   * when strictly equal to false; present without a value when strictly equal
   * to true; present with a value otherwise.
   * @type {Object}
   */
  hasOverloadedBooleanValue: {},

  /**
   * All of the isCustomAttribute() functions that have been injected.
   */
  _isCustomAttributeFunctions: [],

  /**
   * Checks whether a property name is a custom attribute.
   * @method
   */
  isCustomAttribute: function(attributeName) {
    for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) {
      var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i];
      if (isCustomAttributeFn(attributeName)) {
        return true;
      }
    }
    return false;
  },

  /**
   * Returns the default property value for a DOM property (i.e., not an
   * attribute). Most default values are '' or false, but not all. Worse yet,
   * some (in particular, `type`) vary depending on the type of element.
   *
   * TODO: Is it better to grab all the possible properties when creating an
   * element to avoid having to create the same element twice?
   */
  getDefaultValueForProperty: function(nodeName, prop) {
    var nodeDefaults = defaultValueCache[nodeName];
    var testElement;
    if (!nodeDefaults) {
      defaultValueCache[nodeName] = nodeDefaults = {};
    }
    if (!(prop in nodeDefaults)) {
      testElement = document.createElement(nodeName);
      nodeDefaults[prop] = testElement[prop];
    }
    return nodeDefaults[prop];
  },

  injection: DOMPropertyInjection
};

module.exports = DOMProperty;

}).call(this,require("1YiZ5S"))
},{"./invariant":162,"1YiZ5S":5}],23:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule DOMPropertyOperations
 * @typechecks static-only
 */

'use strict';

var DOMProperty = require("./DOMProperty");

var quoteAttributeValueForBrowser = require("./quoteAttributeValueForBrowser");
var warning = require("./warning");

function shouldIgnoreValue(name, value) {
  return value == null ||
    (DOMProperty.hasBooleanValue[name] && !value) ||
    (DOMProperty.hasNumericValue[name] && isNaN(value)) ||
    (DOMProperty.hasPositiveNumericValue[name] && (value < 1)) ||
    (DOMProperty.hasOverloadedBooleanValue[name] && value === false);
}

if ("production" !== process.env.NODE_ENV) {
  var reactProps = {
    children: true,
    dangerouslySetInnerHTML: true,
    key: true,
    ref: true
  };
  var warnedProperties = {};

  var warnUnknownProperty = function(name) {
    if (reactProps.hasOwnProperty(name) && reactProps[name] ||
        warnedProperties.hasOwnProperty(name) && warnedProperties[name]) {
      return;
    }

    warnedProperties[name] = true;
    var lowerCasedName = name.toLowerCase();

    // data-* attributes should be lowercase; suggest the lowercase version
    var standardName = (
      DOMProperty.isCustomAttribute(lowerCasedName) ?
        lowerCasedName :
      DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ?
        DOMProperty.getPossibleStandardName[lowerCasedName] :
        null
    );

    // For now, only warn when we have a suggested correction. This prevents
    // logging too much when using transferPropsTo.
    ("production" !== process.env.NODE_ENV ? warning(
      standardName == null,
      'Unknown DOM property %s. Did you mean %s?',
      name,
      standardName
    ) : null);

  };
}

/**
 * Operations for dealing with DOM properties.
 */
var DOMPropertyOperations = {

  /**
   * Creates markup for the ID property.
   *
   * @param {string} id Unescaped ID.
   * @return {string} Markup string.
   */
  createMarkupForID: function(id) {
    return DOMProperty.ID_ATTRIBUTE_NAME + '=' +
      quoteAttributeValueForBrowser(id);
  },

  /**
   * Creates markup for a property.
   *
   * @param {string} name
   * @param {*} value
   * @return {?string} Markup string, or null if the property was invalid.
   */
  createMarkupForProperty: function(name, value) {
    if (DOMProperty.isStandardName.hasOwnProperty(name) &&
        DOMProperty.isStandardName[name]) {
      if (shouldIgnoreValue(name, value)) {
        return '';
      }
      var attributeName = DOMProperty.getAttributeName[name];
      if (DOMProperty.hasBooleanValue[name] ||
          (DOMProperty.hasOverloadedBooleanValue[name] && value === true)) {
        return attributeName;
      }
      return attributeName + '=' + quoteAttributeValueForBrowser(value);
    } else if (DOMProperty.isCustomAttribute(name)) {
      if (value == null) {
        return '';
      }
      return name + '=' + quoteAttributeValueForBrowser(value);
    } else if ("production" !== process.env.NODE_ENV) {
      warnUnknownProperty(name);
    }
    return null;
  },

  /**
   * Sets the value for a property on a node.
   *
   * @param {DOMElement} node
   * @param {string} name
   * @param {*} value
   */
  setValueForProperty: function(node, name, value) {
    if (DOMProperty.isStandardName.hasOwnProperty(name) &&
        DOMProperty.isStandardName[name]) {
      var mutationMethod = DOMProperty.getMutationMethod[name];
      if (mutationMethod) {
        mutationMethod(node, value);
      } else if (shouldIgnoreValue(name, value)) {
        this.deleteValueForProperty(node, name);
      } else if (DOMProperty.mustUseAttribute[name]) {
        // `setAttribute` with objects becomes only `[object]` in IE8/9,
        // ('' + value) makes it output the correct toString()-value.
        node.setAttribute(DOMProperty.getAttributeName[name], '' + value);
      } else {
        var propName = DOMProperty.getPropertyName[name];
        // Must explicitly cast values for HAS_SIDE_EFFECTS-properties to the
        // property type before comparing; only `value` does and is string.
        if (!DOMProperty.hasSideEffects[name] ||
            ('' + node[propName]) !== ('' + value)) {
          // Contrary to `setAttribute`, object properties are properly
          // `toString`ed by IE8/9.
          node[propName] = value;
        }
      }
    } else if (DOMProperty.isCustomAttribute(name)) {
      if (value == null) {
        node.removeAttribute(name);
      } else {
        node.setAttribute(name, '' + value);
      }
    } else if ("production" !== process.env.NODE_ENV) {
      warnUnknownProperty(name);
    }
  },

  /**
   * Deletes the value for a property on a node.
   *
   * @param {DOMElement} node
   * @param {string} name
   */
  deleteValueForProperty: function(node, name) {
    if (DOMProperty.isStandardName.hasOwnProperty(name) &&
        DOMProperty.isStandardName[name]) {
      var mutationMethod = DOMProperty.getMutationMethod[name];
      if (mutationMethod) {
        mutationMethod(node, undefined);
      } else if (DOMProperty.mustUseAttribute[name]) {
        node.removeAttribute(DOMProperty.getAttributeName[name]);
      } else {
        var propName = DOMProperty.getPropertyName[name];
        var defaultValue = DOMProperty.getDefaultValueForProperty(
          node.nodeName,
          propName
        );
        if (!DOMProperty.hasSideEffects[name] ||
            ('' + node[propName]) !== defaultValue) {
          node[propName] = defaultValue;
        }
      }
    } else if (DOMProperty.isCustomAttribute(name)) {
      node.removeAttribute(name);
    } else if ("production" !== process.env.NODE_ENV) {
      warnUnknownProperty(name);
    }
  }

};

module.exports = DOMPropertyOperations;

}).call(this,require("1YiZ5S"))
},{"./DOMProperty":22,"./quoteAttributeValueForBrowser":175,"./warning":183,"1YiZ5S":5}],24:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule Danger
 * @typechecks static-only
 */

/*jslint evil: true, sub: true */

'use strict';

var ExecutionEnvironment = require("./ExecutionEnvironment");

var createNodesFromMarkup = require("./createNodesFromMarkup");
var emptyFunction = require("./emptyFunction");
var getMarkupWrap = require("./getMarkupWrap");
var invariant = require("./invariant");

var OPEN_TAG_NAME_EXP = /^(<[^ \/>]+)/;
var RESULT_INDEX_ATTR = 'data-danger-index';

/**
 * Extracts the `nodeName` from a string of markup.
 *
 * NOTE: Extracting the `nodeName` does not require a regular expression match
 * because we make assumptions about React-generated markup (i.e. there are no
 * spaces surrounding the opening tag and there is at least one attribute).
 *
 * @param {string} markup String of markup.
 * @return {string} Node name of the supplied markup.
 * @see http://jsperf.com/extract-nodename
 */
function getNodeName(markup) {
  return markup.substring(1, markup.indexOf(' '));
}

var Danger = {

  /**
   * Renders markup into an array of nodes. The markup is expected to render
   * into a list of root nodes. Also, the length of `resultList` and
   * `markupList` should be the same.
   *
   * @param {array<string>} markupList List of markup strings to render.
   * @return {array<DOMElement>} List of rendered nodes.
   * @internal
   */
  dangerouslyRenderMarkup: function(markupList) {
    ("production" !== process.env.NODE_ENV ? invariant(
      ExecutionEnvironment.canUseDOM,
      'dangerouslyRenderMarkup(...): Cannot render markup in a worker ' +
      'thread. Make sure `window` and `document` are available globally ' +
      'before requiring React when unit testing or use ' +
      'React.renderToString for server rendering.'
    ) : invariant(ExecutionEnvironment.canUseDOM));
    var nodeName;
    var markupByNodeName = {};
    // Group markup by `nodeName` if a wrap is necessary, else by '*'.
    for (var i = 0; i < markupList.length; i++) {
      ("production" !== process.env.NODE_ENV ? invariant(
        markupList[i],
        'dangerouslyRenderMarkup(...): Missing markup.'
      ) : invariant(markupList[i]));
      nodeName = getNodeName(markupList[i]);
      nodeName = getMarkupWrap(nodeName) ? nodeName : '*';
      markupByNodeName[nodeName] = markupByNodeName[nodeName] || [];
      markupByNodeName[nodeName][i] = markupList[i];
    }
    var resultList = [];
    var resultListAssignmentCount = 0;
    for (nodeName in markupByNodeName) {
      if (!markupByNodeName.hasOwnProperty(nodeName)) {
        continue;
      }
      var markupListByNodeName = markupByNodeName[nodeName];

      // This for-in loop skips the holes of the sparse array. The order of
      // iteration should follow the order of assignment, which happens to match
      // numerical index order, but we don't rely on that.
      var resultIndex;
      for (resultIndex in markupListByNodeName) {
        if (markupListByNodeName.hasOwnProperty(resultIndex)) {
          var markup = markupListByNodeName[resultIndex];

          // Push the requested markup with an additional RESULT_INDEX_ATTR
          // attribute.  If the markup does not start with a < character, it
          // will be discarded below (with an appropriate console.error).
          markupListByNodeName[resultIndex] = markup.replace(
            OPEN_TAG_NAME_EXP,
            // This index will be parsed back out below.
            '$1 ' + RESULT_INDEX_ATTR + '="' + resultIndex + '" '
          );
        }
      }

      // Render each group of markup with similar wrapping `nodeName`.
      var renderNodes = createNodesFromMarkup(
        markupListByNodeName.join(''),
        emptyFunction // Do nothing special with <script> tags.
      );

      for (var j = 0; j < renderNodes.length; ++j) {
        var renderNode = renderNodes[j];
        if (renderNode.hasAttribute &&
            renderNode.hasAttribute(RESULT_INDEX_ATTR)) {

          resultIndex = +renderNode.getAttribute(RESULT_INDEX_ATTR);
          renderNode.removeAttribute(RESULT_INDEX_ATTR);

          ("production" !== process.env.NODE_ENV ? invariant(
            !resultList.hasOwnProperty(resultIndex),
            'Danger: Assigning to an already-occupied result index.'
          ) : invariant(!resultList.hasOwnProperty(resultIndex)));

          resultList[resultIndex] = renderNode;

          // This should match resultList.length and markupList.length when
          // we're done.
          resultListAssignmentCount += 1;

        } else if ("production" !== process.env.NODE_ENV) {
          console.error(
            'Danger: Discarding unexpected node:',
            renderNode
          );
        }
      }
    }

    // Although resultList was populated out of order, it should now be a dense
    // array.
    ("production" !== process.env.NODE_ENV ? invariant(
      resultListAssignmentCount === resultList.length,
      'Danger: Did not assign to every index of resultList.'
    ) : invariant(resultListAssignmentCount === resultList.length));

    ("production" !== process.env.NODE_ENV ? invariant(
      resultList.length === markupList.length,
      'Danger: Expected markup to render %s nodes, but rendered %s.',
      markupList.length,
      resultList.length
    ) : invariant(resultList.length === markupList.length));

    return resultList;
  },

  /**
   * Replaces a node with a string of markup at its current position within its
   * parent. The markup must render into a single root node.
   *
   * @param {DOMElement} oldChild Child node to replace.
   * @param {string} markup Markup to render in place of the child node.
   * @internal
   */
  dangerouslyReplaceNodeWithMarkup: function(oldChild, markup) {
    ("production" !== process.env.NODE_ENV ? invariant(
      ExecutionEnvironment.canUseDOM,
      'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a ' +
      'worker thread. Make sure `window` and `document` are available ' +
      'globally before requiring React when unit testing or use ' +
      'React.renderToString for server rendering.'
    ) : invariant(ExecutionEnvironment.canUseDOM));
    ("production" !== process.env.NODE_ENV ? invariant(markup, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : invariant(markup));
    ("production" !== process.env.NODE_ENV ? invariant(
      oldChild.tagName.toLowerCase() !== 'html',
      'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the ' +
      '<html> node. This is because browser quirks make this unreliable ' +
      'and/or slow. If you want to render to the root you must use ' +
      'server rendering. See React.renderToString().'
    ) : invariant(oldChild.tagName.toLowerCase() !== 'html'));

    var newChild = createNodesFromMarkup(markup, emptyFunction)[0];
    oldChild.parentNode.replaceChild(newChild, oldChild);
  }

};

module.exports = Danger;

}).call(this,require("1YiZ5S"))
},{"./ExecutionEnvironment":33,"./createNodesFromMarkup":138,"./emptyFunction":141,"./getMarkupWrap":154,"./invariant":162,"1YiZ5S":5}],25:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule DefaultEventPluginOrder
 */

'use strict';

var keyOf = require("./keyOf");

/**
 * Module that is injectable into `EventPluginHub`, that specifies a
 * deterministic ordering of `EventPlugin`s. A convenient way to reason about
 * plugins, without having to package every one of them. This is better than
 * having plugins be ordered in the same order that they are injected because
 * that ordering would be influenced by the packaging order.
 * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that
 * preventing default on events is convenient in `SimpleEventPlugin` handlers.
 */
var DefaultEventPluginOrder = [
  keyOf({ResponderEventPlugin: null}),
  keyOf({SimpleEventPlugin: null}),
  keyOf({TapEventPlugin: null}),
  keyOf({EnterLeaveEventPlugin: null}),
  keyOf({ChangeEventPlugin: null}),
  keyOf({SelectEventPlugin: null}),
  keyOf({BeforeInputEventPlugin: null}),
  keyOf({AnalyticsEventPlugin: null}),
  keyOf({MobileSafariClickEventPlugin: null})
];

module.exports = DefaultEventPluginOrder;

},{"./keyOf":169}],26:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule EnterLeaveEventPlugin
 * @typechecks static-only
 */

'use strict';

var EventConstants = require("./EventConstants");
var EventPropagators = require("./EventPropagators");
var SyntheticMouseEvent = require("./SyntheticMouseEvent");

var ReactMount = require("./ReactMount");
var keyOf = require("./keyOf");

var topLevelTypes = EventConstants.topLevelTypes;
var getFirstReactDOM = ReactMount.getFirstReactDOM;

var eventTypes = {
  mouseEnter: {
    registrationName: keyOf({onMouseEnter: null}),
    dependencies: [
      topLevelTypes.topMouseOut,
      topLevelTypes.topMouseOver
    ]
  },
  mouseLeave: {
    registrationName: keyOf({onMouseLeave: null}),
    dependencies: [
      topLevelTypes.topMouseOut,
      topLevelTypes.topMouseOver
    ]
  }
};

var extractedEvents = [null, null];

var EnterLeaveEventPlugin = {

  eventTypes: eventTypes,

  /**
   * For almost every interaction we care about, there will be both a top-level
   * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that
   * we do not extract duplicate events. However, moving the mouse into the
   * browser from outside will not fire a `mouseout` event. In this case, we use
   * the `mouseover` top-level event.
   *
   * @param {string} topLevelType Record from `EventConstants`.
   * @param {DOMEventTarget} topLevelTarget The listening component root node.
   * @param {string} topLevelTargetID ID of `topLevelTarget`.
   * @param {object} nativeEvent Native browser event.
   * @return {*} An accumulation of synthetic events.
   * @see {EventPluginHub.extractEvents}
   */
  extractEvents: function(
      topLevelType,
      topLevelTarget,
      topLevelTargetID,
      nativeEvent) {
    if (topLevelType === topLevelTypes.topMouseOver &&
        (nativeEvent.relatedTarget || nativeEvent.fromElement)) {
      return null;
    }
    if (topLevelType !== topLevelTypes.topMouseOut &&
        topLevelType !== topLevelTypes.topMouseOver) {
      // Must not be a mouse in or mouse out - ignoring.
      return null;
    }

    var win;
    if (topLevelTarget.window === topLevelTarget) {
      // `topLevelTarget` is probably a window object.
      win = topLevelTarget;
    } else {
      // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.
      var doc = topLevelTarget.ownerDocument;
      if (doc) {
        win = doc.defaultView || doc.parentWindow;
      } else {
        win = window;
      }
    }

    var from, to;
    if (topLevelType === topLevelTypes.topMouseOut) {
      from = topLevelTarget;
      to =
        getFirstReactDOM(nativeEvent.relatedTarget || nativeEvent.toElement) ||
        win;
    } else {
      from = win;
      to = topLevelTarget;
    }

    if (from === to) {
      // Nothing pertains to our managed components.
      return null;
    }

    var fromID = from ? ReactMount.getID(from) : '';
    var toID = to ? ReactMount.getID(to) : '';

    var leave = SyntheticMouseEvent.getPooled(
      eventTypes.mouseLeave,
      fromID,
      nativeEvent
    );
    leave.type = 'mouseleave';
    leave.target = from;
    leave.relatedTarget = to;

    var enter = SyntheticMouseEvent.getPooled(
      eventTypes.mouseEnter,
      toID,
      nativeEvent
    );
    enter.type = 'mouseenter';
    enter.target = to;
    enter.relatedTarget = from;

    EventPropagators.accumulateEnterLeaveDispatches(leave, enter, fromID, toID);

    extractedEvents[0] = leave;
    extractedEvents[1] = enter;

    return extractedEvents;
  }

};

module.exports = EnterLeaveEventPlugin;

},{"./EventConstants":27,"./EventPropagators":32,"./ReactMount":88,"./SyntheticMouseEvent":124,"./keyOf":169}],27:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule EventConstants
 */

'use strict';

var keyMirror = require("./keyMirror");

var PropagationPhases = keyMirror({bubbled: null, captured: null});

/**
 * Types of raw signals from the browser caught at the top level.
 */
var topLevelTypes = keyMirror({
  topBlur: null,
  topChange: null,
  topClick: null,
  topCompositionEnd: null,
  topCompositionStart: null,
  topCompositionUpdate: null,
  topContextMenu: null,
  topCopy: null,
  topCut: null,
  topDoubleClick: null,
  topDrag: null,
  topDragEnd: null,
  topDragEnter: null,
  topDragExit: null,
  topDragLeave: null,
  topDragOver: null,
  topDragStart: null,
  topDrop: null,
  topError: null,
  topFocus: null,
  topInput: null,
  topKeyDown: null,
  topKeyPress: null,
  topKeyUp: null,
  topLoad: null,
  topMouseDown: null,
  topMouseMove: null,
  topMouseOut: null,
  topMouseOver: null,
  topMouseUp: null,
  topPaste: null,
  topReset: null,
  topScroll: null,
  topSelectionChange: null,
  topSubmit: null,
  topTextInput: null,
  topTouchCancel: null,
  topTouchEnd: null,
  topTouchMove: null,
  topTouchStart: null,
  topWheel: null
});

var EventConstants = {
  topLevelTypes: topLevelTypes,
  PropagationPhases: PropagationPhases
};

module.exports = EventConstants;

},{"./keyMirror":168}],28:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * @providesModule EventListener
 * @typechecks
 */

var emptyFunction = require("./emptyFunction");

/**
 * Upstream version of event listener. Does not take into account specific
 * nature of platform.
 */
var EventListener = {
  /**
   * Listen to DOM events during the bubble phase.
   *
   * @param {DOMEventTarget} target DOM element to register listener on.
   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.
   * @param {function} callback Callback function.
   * @return {object} Object with a `remove` method.
   */
  listen: function(target, eventType, callback) {
    if (target.addEventListener) {
      target.addEventListener(eventType, callback, false);
      return {
        remove: function() {
          target.removeEventListener(eventType, callback, false);
        }
      };
    } else if (target.attachEvent) {
      target.attachEvent('on' + eventType, callback);
      return {
        remove: function() {
          target.detachEvent('on' + eventType, callback);
        }
      };
    }
  },

  /**
   * Listen to DOM events during the capture phase.
   *
   * @param {DOMEventTarget} target DOM element to register listener on.
   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.
   * @param {function} callback Callback function.
   * @return {object} Object with a `remove` method.
   */
  capture: function(target, eventType, callback) {
    if (!target.addEventListener) {
      if ("production" !== process.env.NODE_ENV) {
        console.error(
          'Attempted to listen to events during the capture phase on a ' +
          'browser that does not support the capture phase. Your application ' +
          'will not receive some events.'
        );
      }
      return {
        remove: emptyFunction
      };
    } else {
      target.addEventListener(eventType, callback, true);
      return {
        remove: function() {
          target.removeEventListener(eventType, callback, true);
        }
      };
    }
  },

  registerDefault: function() {}
};

module.exports = EventListener;

}).call(this,require("1YiZ5S"))
},{"./emptyFunction":141,"1YiZ5S":5}],29:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule EventPluginHub
 */

'use strict';

var EventPluginRegistry = require("./EventPluginRegistry");
var EventPluginUtils = require("./EventPluginUtils");

var accumulateInto = require("./accumulateInto");
var forEachAccumulated = require("./forEachAccumulated");
var invariant = require("./invariant");

/**
 * Internal store for event listeners
 */
var listenerBank = {};

/**
 * Internal queue of events that have accumulated their dispatches and are
 * waiting to have their dispatches executed.
 */
var eventQueue = null;

/**
 * Dispatches an event and releases it back into the pool, unless persistent.
 *
 * @param {?object} event Synthetic event to be dispatched.
 * @private
 */
var executeDispatchesAndRelease = function(event) {
  if (event) {
    var executeDispatch = EventPluginUtils.executeDispatch;
    // Plugins can provide custom behavior when dispatching events.
    var PluginModule = EventPluginRegistry.getPluginModuleForEvent(event);
    if (PluginModule && PluginModule.executeDispatch) {
      executeDispatch = PluginModule.executeDispatch;
    }
    EventPluginUtils.executeDispatchesInOrder(event, executeDispatch);

    if (!event.isPersistent()) {
      event.constructor.release(event);
    }
  }
};

/**
 * - `InstanceHandle`: [required] Module that performs logical traversals of DOM
 *   hierarchy given ids of the logical DOM elements involved.
 */
var InstanceHandle = null;

function validateInstanceHandle() {
  var valid =
    InstanceHandle &&
    InstanceHandle.traverseTwoPhase &&
    InstanceHandle.traverseEnterLeave;
  ("production" !== process.env.NODE_ENV ? invariant(
    valid,
    'InstanceHandle not injected before use!'
  ) : invariant(valid));
}

/**
 * This is a unified interface for event plugins to be installed and configured.
 *
 * Event plugins can implement the following properties:
 *
 *   `extractEvents` {function(string, DOMEventTarget, string, object): *}
 *     Required. When a top-level event is fired, this method is expected to
 *     extract synthetic events that will in turn be queued and dispatched.
 *
 *   `eventTypes` {object}
 *     Optional, plugins that fire events must publish a mapping of registration
 *     names that are used to register listeners. Values of this mapping must
 *     be objects that contain `registrationName` or `phasedRegistrationNames`.
 *
 *   `executeDispatch` {function(object, function, string)}
 *     Optional, allows plugins to override how an event gets dispatched. By
 *     default, the listener is simply invoked.
 *
 * Each plugin that is injected into `EventsPluginHub` is immediately operable.
 *
 * @public
 */
var EventPluginHub = {

  /**
   * Methods for injecting dependencies.
   */
  injection: {

    /**
     * @param {object} InjectedMount
     * @public
     */
    injectMount: EventPluginUtils.injection.injectMount,

    /**
     * @param {object} InjectedInstanceHandle
     * @public
     */
    injectInstanceHandle: function(InjectedInstanceHandle) {
      InstanceHandle = InjectedInstanceHandle;
      if ("production" !== process.env.NODE_ENV) {
        validateInstanceHandle();
      }
    },

    getInstanceHandle: function() {
      if ("production" !== process.env.NODE_ENV) {
        validateInstanceHandle();
      }
      return InstanceHandle;
    },

    /**
     * @param {array} InjectedEventPluginOrder
     * @public
     */
    injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder,

    /**
     * @param {object} injectedNamesToPlugins Map from names to plugin modules.
     */
    injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName

  },

  eventNameDispatchConfigs: EventPluginRegistry.eventNameDispatchConfigs,

  registrationNameModules: EventPluginRegistry.registrationNameModules,

  /**
   * Stores `listener` at `listenerBank[registrationName][id]`. Is idempotent.
   *
   * @param {string} id ID of the DOM element.
   * @param {string} registrationName Name of listener (e.g. `onClick`).
   * @param {?function} listener The callback to store.
   */
  putListener: function(id, registrationName, listener) {
    ("production" !== process.env.NODE_ENV ? invariant(
      !listener || typeof listener === 'function',
      'Expected %s listener to be a function, instead got type %s',
      registrationName, typeof listener
    ) : invariant(!listener || typeof listener === 'function'));

    var bankForRegistrationName =
      listenerBank[registrationName] || (listenerBank[registrationName] = {});
    bankForRegistrationName[id] = listener;
  },

  /**
   * @param {string} id ID of the DOM element.
   * @param {string} registrationName Name of listener (e.g. `onClick`).
   * @return {?function} The stored callback.
   */
  getListener: function(id, registrationName) {
    var bankForRegistrationName = listenerBank[registrationName];
    return bankForRegistrationName && bankForRegistrationName[id];
  },

  /**
   * Deletes a listener from the registration bank.
   *
   * @param {string} id ID of the DOM element.
   * @param {string} registrationName Name of listener (e.g. `onClick`).
   */
  deleteListener: function(id, registrationName) {
    var bankForRegistrationName = listenerBank[registrationName];
    if (bankForRegistrationName) {
      delete bankForRegistrationName[id];
    }
  },

  /**
   * Deletes all listeners for the DOM element with the supplied ID.
   *
   * @param {string} id ID of the DOM element.
   */
  deleteAllListeners: function(id) {
    for (var registrationName in listenerBank) {
      delete listenerBank[registrationName][id];
    }
  },

  /**
   * Allows registered plugins an opportunity to extract events from top-level
   * native browser events.
   *
   * @param {string} topLevelType Record from `EventConstants`.
   * @param {DOMEventTarget} topLevelTarget The listening component root node.
   * @param {string} topLevelTargetID ID of `topLevelTarget`.
   * @param {object} nativeEvent Native browser event.
   * @return {*} An accumulation of synthetic events.
   * @internal
   */
  extractEvents: function(
      topLevelType,
      topLevelTarget,
      topLevelTargetID,
      nativeEvent) {
    var events;
    var plugins = EventPluginRegistry.plugins;
    for (var i = 0, l = plugins.length; i < l; i++) {
      // Not every plugin in the ordering may be loaded at runtime.
      var possiblePlugin = plugins[i];
      if (possiblePlugin) {
        var extractedEvents = possiblePlugin.extractEvents(
          topLevelType,
          topLevelTarget,
          topLevelTargetID,
          nativeEvent
        );
        if (extractedEvents) {
          events = accumulateInto(events, extractedEvents);
        }
      }
    }
    return events;
  },

  /**
   * Enqueues a synthetic event that should be dispatched when
   * `processEventQueue` is invoked.
   *
   * @param {*} events An accumulation of synthetic events.
   * @internal
   */
  enqueueEvents: function(events) {
    if (events) {
      eventQueue = accumulateInto(eventQueue, events);
    }
  },

  /**
   * Dispatches all synthetic events on the event queue.
   *
   * @internal
   */
  processEventQueue: function() {
    // Set `eventQueue` to null before processing it so that we can tell if more
    // events get enqueued while processing.
    var processingEventQueue = eventQueue;
    eventQueue = null;
    forEachAccumulated(processingEventQueue, executeDispatchesAndRelease);
    ("production" !== process.env.NODE_ENV ? invariant(
      !eventQueue,
      'processEventQueue(): Additional events were enqueued while processing ' +
      'an event queue. Support for this has not yet been implemented.'
    ) : invariant(!eventQueue));
  },

  /**
   * These are needed for tests only. Do not use!
   */
  __purge: function() {
    listenerBank = {};
  },

  __getListenerBank: function() {
    return listenerBank;
  }

};

module.exports = EventPluginHub;

}).call(this,require("1YiZ5S"))
},{"./EventPluginRegistry":30,"./EventPluginUtils":31,"./accumulateInto":130,"./forEachAccumulated":147,"./invariant":162,"1YiZ5S":5}],30:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule EventPluginRegistry
 * @typechecks static-only
 */

'use strict';

var invariant = require("./invariant");

/**
 * Injectable ordering of event plugins.
 */
var EventPluginOrder = null;

/**
 * Injectable mapping from names to event plugin modules.
 */
var namesToPlugins = {};

/**
 * Recomputes the plugin list using the injected plugins and plugin ordering.
 *
 * @private
 */
function recomputePluginOrdering() {
  if (!EventPluginOrder) {
    // Wait until an `EventPluginOrder` is injected.
    return;
  }
  for (var pluginName in namesToPlugins) {
    var PluginModule = namesToPlugins[pluginName];
    var pluginIndex = EventPluginOrder.indexOf(pluginName);
    ("production" !== process.env.NODE_ENV ? invariant(
      pluginIndex > -1,
      'EventPluginRegistry: Cannot inject event plugins that do not exist in ' +
      'the plugin ordering, `%s`.',
      pluginName
    ) : invariant(pluginIndex > -1));
    if (EventPluginRegistry.plugins[pluginIndex]) {
      continue;
    }
    ("production" !== process.env.NODE_ENV ? invariant(
      PluginModule.extractEvents,
      'EventPluginRegistry: Event plugins must implement an `extractEvents` ' +
      'method, but `%s` does not.',
      pluginName
    ) : invariant(PluginModule.extractEvents));
    EventPluginRegistry.plugins[pluginIndex] = PluginModule;
    var publishedEvents = PluginModule.eventTypes;
    for (var eventName in publishedEvents) {
      ("production" !== process.env.NODE_ENV ? invariant(
        publishEventForPlugin(
          publishedEvents[eventName],
          PluginModule,
          eventName
        ),
        'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.',
        eventName,
        pluginName
      ) : invariant(publishEventForPlugin(
        publishedEvents[eventName],
        PluginModule,
        eventName
      )));
    }
  }
}

/**
 * Publishes an event so that it can be dispatched by the supplied plugin.
 *
 * @param {object} dispatchConfig Dispatch configuration for the event.
 * @param {object} PluginModule Plugin publishing the event.
 * @return {boolean} True if the event was successfully published.
 * @private
 */
function publishEventForPlugin(dispatchConfig, PluginModule, eventName) {
  ("production" !== process.env.NODE_ENV ? invariant(
    !EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName),
    'EventPluginHub: More than one plugin attempted to publish the same ' +
    'event name, `%s`.',
    eventName
  ) : invariant(!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName)));
  EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig;

  var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;
  if (phasedRegistrationNames) {
    for (var phaseName in phasedRegistrationNames) {
      if (phasedRegistrationNames.hasOwnProperty(phaseName)) {
        var phasedRegistrationName = phasedRegistrationNames[phaseName];
        publishRegistrationName(
          phasedRegistrationName,
          PluginModule,
          eventName
        );
      }
    }
    return true;
  } else if (dispatchConfig.registrationName) {
    publishRegistrationName(
      dispatchConfig.registrationName,
      PluginModule,
      eventName
    );
    return true;
  }
  return false;
}

/**
 * Publishes a registration name that is used to identify dispatched events and
 * can be used with `EventPluginHub.putListener` to register listeners.
 *
 * @param {string} registrationName Registration name to add.
 * @param {object} PluginModule Plugin publishing the event.
 * @private
 */
function publishRegistrationName(registrationName, PluginModule, eventName) {
  ("production" !== process.env.NODE_ENV ? invariant(
    !EventPluginRegistry.registrationNameModules[registrationName],
    'EventPluginHub: More than one plugin attempted to publish the same ' +
    'registration name, `%s`.',
    registrationName
  ) : invariant(!EventPluginRegistry.registrationNameModules[registrationName]));
  EventPluginRegistry.registrationNameModules[registrationName] = PluginModule;
  EventPluginRegistry.registrationNameDependencies[registrationName] =
    PluginModule.eventTypes[eventName].dependencies;
}

/**
 * Registers plugins so that they can extract and dispatch events.
 *
 * @see {EventPluginHub}
 */
var EventPluginRegistry = {

  /**
   * Ordered list of injected plugins.
   */
  plugins: [],

  /**
   * Mapping from event name to dispatch config
   */
  eventNameDispatchConfigs: {},

  /**
   * Mapping from registration name to plugin module
   */
  registrationNameModules: {},

  /**
   * Mapping from registration name to event name
   */
  registrationNameDependencies: {},

  /**
   * Injects an ordering of plugins (by plugin name). This allows the ordering
   * to be decoupled from injection of the actual plugins so that ordering is
   * always deterministic regardless of packaging, on-the-fly injection, etc.
   *
   * @param {array} InjectedEventPluginOrder
   * @internal
   * @see {EventPluginHub.injection.injectEventPluginOrder}
   */
  injectEventPluginOrder: function(InjectedEventPluginOrder) {
    ("production" !== process.env.NODE_ENV ? invariant(
      !EventPluginOrder,
      'EventPluginRegistry: Cannot inject event plugin ordering more than ' +
      'once. You are likely trying to load more than one copy of React.'
    ) : invariant(!EventPluginOrder));
    // Clone the ordering so it cannot be dynamically mutated.
    EventPluginOrder = Array.prototype.slice.call(InjectedEventPluginOrder);
    recomputePluginOrdering();
  },

  /**
   * Injects plugins to be used by `EventPluginHub`. The plugin names must be
   * in the ordering injected by `injectEventPluginOrder`.
   *
   * Plugins can be injected as part of page initialization or on-the-fly.
   *
   * @param {object} injectedNamesToPlugins Map from names to plugin modules.
   * @internal
   * @see {EventPluginHub.injection.injectEventPluginsByName}
   */
  injectEventPluginsByName: function(injectedNamesToPlugins) {
    var isOrderingDirty = false;
    for (var pluginName in injectedNamesToPlugins) {
      if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {
        continue;
      }
      var PluginModule = injectedNamesToPlugins[pluginName];
      if (!namesToPlugins.hasOwnProperty(pluginName) ||
          namesToPlugins[pluginName] !== PluginModule) {
        ("production" !== process.env.NODE_ENV ? invariant(
          !namesToPlugins[pluginName],
          'EventPluginRegistry: Cannot inject two different event plugins ' +
          'using the same name, `%s`.',
          pluginName
        ) : invariant(!namesToPlugins[pluginName]));
        namesToPlugins[pluginName] = PluginModule;
        isOrderingDirty = true;
      }
    }
    if (isOrderingDirty) {
      recomputePluginOrdering();
    }
  },

  /**
   * Looks up the plugin for the supplied event.
   *
   * @param {object} event A synthetic event.
   * @return {?object} The plugin that created the supplied event.
   * @internal
   */
  getPluginModuleForEvent: function(event) {
    var dispatchConfig = event.dispatchConfig;
    if (dispatchConfig.registrationName) {
      return EventPluginRegistry.registrationNameModules[
        dispatchConfig.registrationName
      ] || null;
    }
    for (var phase in dispatchConfig.phasedRegistrationNames) {
      if (!dispatchConfig.phasedRegistrationNames.hasOwnProperty(phase)) {
        continue;
      }
      var PluginModule = EventPluginRegistry.registrationNameModules[
        dispatchConfig.phasedRegistrationNames[phase]
      ];
      if (PluginModule) {
        return PluginModule;
      }
    }
    return null;
  },

  /**
   * Exposed for unit testing.
   * @private
   */
  _resetEventPlugins: function() {
    EventPluginOrder = null;
    for (var pluginName in namesToPlugins) {
      if (namesToPlugins.hasOwnProperty(pluginName)) {
        delete namesToPlugins[pluginName];
      }
    }
    EventPluginRegistry.plugins.length = 0;

    var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs;
    for (var eventName in eventNameDispatchConfigs) {
      if (eventNameDispatchConfigs.hasOwnProperty(eventName)) {
        delete eventNameDispatchConfigs[eventName];
      }
    }

    var registrationNameModules = EventPluginRegistry.registrationNameModules;
    for (var registrationName in registrationNameModules) {
      if (registrationNameModules.hasOwnProperty(registrationName)) {
        delete registrationNameModules[registrationName];
      }
    }
  }

};

module.exports = EventPluginRegistry;

}).call(this,require("1YiZ5S"))
},{"./invariant":162,"1YiZ5S":5}],31:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule EventPluginUtils
 */

'use strict';

var EventConstants = require("./EventConstants");

var invariant = require("./invariant");

/**
 * Injected dependencies:
 */

/**
 * - `Mount`: [required] Module that can convert between React dom IDs and
 *   actual node references.
 */
var injection = {
  Mount: null,
  injectMount: function(InjectedMount) {
    injection.Mount = InjectedMount;
    if ("production" !== process.env.NODE_ENV) {
      ("production" !== process.env.NODE_ENV ? invariant(
        InjectedMount && InjectedMount.getNode,
        'EventPluginUtils.injection.injectMount(...): Injected Mount module ' +
        'is missing getNode.'
      ) : invariant(InjectedMount && InjectedMount.getNode));
    }
  }
};

var topLevelTypes = EventConstants.topLevelTypes;

function isEndish(topLevelType) {
  return topLevelType === topLevelTypes.topMouseUp ||
         topLevelType === topLevelTypes.topTouchEnd ||
         topLevelType === topLevelTypes.topTouchCancel;
}

function isMoveish(topLevelType) {
  return topLevelType === topLevelTypes.topMouseMove ||
         topLevelType === topLevelTypes.topTouchMove;
}
function isStartish(topLevelType) {
  return topLevelType === topLevelTypes.topMouseDown ||
         topLevelType === topLevelTypes.topTouchStart;
}


var validateEventDispatches;
if ("production" !== process.env.NODE_ENV) {
  validateEventDispatches = function(event) {
    var dispatchListeners = event._dispatchListeners;
    var dispatchIDs = event._dispatchIDs;

    var listenersIsArr = Array.isArray(dispatchListeners);
    var idsIsArr = Array.isArray(dispatchIDs);
    var IDsLen = idsIsArr ? dispatchIDs.length : dispatchIDs ? 1 : 0;
    var listenersLen = listenersIsArr ?
      dispatchListeners.length :
      dispatchListeners ? 1 : 0;

    ("production" !== process.env.NODE_ENV ? invariant(
      idsIsArr === listenersIsArr && IDsLen === listenersLen,
      'EventPluginUtils: Invalid `event`.'
    ) : invariant(idsIsArr === listenersIsArr && IDsLen === listenersLen));
  };
}

/**
 * Invokes `cb(event, listener, id)`. Avoids using call if no scope is
 * provided. The `(listener,id)` pair effectively forms the "dispatch" but are
 * kept separate to conserve memory.
 */
function forEachEventDispatch(event, cb) {
  var dispatchListeners = event._dispatchListeners;
  var dispatchIDs = event._dispatchIDs;
  if ("production" !== process.env.NODE_ENV) {
    validateEventDispatches(event);
  }
  if (Array.isArray(dispatchListeners)) {
    for (var i = 0; i < dispatchListeners.length; i++) {
      if (event.isPropagationStopped()) {
        break;
      }
      // Listeners and IDs are two parallel arrays that are always in sync.
      cb(event, dispatchListeners[i], dispatchIDs[i]);
    }
  } else if (dispatchListeners) {
    cb(event, dispatchListeners, dispatchIDs);
  }
}

/**
 * Default implementation of PluginModule.executeDispatch().
 * @param {SyntheticEvent} SyntheticEvent to handle
 * @param {function} Application-level callback
 * @param {string} domID DOM id to pass to the callback.
 */
function executeDispatch(event, listener, domID) {
  event.currentTarget = injection.Mount.getNode(domID);
  var returnValue = listener(event, domID);
  event.currentTarget = null;
  return returnValue;
}

/**
 * Standard/simple iteration through an event's collected dispatches.
 */
function executeDispatchesInOrder(event, cb) {
  forEachEventDispatch(event, cb);
  event._dispatchListeners = null;
  event._dispatchIDs = null;
}

/**
 * Standard/simple iteration through an event's collected dispatches, but stops
 * at the first dispatch execution returning true, and returns that id.
 *
 * @return id of the first dispatch execution who's listener returns true, or
 * null if no listener returned true.
 */
function executeDispatchesInOrderStopAtTrueImpl(event) {
  var dispatchListeners = event._dispatchListeners;
  var dispatchIDs = event._dispatchIDs;
  if ("production" !== process.env.NODE_ENV) {
    validateEventDispatches(event);
  }
  if (Array.isArray(dispatchListeners)) {
    for (var i = 0; i < dispatchListeners.length; i++) {
      if (event.isPropagationStopped()) {
        break;
      }
      // Listeners and IDs are two parallel arrays that are always in sync.
      if (dispatchListeners[i](event, dispatchIDs[i])) {
        return dispatchIDs[i];
      }
    }
  } else if (dispatchListeners) {
    if (dispatchListeners(event, dispatchIDs)) {
      return dispatchIDs;
    }
  }
  return null;
}

/**
 * @see executeDispatchesInOrderStopAtTrueImpl
 */
function executeDispatchesInOrderStopAtTrue(event) {
  var ret = executeDispatchesInOrderStopAtTrueImpl(event);
  event._dispatchIDs = null;
  event._dispatchListeners = null;
  return ret;
}

/**
 * Execution of a "direct" dispatch - there must be at most one dispatch
 * accumulated on the event or it is considered an error. It doesn't really make
 * sense for an event with multiple dispatches (bubbled) to keep track of the
 * return values at each dispatch execution, but it does tend to make sense when
 * dealing with "direct" dispatches.
 *
 * @return The return value of executing the single dispatch.
 */
function executeDirectDispatch(event) {
  if ("production" !== process.env.NODE_ENV) {
    validateEventDispatches(event);
  }
  var dispatchListener = event._dispatchListeners;
  var dispatchID = event._dispatchIDs;
  ("production" !== process.env.NODE_ENV ? invariant(
    !Array.isArray(dispatchListener),
    'executeDirectDispatch(...): Invalid `event`.'
  ) : invariant(!Array.isArray(dispatchListener)));
  var res = dispatchListener ?
    dispatchListener(event, dispatchID) :
    null;
  event._dispatchListeners = null;
  event._dispatchIDs = null;
  return res;
}

/**
 * @param {SyntheticEvent} event
 * @return {bool} True iff number of dispatches accumulated is greater than 0.
 */
function hasDispatches(event) {
  return !!event._dispatchListeners;
}

/**
 * General utilities that are useful in creating custom Event Plugins.
 */
var EventPluginUtils = {
  isEndish: isEndish,
  isMoveish: isMoveish,
  isStartish: isStartish,

  executeDirectDispatch: executeDirectDispatch,
  executeDispatch: executeDispatch,
  executeDispatchesInOrder: executeDispatchesInOrder,
  executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue,
  hasDispatches: hasDispatches,
  injection: injection,
  useTouchEvents: false
};

module.exports = EventPluginUtils;

}).call(this,require("1YiZ5S"))
},{"./EventConstants":27,"./invariant":162,"1YiZ5S":5}],32:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule EventPropagators
 */

'use strict';

var EventConstants = require("./EventConstants");
var EventPluginHub = require("./EventPluginHub");

var accumulateInto = require("./accumulateInto");
var forEachAccumulated = require("./forEachAccumulated");

var PropagationPhases = EventConstants.PropagationPhases;
var getListener = EventPluginHub.getListener;

/**
 * Some event types have a notion of different registration names for different
 * "phases" of propagation. This finds listeners by a given phase.
 */
function listenerAtPhase(id, event, propagationPhase) {
  var registrationName =
    event.dispatchConfig.phasedRegistrationNames[propagationPhase];
  return getListener(id, registrationName);
}

/**
 * Tags a `SyntheticEvent` with dispatched listeners. Creating this function
 * here, allows us to not have to bind or create functions for each event.
 * Mutating the event's members allows us to not have to create a wrapping
 * "dispatch" object that pairs the event with the listener.
 */
function accumulateDirectionalDispatches(domID, upwards, event) {
  if ("production" !== process.env.NODE_ENV) {
    if (!domID) {
      throw new Error('Dispatching id must not be null');
    }
  }
  var phase = upwards ? PropagationPhases.bubbled : PropagationPhases.captured;
  var listener = listenerAtPhase(domID, event, phase);
  if (listener) {
    event._dispatchListeners =
      accumulateInto(event._dispatchListeners, listener);
    event._dispatchIDs = accumulateInto(event._dispatchIDs, domID);
  }
}

/**
 * Collect dispatches (must be entirely collected before dispatching - see unit
 * tests). Lazily allocate the array to conserve memory.  We must loop through
 * each event and perform the traversal for each one. We can not perform a
 * single traversal for the entire collection of events because each event may
 * have a different target.
 */
function accumulateTwoPhaseDispatchesSingle(event) {
  if (event && event.dispatchConfig.phasedRegistrationNames) {
    EventPluginHub.injection.getInstanceHandle().traverseTwoPhase(
      event.dispatchMarker,
      accumulateDirectionalDispatches,
      event
    );
  }
}


/**
 * Accumulates without regard to direction, does not look for phased
 * registration names. Same as `accumulateDirectDispatchesSingle` but without
 * requiring that the `dispatchMarker` be the same as the dispatched ID.
 */
function accumulateDispatches(id, ignoredDirection, event) {
  if (event && event.dispatchConfig.registrationName) {
    var registrationName = event.dispatchConfig.registrationName;
    var listener = getListener(id, registrationName);
    if (listener) {
      event._dispatchListeners =
        accumulateInto(event._dispatchListeners, listener);
      event._dispatchIDs = accumulateInto(event._dispatchIDs, id);
    }
  }
}

/**
 * Accumulates dispatches on an `SyntheticEvent`, but only for the
 * `dispatchMarker`.
 * @param {SyntheticEvent} event
 */
function accumulateDirectDispatchesSingle(event) {
  if (event && event.dispatchConfig.registrationName) {
    accumulateDispatches(event.dispatchMarker, null, event);
  }
}

function accumulateTwoPhaseDispatches(events) {
  forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);
}

function accumulateEnterLeaveDispatches(leave, enter, fromID, toID) {
  EventPluginHub.injection.getInstanceHandle().traverseEnterLeave(
    fromID,
    toID,
    accumulateDispatches,
    leave,
    enter
  );
}


function accumulateDirectDispatches(events) {
  forEachAccumulated(events, accumulateDirectDispatchesSingle);
}



/**
 * A small set of propagation patterns, each of which will accept a small amount
 * of information, and generate a set of "dispatch ready event objects" - which
 * are sets of events that have already been annotated with a set of dispatched
 * listener functions/ids. The API is designed this way to discourage these
 * propagation strategies from actually executing the dispatches, since we
 * always want to collect the entire set of dispatches before executing event a
 * single one.
 *
 * @constructor EventPropagators
 */
var EventPropagators = {
  accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches,
  accumulateDirectDispatches: accumulateDirectDispatches,
  accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches
};

module.exports = EventPropagators;

}).call(this,require("1YiZ5S"))
},{"./EventConstants":27,"./EventPluginHub":29,"./accumulateInto":130,"./forEachAccumulated":147,"1YiZ5S":5}],33:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ExecutionEnvironment
 */

/*jslint evil: true */

"use strict";

var canUseDOM = !!(
  (typeof window !== 'undefined' &&
  window.document && window.document.createElement)
);

/**
 * Simple, lightweight module assisting with the detection and context of
 * Worker. Helps avoid circular dependencies and allows code to reason about
 * whether or not they are in a Worker, even if they never include the main
 * `ReactWorker` dependency.
 */
var ExecutionEnvironment = {

  canUseDOM: canUseDOM,

  canUseWorkers: typeof Worker !== 'undefined',

  canUseEventListeners:
    canUseDOM && !!(window.addEventListener || window.attachEvent),

  canUseViewport: canUseDOM && !!window.screen,

  isInWorker: !canUseDOM // For now, this is true - might change in the future.

};

module.exports = ExecutionEnvironment;

},{}],34:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule FallbackCompositionState
 * @typechecks static-only
 */

'use strict';

var PooledClass = require("./PooledClass");

var assign = require("./Object.assign");
var getTextContentAccessor = require("./getTextContentAccessor");

/**
 * This helper class stores information about text content of a target node,
 * allowing comparison of content before and after a given event.
 *
 * Identify the node where selection currently begins, then observe
 * both its text content and its current position in the DOM. Since the
 * browser may natively replace the target node during composition, we can
 * use its position to find its replacement.
 *
 * @param {DOMEventTarget} root
 */
function FallbackCompositionState(root) {
  this._root = root;
  this._startText = this.getText();
  this._fallbackText = null;
}

assign(FallbackCompositionState.prototype, {
  /**
   * Get current text of input.
   *
   * @return {string}
   */
  getText: function() {
    if ('value' in this._root) {
      return this._root.value;
    }
    return this._root[getTextContentAccessor()];
  },

  /**
   * Determine the differing substring between the initially stored
   * text content and the current content.
   *
   * @return {string}
   */
  getData: function() {
    if (this._fallbackText) {
      return this._fallbackText;
    }

    var start;
    var startValue = this._startText;
    var startLength = startValue.length;
    var end;
    var endValue = this.getText();
    var endLength = endValue.length;

    for (start = 0; start < startLength; start++) {
      if (startValue[start] !== endValue[start]) {
        break;
      }
    }

    var minEnd = startLength - start;
    for (end = 1; end <= minEnd; end++) {
      if (startValue[startLength - end] !== endValue[endLength - end]) {
        break;
      }
    }

    var sliceTail = end > 1 ? 1 - end : undefined;
    this._fallbackText = endValue.slice(start, sliceTail);
    return this._fallbackText;
  }
});

PooledClass.addPoolingTo(FallbackCompositionState);

module.exports = FallbackCompositionState;

},{"./Object.assign":40,"./PooledClass":41,"./getTextContentAccessor":157}],35:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule HTMLDOMPropertyConfig
 */

/*jslint bitwise: true*/

'use strict';

var DOMProperty = require("./DOMProperty");
var ExecutionEnvironment = require("./ExecutionEnvironment");

var MUST_USE_ATTRIBUTE = DOMProperty.injection.MUST_USE_ATTRIBUTE;
var MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY;
var HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE;
var HAS_SIDE_EFFECTS = DOMProperty.injection.HAS_SIDE_EFFECTS;
var HAS_NUMERIC_VALUE = DOMProperty.injection.HAS_NUMERIC_VALUE;
var HAS_POSITIVE_NUMERIC_VALUE =
  DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE;
var HAS_OVERLOADED_BOOLEAN_VALUE =
  DOMProperty.injection.HAS_OVERLOADED_BOOLEAN_VALUE;

var hasSVG;
if (ExecutionEnvironment.canUseDOM) {
  var implementation = document.implementation;
  hasSVG = (
    implementation &&
    implementation.hasFeature &&
    implementation.hasFeature(
      'http://www.w3.org/TR/SVG11/feature#BasicStructure',
      '1.1'
    )
  );
}


var HTMLDOMPropertyConfig = {
  isCustomAttribute: RegExp.prototype.test.bind(
    /^(data|aria)-[a-z_][a-z\d_.\-]*$/
  ),
  Properties: {
    /**
     * Standard Properties
     */
    accept: null,
    acceptCharset: null,
    accessKey: null,
    action: null,
    allowFullScreen: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,
    allowTransparency: MUST_USE_ATTRIBUTE,
    alt: null,
    async: HAS_BOOLEAN_VALUE,
    autoComplete: null,
    // autoFocus is polyfilled/normalized by AutoFocusMixin
    // autoFocus: HAS_BOOLEAN_VALUE,
    autoPlay: HAS_BOOLEAN_VALUE,
    cellPadding: null,
    cellSpacing: null,
    charSet: MUST_USE_ATTRIBUTE,
    checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
    classID: MUST_USE_ATTRIBUTE,
    // To set className on SVG elements, it's necessary to use .setAttribute;
    // this works on HTML elements too in all browsers except IE8. Conveniently,
    // IE8 doesn't support SVG and so we can simply use the attribute in
    // browsers that support SVG and the property in browsers that don't,
    // regardless of whether the element is HTML or SVG.
    className: hasSVG ? MUST_USE_ATTRIBUTE : MUST_USE_PROPERTY,
    cols: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,
    colSpan: null,
    content: null,
    contentEditable: null,
    contextMenu: MUST_USE_ATTRIBUTE,
    controls: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
    coords: null,
    crossOrigin: null,
    data: null, // For `<object />` acts as `src`.
    dateTime: MUST_USE_ATTRIBUTE,
    defer: HAS_BOOLEAN_VALUE,
    dir: null,
    disabled: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,
    download: HAS_OVERLOADED_BOOLEAN_VALUE,
    draggable: null,
    encType: null,
    form: MUST_USE_ATTRIBUTE,
    formAction: MUST_USE_ATTRIBUTE,
    formEncType: MUST_USE_ATTRIBUTE,
    formMethod: MUST_USE_ATTRIBUTE,
    formNoValidate: HAS_BOOLEAN_VALUE,
    formTarget: MUST_USE_ATTRIBUTE,
    frameBorder: MUST_USE_ATTRIBUTE,
    headers: null,
    height: MUST_USE_ATTRIBUTE,
    hidden: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,
    high: null,
    href: null,
    hrefLang: null,
    htmlFor: null,
    httpEquiv: null,
    icon: null,
    id: MUST_USE_PROPERTY,
    label: null,
    lang: null,
    list: MUST_USE_ATTRIBUTE,
    loop: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
    low: null,
    manifest: MUST_USE_ATTRIBUTE,
    marginHeight: null,
    marginWidth: null,
    max: null,
    maxLength: MUST_USE_ATTRIBUTE,
    media: MUST_USE_ATTRIBUTE,
    mediaGroup: null,
    method: null,
    min: null,
    multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
    muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
    name: null,
    noValidate: HAS_BOOLEAN_VALUE,
    open: HAS_BOOLEAN_VALUE,
    optimum: null,
    pattern: null,
    placeholder: null,
    poster: null,
    preload: null,
    radioGroup: null,
    readOnly: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
    rel: null,
    required: HAS_BOOLEAN_VALUE,
    role: MUST_USE_ATTRIBUTE,
    rows: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,
    rowSpan: null,
    sandbox: null,
    scope: null,
    scoped: HAS_BOOLEAN_VALUE,
    scrolling: null,
    seamless: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,
    selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
    shape: null,
    size: MUST_USE_ATTRIBUTE | HAS_POSITIVE_NUMERIC_VALUE,
    sizes: MUST_USE_ATTRIBUTE,
    span: HAS_POSITIVE_NUMERIC_VALUE,
    spellCheck: null,
    src: null,
    srcDoc: MUST_USE_PROPERTY,
    srcSet: MUST_USE_ATTRIBUTE,
    start: HAS_NUMERIC_VALUE,
    step: null,
    style: null,
    tabIndex: null,
    target: null,
    title: null,
    type: null,
    useMap: null,
    value: MUST_USE_PROPERTY | HAS_SIDE_EFFECTS,
    width: MUST_USE_ATTRIBUTE,
    wmode: MUST_USE_ATTRIBUTE,

    /**
     * Non-standard Properties
     */
    // autoCapitalize and autoCorrect are supported in Mobile Safari for
    // keyboard hints.
    autoCapitalize: null,
    autoCorrect: null,
    // itemProp, itemScope, itemType are for
    // Microdata support. See http://schema.org/docs/gs.html
    itemProp: MUST_USE_ATTRIBUTE,
    itemScope: MUST_USE_ATTRIBUTE | HAS_BOOLEAN_VALUE,
    itemType: MUST_USE_ATTRIBUTE,
    // itemID and itemRef are for Microdata support as well but
    // only specified in the the WHATWG spec document. See
    // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api
    itemID: MUST_USE_ATTRIBUTE,
    itemRef: MUST_USE_ATTRIBUTE,
    // property is supported for OpenGraph in meta tags.
    property: null,
    // IE-only attribute that controls focus behavior
    unselectable: MUST_USE_ATTRIBUTE
  },
  DOMAttributeNames: {
    acceptCharset: 'accept-charset',
    className: 'class',
    htmlFor: 'for',
    httpEquiv: 'http-equiv'
  },
  DOMPropertyNames: {
    autoCapitalize: 'autocapitalize',
    autoComplete: 'autocomplete',
    autoCorrect: 'autocorrect',
    autoFocus: 'autofocus',
    autoPlay: 'autoplay',
    // `encoding` is equivalent to `enctype`, IE8 lacks an `enctype` setter.
    // http://www.w3.org/TR/html5/forms.html#dom-fs-encoding
    encType: 'encoding',
    hrefLang: 'hreflang',
    radioGroup: 'radiogroup',
    spellCheck: 'spellcheck',
    srcDoc: 'srcdoc',
    srcSet: 'srcset'
  }
};

module.exports = HTMLDOMPropertyConfig;

},{"./DOMProperty":22,"./ExecutionEnvironment":33}],36:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule LinkedStateMixin
 * @typechecks static-only
 */

'use strict';

var ReactLink = require("./ReactLink");
var ReactStateSetters = require("./ReactStateSetters");

/**
 * A simple mixin around ReactLink.forState().
 */
var LinkedStateMixin = {
  /**
   * Create a ReactLink that's linked to part of this component's state. The
   * ReactLink will have the current value of this.state[key] and will call
   * setState() when a change is requested.
   *
   * @param {string} key state key to update. Note: you may want to use keyOf()
   * if you're using Google Closure Compiler advanced mode.
   * @return {ReactLink} ReactLink instance linking to the state.
   */
  linkState: function(key) {
    return new ReactLink(
      this.state[key],
      ReactStateSetters.createStateKeySetter(this, key)
    );
  }
};

module.exports = LinkedStateMixin;

},{"./ReactLink":86,"./ReactStateSetters":105}],37:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule LinkedValueUtils
 * @typechecks static-only
 */

'use strict';

var ReactPropTypes = require("./ReactPropTypes");

var invariant = require("./invariant");

var hasReadOnlyValue = {
  'button': true,
  'checkbox': true,
  'image': true,
  'hidden': true,
  'radio': true,
  'reset': true,
  'submit': true
};

function _assertSingleLink(input) {
  ("production" !== process.env.NODE_ENV ? invariant(
    input.props.checkedLink == null || input.props.valueLink == null,
    'Cannot provide a checkedLink and a valueLink. If you want to use ' +
    'checkedLink, you probably don\'t want to use valueLink and vice versa.'
  ) : invariant(input.props.checkedLink == null || input.props.valueLink == null));
}
function _assertValueLink(input) {
  _assertSingleLink(input);
  ("production" !== process.env.NODE_ENV ? invariant(
    input.props.value == null && input.props.onChange == null,
    'Cannot provide a valueLink and a value or onChange event. If you want ' +
    'to use value or onChange, you probably don\'t want to use valueLink.'
  ) : invariant(input.props.value == null && input.props.onChange == null));
}

function _assertCheckedLink(input) {
  _assertSingleLink(input);
  ("production" !== process.env.NODE_ENV ? invariant(
    input.props.checked == null && input.props.onChange == null,
    'Cannot provide a checkedLink and a checked property or onChange event. ' +
    'If you want to use checked or onChange, you probably don\'t want to ' +
    'use checkedLink'
  ) : invariant(input.props.checked == null && input.props.onChange == null));
}

/**
 * @param {SyntheticEvent} e change event to handle
 */
function _handleLinkedValueChange(e) {
  /*jshint validthis:true */
  this.props.valueLink.requestChange(e.target.value);
}

/**
  * @param {SyntheticEvent} e change event to handle
  */
function _handleLinkedCheckChange(e) {
  /*jshint validthis:true */
  this.props.checkedLink.requestChange(e.target.checked);
}

/**
 * Provide a linked `value` attribute for controlled forms. You should not use
 * this outside of the ReactDOM controlled form components.
 */
var LinkedValueUtils = {
  Mixin: {
    propTypes: {
      value: function(props, propName, componentName) {
        if (!props[propName] ||
            hasReadOnlyValue[props.type] ||
            props.onChange ||
            props.readOnly ||
            props.disabled) {
          return null;
        }
        return new Error(
          'You provided a `value` prop to a form field without an ' +
          '`onChange` handler. This will render a read-only field. If ' +
          'the field should be mutable use `defaultValue`. Otherwise, ' +
          'set either `onChange` or `readOnly`.'
        );
      },
      checked: function(props, propName, componentName) {
        if (!props[propName] ||
            props.onChange ||
            props.readOnly ||
            props.disabled) {
          return null;
        }
        return new Error(
          'You provided a `checked` prop to a form field without an ' +
          '`onChange` handler. This will render a read-only field. If ' +
          'the field should be mutable use `defaultChecked`. Otherwise, ' +
          'set either `onChange` or `readOnly`.'
        );
      },
      onChange: ReactPropTypes.func
    }
  },

  /**
   * @param {ReactComponent} input Form component
   * @return {*} current value of the input either from value prop or link.
   */
  getValue: function(input) {
    if (input.props.valueLink) {
      _assertValueLink(input);
      return input.props.valueLink.value;
    }
    return input.props.value;
  },

  /**
   * @param {ReactComponent} input Form component
   * @return {*} current checked status of the input either from checked prop
   *             or link.
   */
  getChecked: function(input) {
    if (input.props.checkedLink) {
      _assertCheckedLink(input);
      return input.props.checkedLink.value;
    }
    return input.props.checked;
  },

  /**
   * @param {ReactComponent} input Form component
   * @return {function} change callback either from onChange prop or link.
   */
  getOnChange: function(input) {
    if (input.props.valueLink) {
      _assertValueLink(input);
      return _handleLinkedValueChange;
    } else if (input.props.checkedLink) {
      _assertCheckedLink(input);
      return _handleLinkedCheckChange;
    }
    return input.props.onChange;
  }
};

module.exports = LinkedValueUtils;

}).call(this,require("1YiZ5S"))
},{"./ReactPropTypes":97,"./invariant":162,"1YiZ5S":5}],38:[function(require,module,exports){
(function (process){
/**
 * Copyright 2014-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule LocalEventTrapMixin
 */

'use strict';

var ReactBrowserEventEmitter = require("./ReactBrowserEventEmitter");

var accumulateInto = require("./accumulateInto");
var forEachAccumulated = require("./forEachAccumulated");
var invariant = require("./invariant");

function remove(event) {
  event.remove();
}

var LocalEventTrapMixin = {
  trapBubbledEvent:function(topLevelType, handlerBaseName) {
    ("production" !== process.env.NODE_ENV ? invariant(this.isMounted(), 'Must be mounted to trap events') : invariant(this.isMounted()));
    // If a component renders to null or if another component fatals and causes
    // the state of the tree to be corrupted, `node` here can be null.
    var node = this.getDOMNode();
    ("production" !== process.env.NODE_ENV ? invariant(
      node,
      'LocalEventTrapMixin.trapBubbledEvent(...): Requires node to be rendered.'
    ) : invariant(node));
    var listener = ReactBrowserEventEmitter.trapBubbledEvent(
      topLevelType,
      handlerBaseName,
      node
    );
    this._localEventListeners =
      accumulateInto(this._localEventListeners, listener);
  },

  // trapCapturedEvent would look nearly identical. We don't implement that
  // method because it isn't currently needed.

  componentWillUnmount:function() {
    if (this._localEventListeners) {
      forEachAccumulated(this._localEventListeners, remove);
    }
  }
};

module.exports = LocalEventTrapMixin;

}).call(this,require("1YiZ5S"))
},{"./ReactBrowserEventEmitter":44,"./accumulateInto":130,"./forEachAccumulated":147,"./invariant":162,"1YiZ5S":5}],39:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule MobileSafariClickEventPlugin
 * @typechecks static-only
 */

'use strict';

var EventConstants = require("./EventConstants");

var emptyFunction = require("./emptyFunction");

var topLevelTypes = EventConstants.topLevelTypes;

/**
 * Mobile Safari does not fire properly bubble click events on non-interactive
 * elements, which means delegated click listeners do not fire. The workaround
 * for this bug involves attaching an empty click listener on the target node.
 *
 * This particular plugin works around the bug by attaching an empty click
 * listener on `touchstart` (which does fire on every element).
 */
var MobileSafariClickEventPlugin = {

  eventTypes: null,

  /**
   * @param {string} topLevelType Record from `EventConstants`.
   * @param {DOMEventTarget} topLevelTarget The listening component root node.
   * @param {string} topLevelTargetID ID of `topLevelTarget`.
   * @param {object} nativeEvent Native browser event.
   * @return {*} An accumulation of synthetic events.
   * @see {EventPluginHub.extractEvents}
   */
  extractEvents: function(
      topLevelType,
      topLevelTarget,
      topLevelTargetID,
      nativeEvent) {
    if (topLevelType === topLevelTypes.topTouchStart) {
      var target = nativeEvent.target;
      if (target && !target.onclick) {
        target.onclick = emptyFunction;
      }
    }
  }

};

module.exports = MobileSafariClickEventPlugin;

},{"./EventConstants":27,"./emptyFunction":141}],40:[function(require,module,exports){
/**
 * Copyright 2014-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule Object.assign
 */

// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign

'use strict';

function assign(target, sources) {
  if (target == null) {
    throw new TypeError('Object.assign target cannot be null or undefined');
  }

  var to = Object(target);
  var hasOwnProperty = Object.prototype.hasOwnProperty;

  for (var nextIndex = 1; nextIndex < arguments.length; nextIndex++) {
    var nextSource = arguments[nextIndex];
    if (nextSource == null) {
      continue;
    }

    var from = Object(nextSource);

    // We don't currently support accessors nor proxies. Therefore this
    // copy cannot throw. If we ever supported this then we must handle
    // exceptions and side-effects. We don't support symbols so they won't
    // be transferred.

    for (var key in from) {
      if (hasOwnProperty.call(from, key)) {
        to[key] = from[key];
      }
    }
  }

  return to;
}

module.exports = assign;

},{}],41:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule PooledClass
 */

'use strict';

var invariant = require("./invariant");

/**
 * Static poolers. Several custom versions for each potential number of
 * arguments. A completely generic pooler is easy to implement, but would
 * require accessing the `arguments` object. In each of these, `this` refers to
 * the Class itself, not an instance. If any others are needed, simply add them
 * here, or in their own files.
 */
var oneArgumentPooler = function(copyFieldsFrom) {
  var Klass = this;
  if (Klass.instancePool.length) {
    var instance = Klass.instancePool.pop();
    Klass.call(instance, copyFieldsFrom);
    return instance;
  } else {
    return new Klass(copyFieldsFrom);
  }
};

var twoArgumentPooler = function(a1, a2) {
  var Klass = this;
  if (Klass.instancePool.length) {
    var instance = Klass.instancePool.pop();
    Klass.call(instance, a1, a2);
    return instance;
  } else {
    return new Klass(a1, a2);
  }
};

var threeArgumentPooler = function(a1, a2, a3) {
  var Klass = this;
  if (Klass.instancePool.length) {
    var instance = Klass.instancePool.pop();
    Klass.call(instance, a1, a2, a3);
    return instance;
  } else {
    return new Klass(a1, a2, a3);
  }
};

var fiveArgumentPooler = function(a1, a2, a3, a4, a5) {
  var Klass = this;
  if (Klass.instancePool.length) {
    var instance = Klass.instancePool.pop();
    Klass.call(instance, a1, a2, a3, a4, a5);
    return instance;
  } else {
    return new Klass(a1, a2, a3, a4, a5);
  }
};

var standardReleaser = function(instance) {
  var Klass = this;
  ("production" !== process.env.NODE_ENV ? invariant(
    instance instanceof Klass,
    'Trying to release an instance into a pool of a different type.'
  ) : invariant(instance instanceof Klass));
  if (instance.destructor) {
    instance.destructor();
  }
  if (Klass.instancePool.length < Klass.poolSize) {
    Klass.instancePool.push(instance);
  }
};

var DEFAULT_POOL_SIZE = 10;
var DEFAULT_POOLER = oneArgumentPooler;

/**
 * Augments `CopyConstructor` to be a poolable class, augmenting only the class
 * itself (statically) not adding any prototypical fields. Any CopyConstructor
 * you give this may have a `poolSize` property, and will look for a
 * prototypical `destructor` on instances (optional).
 *
 * @param {Function} CopyConstructor Constructor that can be used to reset.
 * @param {Function} pooler Customizable pooler.
 */
var addPoolingTo = function(CopyConstructor, pooler) {
  var NewKlass = CopyConstructor;
  NewKlass.instancePool = [];
  NewKlass.getPooled = pooler || DEFAULT_POOLER;
  if (!NewKlass.poolSize) {
    NewKlass.poolSize = DEFAULT_POOL_SIZE;
  }
  NewKlass.release = standardReleaser;
  return NewKlass;
};

var PooledClass = {
  addPoolingTo: addPoolingTo,
  oneArgumentPooler: oneArgumentPooler,
  twoArgumentPooler: twoArgumentPooler,
  threeArgumentPooler: threeArgumentPooler,
  fiveArgumentPooler: fiveArgumentPooler
};

module.exports = PooledClass;

}).call(this,require("1YiZ5S"))
},{"./invariant":162,"1YiZ5S":5}],42:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule React
 */

/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/

'use strict';

var EventPluginUtils = require("./EventPluginUtils");
var ReactChildren = require("./ReactChildren");
var ReactComponent = require("./ReactComponent");
var ReactClass = require("./ReactClass");
var ReactContext = require("./ReactContext");
var ReactCurrentOwner = require("./ReactCurrentOwner");
var ReactElement = require("./ReactElement");
var ReactElementValidator = require("./ReactElementValidator");
var ReactDOM = require("./ReactDOM");
var ReactDOMTextComponent = require("./ReactDOMTextComponent");
var ReactDefaultInjection = require("./ReactDefaultInjection");
var ReactInstanceHandles = require("./ReactInstanceHandles");
var ReactMount = require("./ReactMount");
var ReactPerf = require("./ReactPerf");
var ReactPropTypes = require("./ReactPropTypes");
var ReactReconciler = require("./ReactReconciler");
var ReactServerRendering = require("./ReactServerRendering");

var assign = require("./Object.assign");
var findDOMNode = require("./findDOMNode");
var onlyChild = require("./onlyChild");

ReactDefaultInjection.inject();

var createElement = ReactElement.createElement;
var createFactory = ReactElement.createFactory;
var cloneElement = ReactElement.cloneElement;

if ("production" !== process.env.NODE_ENV) {
  createElement = ReactElementValidator.createElement;
  createFactory = ReactElementValidator.createFactory;
  cloneElement = ReactElementValidator.cloneElement;
}

var render = ReactPerf.measure('React', 'render', ReactMount.render);

var React = {
  Children: {
    map: ReactChildren.map,
    forEach: ReactChildren.forEach,
    count: ReactChildren.count,
    only: onlyChild
  },
  Component: ReactComponent,
  DOM: ReactDOM,
  PropTypes: ReactPropTypes,
  initializeTouchEvents: function(shouldUseTouch) {
    EventPluginUtils.useTouchEvents = shouldUseTouch;
  },
  createClass: ReactClass.createClass,
  createElement: createElement,
  cloneElement: cloneElement,
  createFactory: createFactory,
  createMixin: function(mixin) {
    // Currently a noop. Will be used to validate and trace mixins.
    return mixin;
  },
  constructAndRenderComponent: ReactMount.constructAndRenderComponent,
  constructAndRenderComponentByID: ReactMount.constructAndRenderComponentByID,
  findDOMNode: findDOMNode,
  render: render,
  renderToString: ReactServerRendering.renderToString,
  renderToStaticMarkup: ReactServerRendering.renderToStaticMarkup,
  unmountComponentAtNode: ReactMount.unmountComponentAtNode,
  isValidElement: ReactElement.isValidElement,
  withContext: ReactContext.withContext,

  // Hook for JSX spread, don't use this for anything else.
  __spread: assign
};

// Inject the runtime into a devtools global hook regardless of browser.
// Allows for debugging when the hook is injected on the page.
if (
  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&
  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {
  __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({
    CurrentOwner: ReactCurrentOwner,
    InstanceHandles: ReactInstanceHandles,
    Mount: ReactMount,
    Reconciler: ReactReconciler,
    TextComponent: ReactDOMTextComponent
  });
}

if ("production" !== process.env.NODE_ENV) {
  var ExecutionEnvironment = require("./ExecutionEnvironment");
  if (ExecutionEnvironment.canUseDOM && window.top === window.self) {

    // If we're in Chrome, look for the devtools marker and provide a download
    // link if not installed.
    if (navigator.userAgent.indexOf('Chrome') > -1) {
      if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {
        console.debug(
          'Download the React DevTools for a better development experience: ' +
          'https://fb.me/react-devtools'
        );
      }
    }

    var expectedFeatures = [
      // shims
      Array.isArray,
      Array.prototype.every,
      Array.prototype.forEach,
      Array.prototype.indexOf,
      Array.prototype.map,
      Date.now,
      Function.prototype.bind,
      Object.keys,
      String.prototype.split,
      String.prototype.trim,

      // shams
      Object.create,
      Object.freeze
    ];

    for (var i = 0; i < expectedFeatures.length; i++) {
      if (!expectedFeatures[i]) {
        console.error(
          'One or more ES5 shim/shams expected by React are not available: ' +
          'https://fb.me/react-warning-polyfills'
        );
        break;
      }
    }
  }
}

React.version = '0.13.3';

module.exports = React;

}).call(this,require("1YiZ5S"))
},{"./EventPluginUtils":31,"./ExecutionEnvironment":33,"./Object.assign":40,"./ReactChildren":48,"./ReactClass":49,"./ReactComponent":50,"./ReactContext":55,"./ReactCurrentOwner":56,"./ReactDOM":57,"./ReactDOMTextComponent":68,"./ReactDefaultInjection":71,"./ReactElement":74,"./ReactElementValidator":75,"./ReactInstanceHandles":83,"./ReactMount":88,"./ReactPerf":93,"./ReactPropTypes":97,"./ReactReconciler":100,"./ReactServerRendering":103,"./findDOMNode":144,"./onlyChild":172,"1YiZ5S":5}],43:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactBrowserComponentMixin
 */

'use strict';

var findDOMNode = require("./findDOMNode");

var ReactBrowserComponentMixin = {
  /**
   * Returns the DOM node rendered by this component.
   *
   * @return {DOMElement} The root node of this component.
   * @final
   * @protected
   */
  getDOMNode: function() {
    return findDOMNode(this);
  }
};

module.exports = ReactBrowserComponentMixin;

},{"./findDOMNode":144}],44:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactBrowserEventEmitter
 * @typechecks static-only
 */

'use strict';

var EventConstants = require("./EventConstants");
var EventPluginHub = require("./EventPluginHub");
var EventPluginRegistry = require("./EventPluginRegistry");
var ReactEventEmitterMixin = require("./ReactEventEmitterMixin");
var ViewportMetrics = require("./ViewportMetrics");

var assign = require("./Object.assign");
var isEventSupported = require("./isEventSupported");

/**
 * Summary of `ReactBrowserEventEmitter` event handling:
 *
 *  - Top-level delegation is used to trap most native browser events. This
 *    may only occur in the main thread and is the responsibility of
 *    ReactEventListener, which is injected and can therefore support pluggable
 *    event sources. This is the only work that occurs in the main thread.
 *
 *  - We normalize and de-duplicate events to account for browser quirks. This
 *    may be done in the worker thread.
 *
 *  - Forward these native events (with the associated top-level type used to
 *    trap it) to `EventPluginHub`, which in turn will ask plugins if they want
 *    to extract any synthetic events.
 *
 *  - The `EventPluginHub` will then process each event by annotating them with
 *    "dispatches", a sequence of listeners and IDs that care about that event.
 *
 *  - The `EventPluginHub` then dispatches the events.
 *
 * Overview of React and the event system:
 *
 * +------------+    .
 * |    DOM     |    .
 * +------------+    .
 *       |           .
 *       v           .
 * +------------+    .
 * | ReactEvent |    .
 * |  Listener  |    .
 * +------------+    .                         +-----------+
 *       |           .               +--------+|SimpleEvent|
 *       |           .               |         |Plugin     |
 * +-----|------+    .               v         +-----------+
 * |     |      |    .    +--------------+                    +------------+
 * |     +-----------.--->|EventPluginHub|                    |    Event   |
 * |            |    .    |              |     +-----------+  | Propagators|
 * | ReactEvent |    .    |              |     |TapEvent   |  |------------|
 * |  Emitter   |    .    |              |<---+|Plugin     |  |other plugin|
 * |            |    .    |              |     +-----------+  |  utilities |
 * |     +-----------.--->|              |                    +------------+
 * |     |      |    .    +--------------+
 * +-----|------+    .                ^        +-----------+
 *       |           .                |        |Enter/Leave|
 *       +           .                +-------+|Plugin     |
 * +-------------+   .                         +-----------+
 * | application |   .
 * |-------------|   .
 * |             |   .
 * |             |   .
 * +-------------+   .
 *                   .
 *    React Core     .  General Purpose Event Plugin System
 */

var alreadyListeningTo = {};
var isMonitoringScrollValue = false;
var reactTopListenersCounter = 0;

// For events like 'submit' which don't consistently bubble (which we trap at a
// lower node than `document`), binding at `document` would cause duplicate
// events so we don't include them here
var topEventMapping = {
  topBlur: 'blur',
  topChange: 'change',
  topClick: 'click',
  topCompositionEnd: 'compositionend',
  topCompositionStart: 'compositionstart',
  topCompositionUpdate: 'compositionupdate',
  topContextMenu: 'contextmenu',
  topCopy: 'copy',
  topCut: 'cut',
  topDoubleClick: 'dblclick',
  topDrag: 'drag',
  topDragEnd: 'dragend',
  topDragEnter: 'dragenter',
  topDragExit: 'dragexit',
  topDragLeave: 'dragleave',
  topDragOver: 'dragover',
  topDragStart: 'dragstart',
  topDrop: 'drop',
  topFocus: 'focus',
  topInput: 'input',
  topKeyDown: 'keydown',
  topKeyPress: 'keypress',
  topKeyUp: 'keyup',
  topMouseDown: 'mousedown',
  topMouseMove: 'mousemove',
  topMouseOut: 'mouseout',
  topMouseOver: 'mouseover',
  topMouseUp: 'mouseup',
  topPaste: 'paste',
  topScroll: 'scroll',
  topSelectionChange: 'selectionchange',
  topTextInput: 'textInput',
  topTouchCancel: 'touchcancel',
  topTouchEnd: 'touchend',
  topTouchMove: 'touchmove',
  topTouchStart: 'touchstart',
  topWheel: 'wheel'
};

/**
 * To ensure no conflicts with other potential React instances on the page
 */
var topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2);

function getListeningForDocument(mountAt) {
  // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`
  // directly.
  if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {
    mountAt[topListenersIDKey] = reactTopListenersCounter++;
    alreadyListeningTo[mountAt[topListenersIDKey]] = {};
  }
  return alreadyListeningTo[mountAt[topListenersIDKey]];
}

/**
 * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For
 * example:
 *
 *   ReactBrowserEventEmitter.putListener('myID', 'onClick', myFunction);
 *
 * This would allocate a "registration" of `('onClick', myFunction)` on 'myID'.
 *
 * @internal
 */
var ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, {

  /**
   * Injectable event backend
   */
  ReactEventListener: null,

  injection: {
    /**
     * @param {object} ReactEventListener
     */
    injectReactEventListener: function(ReactEventListener) {
      ReactEventListener.setHandleTopLevel(
        ReactBrowserEventEmitter.handleTopLevel
      );
      ReactBrowserEventEmitter.ReactEventListener = ReactEventListener;
    }
  },

  /**
   * Sets whether or not any created callbacks should be enabled.
   *
   * @param {boolean} enabled True if callbacks should be enabled.
   */
  setEnabled: function(enabled) {
    if (ReactBrowserEventEmitter.ReactEventListener) {
      ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled);
    }
  },

  /**
   * @return {boolean} True if callbacks are enabled.
   */
  isEnabled: function() {
    return !!(
      (ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled())
    );
  },

  /**
   * We listen for bubbled touch events on the document object.
   *
   * Firefox v8.01 (and possibly others) exhibited strange behavior when
   * mounting `onmousemove` events at some node that was not the document
   * element. The symptoms were that if your mouse is not moving over something
   * contained within that mount point (for example on the background) the
   * top-level listeners for `onmousemove` won't be called. However, if you
   * register the `mousemove` on the document object, then it will of course
   * catch all `mousemove`s. This along with iOS quirks, justifies restricting
   * top-level listeners to the document object only, at least for these
   * movement types of events and possibly all events.
   *
   * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html
   *
   * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but
   * they bubble to document.
   *
   * @param {string} registrationName Name of listener (e.g. `onClick`).
   * @param {object} contentDocumentHandle Document which owns the container
   */
  listenTo: function(registrationName, contentDocumentHandle) {
    var mountAt = contentDocumentHandle;
    var isListening = getListeningForDocument(mountAt);
    var dependencies = EventPluginRegistry.
      registrationNameDependencies[registrationName];

    var topLevelTypes = EventConstants.topLevelTypes;
    for (var i = 0, l = dependencies.length; i < l; i++) {
      var dependency = dependencies[i];
      if (!(
            (isListening.hasOwnProperty(dependency) && isListening[dependency])
          )) {
        if (dependency === topLevelTypes.topWheel) {
          if (isEventSupported('wheel')) {
            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(
              topLevelTypes.topWheel,
              'wheel',
              mountAt
            );
          } else if (isEventSupported('mousewheel')) {
            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(
              topLevelTypes.topWheel,
              'mousewheel',
              mountAt
            );
          } else {
            // Firefox needs to capture a different mouse scroll event.
            // @see http://www.quirksmode.org/dom/events/tests/scroll.html
            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(
              topLevelTypes.topWheel,
              'DOMMouseScroll',
              mountAt
            );
          }
        } else if (dependency === topLevelTypes.topScroll) {

          if (isEventSupported('scroll', true)) {
            ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(
              topLevelTypes.topScroll,
              'scroll',
              mountAt
            );
          } else {
            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(
              topLevelTypes.topScroll,
              'scroll',
              ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE
            );
          }
        } else if (dependency === topLevelTypes.topFocus ||
            dependency === topLevelTypes.topBlur) {

          if (isEventSupported('focus', true)) {
            ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(
              topLevelTypes.topFocus,
              'focus',
              mountAt
            );
            ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(
              topLevelTypes.topBlur,
              'blur',
              mountAt
            );
          } else if (isEventSupported('focusin')) {
            // IE has `focusin` and `focusout` events which bubble.
            // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html
            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(
              topLevelTypes.topFocus,
              'focusin',
              mountAt
            );
            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(
              topLevelTypes.topBlur,
              'focusout',
              mountAt
            );
          }

          // to make sure blur and focus event listeners are only attached once
          isListening[topLevelTypes.topBlur] = true;
          isListening[topLevelTypes.topFocus] = true;
        } else if (topEventMapping.hasOwnProperty(dependency)) {
          ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(
            dependency,
            topEventMapping[dependency],
            mountAt
          );
        }

        isListening[dependency] = true;
      }
    }
  },

  trapBubbledEvent: function(topLevelType, handlerBaseName, handle) {
    return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(
      topLevelType,
      handlerBaseName,
      handle
    );
  },

  trapCapturedEvent: function(topLevelType, handlerBaseName, handle) {
    return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(
      topLevelType,
      handlerBaseName,
      handle
    );
  },

  /**
   * Listens to window scroll and resize events. We cache scroll values so that
   * application code can access them without triggering reflows.
   *
   * NOTE: Scroll events do not bubble.
   *
   * @see http://www.quirksmode.org/dom/events/scroll.html
   */
  ensureScrollValueMonitoring: function() {
    if (!isMonitoringScrollValue) {
      var refresh = ViewportMetrics.refreshScrollValues;
      ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);
      isMonitoringScrollValue = true;
    }
  },

  eventNameDispatchConfigs: EventPluginHub.eventNameDispatchConfigs,

  registrationNameModules: EventPluginHub.registrationNameModules,

  putListener: EventPluginHub.putListener,

  getListener: EventPluginHub.getListener,

  deleteListener: EventPluginHub.deleteListener,

  deleteAllListeners: EventPluginHub.deleteAllListeners

});

module.exports = ReactBrowserEventEmitter;

},{"./EventConstants":27,"./EventPluginHub":29,"./EventPluginRegistry":30,"./Object.assign":40,"./ReactEventEmitterMixin":78,"./ViewportMetrics":129,"./isEventSupported":163}],45:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @typechecks
 * @providesModule ReactCSSTransitionGroup
 */

'use strict';

var React = require("./React");

var assign = require("./Object.assign");

var ReactTransitionGroup = React.createFactory(
  require("./ReactTransitionGroup")
);
var ReactCSSTransitionGroupChild = React.createFactory(
  require("./ReactCSSTransitionGroupChild")
);

var ReactCSSTransitionGroup = React.createClass({
  displayName: 'ReactCSSTransitionGroup',

  propTypes: {
    transitionName: React.PropTypes.string.isRequired,
    transitionAppear: React.PropTypes.bool,
    transitionEnter: React.PropTypes.bool,
    transitionLeave: React.PropTypes.bool
  },

  getDefaultProps: function() {
    return {
      transitionAppear: false,
      transitionEnter: true,
      transitionLeave: true
    };
  },

  _wrapChild: function(child) {
    // We need to provide this childFactory so that
    // ReactCSSTransitionGroupChild can receive updates to name, enter, and
    // leave while it is leaving.
    return ReactCSSTransitionGroupChild(
      {
        name: this.props.transitionName,
        appear: this.props.transitionAppear,
        enter: this.props.transitionEnter,
        leave: this.props.transitionLeave
      },
      child
    );
  },

  render: function() {
    return (
      ReactTransitionGroup(
        assign({}, this.props, {childFactory: this._wrapChild})
      )
    );
  }
});

module.exports = ReactCSSTransitionGroup;

},{"./Object.assign":40,"./React":42,"./ReactCSSTransitionGroupChild":46,"./ReactTransitionGroup":109}],46:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @typechecks
 * @providesModule ReactCSSTransitionGroupChild
 */

'use strict';

var React = require("./React");

var CSSCore = require("./CSSCore");
var ReactTransitionEvents = require("./ReactTransitionEvents");

var onlyChild = require("./onlyChild");
var warning = require("./warning");

// We don't remove the element from the DOM until we receive an animationend or
// transitionend event. If the user screws up and forgets to add an animation
// their node will be stuck in the DOM forever, so we detect if an animation
// does not start and if it doesn't, we just call the end listener immediately.
var TICK = 17;
var NO_EVENT_TIMEOUT = 5000;

var noEventListener = null;


if ("production" !== process.env.NODE_ENV) {
  noEventListener = function() {
    ("production" !== process.env.NODE_ENV ? warning(
      false,
      'transition(): tried to perform an animation without ' +
      'an animationend or transitionend event after timeout (' +
      '%sms). You should either disable this ' +
      'transition in JS or add a CSS animation/transition.',
      NO_EVENT_TIMEOUT
    ) : null);
  };
}

var ReactCSSTransitionGroupChild = React.createClass({
  displayName: 'ReactCSSTransitionGroupChild',

  transition: function(animationType, finishCallback) {
    var node = this.getDOMNode();
    var className = this.props.name + '-' + animationType;
    var activeClassName = className + '-active';
    var noEventTimeout = null;

    var endListener = function(e) {
      if (e && e.target !== node) {
        return;
      }
      if ("production" !== process.env.NODE_ENV) {
        clearTimeout(noEventTimeout);
      }

      CSSCore.removeClass(node, className);
      CSSCore.removeClass(node, activeClassName);

      ReactTransitionEvents.removeEndEventListener(node, endListener);

      // Usually this optional callback is used for informing an owner of
      // a leave animation and telling it to remove the child.
      if (finishCallback) {
        finishCallback();
      }
    };

    ReactTransitionEvents.addEndEventListener(node, endListener);

    CSSCore.addClass(node, className);

    // Need to do this to actually trigger a transition.
    this.queueClass(activeClassName);

    if ("production" !== process.env.NODE_ENV) {
      noEventTimeout = setTimeout(noEventListener, NO_EVENT_TIMEOUT);
    }
  },

  queueClass: function(className) {
    this.classNameQueue.push(className);

    if (!this.timeout) {
      this.timeout = setTimeout(this.flushClassNameQueue, TICK);
    }
  },

  flushClassNameQueue: function() {
    if (this.isMounted()) {
      this.classNameQueue.forEach(
        CSSCore.addClass.bind(CSSCore, this.getDOMNode())
      );
    }
    this.classNameQueue.length = 0;
    this.timeout = null;
  },

  componentWillMount: function() {
    this.classNameQueue = [];
  },

  componentWillUnmount: function() {
    if (this.timeout) {
      clearTimeout(this.timeout);
    }
  },

  componentWillAppear: function(done) {
    if (this.props.appear) {
      this.transition('appear', done);
    } else {
      done();
    }
  },

  componentWillEnter: function(done) {
    if (this.props.enter) {
      this.transition('enter', done);
    } else {
      done();
    }
  },

  componentWillLeave: function(done) {
    if (this.props.leave) {
      this.transition('leave', done);
    } else {
      done();
    }
  },

  render: function() {
    return onlyChild(this.props.children);
  }
});

module.exports = ReactCSSTransitionGroupChild;

}).call(this,require("1YiZ5S"))
},{"./CSSCore":15,"./React":42,"./ReactTransitionEvents":108,"./onlyChild":172,"./warning":183,"1YiZ5S":5}],47:[function(require,module,exports){
/**
 * Copyright 2014-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactChildReconciler
 * @typechecks static-only
 */

'use strict';

var ReactReconciler = require("./ReactReconciler");

var flattenChildren = require("./flattenChildren");
var instantiateReactComponent = require("./instantiateReactComponent");
var shouldUpdateReactComponent = require("./shouldUpdateReactComponent");

/**
 * ReactChildReconciler provides helpers for initializing or updating a set of
 * children. Its output is suitable for passing it onto ReactMultiChild which
 * does diffed reordering and insertion.
 */
var ReactChildReconciler = {

  /**
   * Generates a "mount image" for each of the supplied children. In the case
   * of `ReactDOMComponent`, a mount image is a string of markup.
   *
   * @param {?object} nestedChildNodes Nested child maps.
   * @return {?object} A set of child instances.
   * @internal
   */
  instantiateChildren: function(nestedChildNodes, transaction, context) {
    var children = flattenChildren(nestedChildNodes);
    for (var name in children) {
      if (children.hasOwnProperty(name)) {
        var child = children[name];
        // The rendered children must be turned into instances as they're
        // mounted.
        var childInstance = instantiateReactComponent(child, null);
        children[name] = childInstance;
      }
    }
    return children;
  },

  /**
   * Updates the rendered children and returns a new set of children.
   *
   * @param {?object} prevChildren Previously initialized set of children.
   * @param {?object} nextNestedChildNodes Nested child maps.
   * @param {ReactReconcileTransaction} transaction
   * @param {object} context
   * @return {?object} A new set of child instances.
   * @internal
   */
  updateChildren: function(
    prevChildren,
    nextNestedChildNodes,
    transaction,
    context) {
    // We currently don't have a way to track moves here but if we use iterators
    // instead of for..in we can zip the iterators and check if an item has
    // moved.
    // TODO: If nothing has changed, return the prevChildren object so that we
    // can quickly bailout if nothing has changed.
    var nextChildren = flattenChildren(nextNestedChildNodes);
    if (!nextChildren && !prevChildren) {
      return null;
    }
    var name;
    for (name in nextChildren) {
      if (!nextChildren.hasOwnProperty(name)) {
        continue;
      }
      var prevChild = prevChildren && prevChildren[name];
      var prevElement = prevChild && prevChild._currentElement;
      var nextElement = nextChildren[name];
      if (shouldUpdateReactComponent(prevElement, nextElement)) {
        ReactReconciler.receiveComponent(
          prevChild, nextElement, transaction, context
        );
        nextChildren[name] = prevChild;
      } else {
        if (prevChild) {
          ReactReconciler.unmountComponent(prevChild, name);
        }
        // The child must be instantiated before it's mounted.
        var nextChildInstance = instantiateReactComponent(
          nextElement,
          null
        );
        nextChildren[name] = nextChildInstance;
      }
    }
    // Unmount children that are no longer present.
    for (name in prevChildren) {
      if (prevChildren.hasOwnProperty(name) &&
          !(nextChildren && nextChildren.hasOwnProperty(name))) {
        ReactReconciler.unmountComponent(prevChildren[name]);
      }
    }
    return nextChildren;
  },

  /**
   * Unmounts all rendered children. This should be used to clean up children
   * when this component is unmounted.
   *
   * @param {?object} renderedChildren Previously initialized set of children.
   * @internal
   */
  unmountChildren: function(renderedChildren) {
    for (var name in renderedChildren) {
      var renderedChild = renderedChildren[name];
      ReactReconciler.unmountComponent(renderedChild);
    }
  }

};

module.exports = ReactChildReconciler;

},{"./ReactReconciler":100,"./flattenChildren":145,"./instantiateReactComponent":161,"./shouldUpdateReactComponent":179}],48:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactChildren
 */

'use strict';

var PooledClass = require("./PooledClass");
var ReactFragment = require("./ReactFragment");

var traverseAllChildren = require("./traverseAllChildren");
var warning = require("./warning");

var twoArgumentPooler = PooledClass.twoArgumentPooler;
var threeArgumentPooler = PooledClass.threeArgumentPooler;

/**
 * PooledClass representing the bookkeeping associated with performing a child
 * traversal. Allows avoiding binding callbacks.
 *
 * @constructor ForEachBookKeeping
 * @param {!function} forEachFunction Function to perform traversal with.
 * @param {?*} forEachContext Context to perform context with.
 */
function ForEachBookKeeping(forEachFunction, forEachContext) {
  this.forEachFunction = forEachFunction;
  this.forEachContext = forEachContext;
}
PooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler);

function forEachSingleChild(traverseContext, child, name, i) {
  var forEachBookKeeping = traverseContext;
  forEachBookKeeping.forEachFunction.call(
    forEachBookKeeping.forEachContext, child, i);
}

/**
 * Iterates through children that are typically specified as `props.children`.
 *
 * The provided forEachFunc(child, index) will be called for each
 * leaf child.
 *
 * @param {?*} children Children tree container.
 * @param {function(*, int)} forEachFunc.
 * @param {*} forEachContext Context for forEachContext.
 */
function forEachChildren(children, forEachFunc, forEachContext) {
  if (children == null) {
    return children;
  }

  var traverseContext =
    ForEachBookKeeping.getPooled(forEachFunc, forEachContext);
  traverseAllChildren(children, forEachSingleChild, traverseContext);
  ForEachBookKeeping.release(traverseContext);
}

/**
 * PooledClass representing the bookkeeping associated with performing a child
 * mapping. Allows avoiding binding callbacks.
 *
 * @constructor MapBookKeeping
 * @param {!*} mapResult Object containing the ordered map of results.
 * @param {!function} mapFunction Function to perform mapping with.
 * @param {?*} mapContext Context to perform mapping with.
 */
function MapBookKeeping(mapResult, mapFunction, mapContext) {
  this.mapResult = mapResult;
  this.mapFunction = mapFunction;
  this.mapContext = mapContext;
}
PooledClass.addPoolingTo(MapBookKeeping, threeArgumentPooler);

function mapSingleChildIntoContext(traverseContext, child, name, i) {
  var mapBookKeeping = traverseContext;
  var mapResult = mapBookKeeping.mapResult;

  var keyUnique = !mapResult.hasOwnProperty(name);
  if ("production" !== process.env.NODE_ENV) {
    ("production" !== process.env.NODE_ENV ? warning(
      keyUnique,
      'ReactChildren.map(...): Encountered two children with the same key, ' +
      '`%s`. Child keys must be unique; when two children share a key, only ' +
      'the first child will be used.',
      name
    ) : null);
  }

  if (keyUnique) {
    var mappedChild =
      mapBookKeeping.mapFunction.call(mapBookKeeping.mapContext, child, i);
    mapResult[name] = mappedChild;
  }
}

/**
 * Maps children that are typically specified as `props.children`.
 *
 * The provided mapFunction(child, key, index) will be called for each
 * leaf child.
 *
 * TODO: This may likely break any calls to `ReactChildren.map` that were
 * previously relying on the fact that we guarded against null children.
 *
 * @param {?*} children Children tree container.
 * @param {function(*, int)} mapFunction.
 * @param {*} mapContext Context for mapFunction.
 * @return {object} Object containing the ordered map of results.
 */
function mapChildren(children, func, context) {
  if (children == null) {
    return children;
  }

  var mapResult = {};
  var traverseContext = MapBookKeeping.getPooled(mapResult, func, context);
  traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);
  MapBookKeeping.release(traverseContext);
  return ReactFragment.create(mapResult);
}

function forEachSingleChildDummy(traverseContext, child, name, i) {
  return null;
}

/**
 * Count the number of children that are typically specified as
 * `props.children`.
 *
 * @param {?*} children Children tree container.
 * @return {number} The number of children.
 */
function countChildren(children, context) {
  return traverseAllChildren(children, forEachSingleChildDummy, null);
}

var ReactChildren = {
  forEach: forEachChildren,
  map: mapChildren,
  count: countChildren
};

module.exports = ReactChildren;

}).call(this,require("1YiZ5S"))
},{"./PooledClass":41,"./ReactFragment":80,"./traverseAllChildren":181,"./warning":183,"1YiZ5S":5}],49:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactClass
 */

'use strict';

var ReactComponent = require("./ReactComponent");
var ReactCurrentOwner = require("./ReactCurrentOwner");
var ReactElement = require("./ReactElement");
var ReactErrorUtils = require("./ReactErrorUtils");
var ReactInstanceMap = require("./ReactInstanceMap");
var ReactLifeCycle = require("./ReactLifeCycle");
var ReactPropTypeLocations = require("./ReactPropTypeLocations");
var ReactPropTypeLocationNames = require("./ReactPropTypeLocationNames");
var ReactUpdateQueue = require("./ReactUpdateQueue");

var assign = require("./Object.assign");
var invariant = require("./invariant");
var keyMirror = require("./keyMirror");
var keyOf = require("./keyOf");
var warning = require("./warning");

var MIXINS_KEY = keyOf({mixins: null});

/**
 * Policies that describe methods in `ReactClassInterface`.
 */
var SpecPolicy = keyMirror({
  /**
   * These methods may be defined only once by the class specification or mixin.
   */
  DEFINE_ONCE: null,
  /**
   * These methods may be defined by both the class specification and mixins.
   * Subsequent definitions will be chained. These methods must return void.
   */
  DEFINE_MANY: null,
  /**
   * These methods are overriding the base class.
   */
  OVERRIDE_BASE: null,
  /**
   * These methods are similar to DEFINE_MANY, except we assume they return
   * objects. We try to merge the keys of the return values of all the mixed in
   * functions. If there is a key conflict we throw.
   */
  DEFINE_MANY_MERGED: null
});


var injectedMixins = [];

/**
 * Composite components are higher-level components that compose other composite
 * or native components.
 *
 * To create a new type of `ReactClass`, pass a specification of
 * your new class to `React.createClass`. The only requirement of your class
 * specification is that you implement a `render` method.
 *
 *   var MyComponent = React.createClass({
 *     render: function() {
 *       return <div>Hello World</div>;
 *     }
 *   });
 *
 * The class specification supports a specific protocol of methods that have
 * special meaning (e.g. `render`). See `ReactClassInterface` for
 * more the comprehensive protocol. Any other properties and methods in the
 * class specification will available on the prototype.
 *
 * @interface ReactClassInterface
 * @internal
 */
var ReactClassInterface = {

  /**
   * An array of Mixin objects to include when defining your component.
   *
   * @type {array}
   * @optional
   */
  mixins: SpecPolicy.DEFINE_MANY,

  /**
   * An object containing properties and methods that should be defined on
   * the component's constructor instead of its prototype (static methods).
   *
   * @type {object}
   * @optional
   */
  statics: SpecPolicy.DEFINE_MANY,

  /**
   * Definition of prop types for this component.
   *
   * @type {object}
   * @optional
   */
  propTypes: SpecPolicy.DEFINE_MANY,

  /**
   * Definition of context types for this component.
   *
   * @type {object}
   * @optional
   */
  contextTypes: SpecPolicy.DEFINE_MANY,

  /**
   * Definition of context types this component sets for its children.
   *
   * @type {object}
   * @optional
   */
  childContextTypes: SpecPolicy.DEFINE_MANY,

  // ==== Definition methods ====

  /**
   * Invoked when the component is mounted. Values in the mapping will be set on
   * `this.props` if that prop is not specified (i.e. using an `in` check).
   *
   * This method is invoked before `getInitialState` and therefore cannot rely
   * on `this.state` or use `this.setState`.
   *
   * @return {object}
   * @optional
   */
  getDefaultProps: SpecPolicy.DEFINE_MANY_MERGED,

  /**
   * Invoked once before the component is mounted. The return value will be used
   * as the initial value of `this.state`.
   *
   *   getInitialState: function() {
   *     return {
   *       isOn: false,
   *       fooBaz: new BazFoo()
   *     }
   *   }
   *
   * @return {object}
   * @optional
   */
  getInitialState: SpecPolicy.DEFINE_MANY_MERGED,

  /**
   * @return {object}
   * @optional
   */
  getChildContext: SpecPolicy.DEFINE_MANY_MERGED,

  /**
   * Uses props from `this.props` and state from `this.state` to render the
   * structure of the component.
   *
   * No guarantees are made about when or how often this method is invoked, so
   * it must not have side effects.
   *
   *   render: function() {
   *     var name = this.props.name;
   *     return <div>Hello, {name}!</div>;
   *   }
   *
   * @return {ReactComponent}
   * @nosideeffects
   * @required
   */
  render: SpecPolicy.DEFINE_ONCE,



  // ==== Delegate methods ====

  /**
   * Invoked when the component is initially created and about to be mounted.
   * This may have side effects, but any external subscriptions or data created
   * by this method must be cleaned up in `componentWillUnmount`.
   *
   * @optional
   */
  componentWillMount: SpecPolicy.DEFINE_MANY,

  /**
   * Invoked when the component has been mounted and has a DOM representation.
   * However, there is no guarantee that the DOM node is in the document.
   *
   * Use this as an opportunity to operate on the DOM when the component has
   * been mounted (initialized and rendered) for the first time.
   *
   * @param {DOMElement} rootNode DOM element representing the component.
   * @optional
   */
  componentDidMount: SpecPolicy.DEFINE_MANY,

  /**
   * Invoked before the component receives new props.
   *
   * Use this as an opportunity to react to a prop transition by updating the
   * state using `this.setState`. Current props are accessed via `this.props`.
   *
   *   componentWillReceiveProps: function(nextProps, nextContext) {
   *     this.setState({
   *       likesIncreasing: nextProps.likeCount > this.props.likeCount
   *     });
   *   }
   *
   * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop
   * transition may cause a state change, but the opposite is not true. If you
   * need it, you are probably looking for `componentWillUpdate`.
   *
   * @param {object} nextProps
   * @optional
   */
  componentWillReceiveProps: SpecPolicy.DEFINE_MANY,

  /**
   * Invoked while deciding if the component should be updated as a result of
   * receiving new props, state and/or context.
   *
   * Use this as an opportunity to `return false` when you're certain that the
   * transition to the new props/state/context will not require a component
   * update.
   *
   *   shouldComponentUpdate: function(nextProps, nextState, nextContext) {
   *     return !equal(nextProps, this.props) ||
   *       !equal(nextState, this.state) ||
   *       !equal(nextContext, this.context);
   *   }
   *
   * @param {object} nextProps
   * @param {?object} nextState
   * @param {?object} nextContext
   * @return {boolean} True if the component should update.
   * @optional
   */
  shouldComponentUpdate: SpecPolicy.DEFINE_ONCE,

  /**
   * Invoked when the component is about to update due to a transition from
   * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`
   * and `nextContext`.
   *
   * Use this as an opportunity to perform preparation before an update occurs.
   *
   * NOTE: You **cannot** use `this.setState()` in this method.
   *
   * @param {object} nextProps
   * @param {?object} nextState
   * @param {?object} nextContext
   * @param {ReactReconcileTransaction} transaction
   * @optional
   */
  componentWillUpdate: SpecPolicy.DEFINE_MANY,

  /**
   * Invoked when the component's DOM representation has been updated.
   *
   * Use this as an opportunity to operate on the DOM when the component has
   * been updated.
   *
   * @param {object} prevProps
   * @param {?object} prevState
   * @param {?object} prevContext
   * @param {DOMElement} rootNode DOM element representing the component.
   * @optional
   */
  componentDidUpdate: SpecPolicy.DEFINE_MANY,

  /**
   * Invoked when the component is about to be removed from its parent and have
   * its DOM representation destroyed.
   *
   * Use this as an opportunity to deallocate any external resources.
   *
   * NOTE: There is no `componentDidUnmount` since your component will have been
   * destroyed by that point.
   *
   * @optional
   */
  componentWillUnmount: SpecPolicy.DEFINE_MANY,



  // ==== Advanced methods ====

  /**
   * Updates the component's currently mounted DOM representation.
   *
   * By default, this implements React's rendering and reconciliation algorithm.
   * Sophisticated clients may wish to override this.
   *
   * @param {ReactReconcileTransaction} transaction
   * @internal
   * @overridable
   */
  updateComponent: SpecPolicy.OVERRIDE_BASE

};

/**
 * Mapping from class specification keys to special processing functions.
 *
 * Although these are declared like instance properties in the specification
 * when defining classes using `React.createClass`, they are actually static
 * and are accessible on the constructor instead of the prototype. Despite
 * being static, they must be defined outside of the "statics" key under
 * which all other static methods are defined.
 */
var RESERVED_SPEC_KEYS = {
  displayName: function(Constructor, displayName) {
    Constructor.displayName = displayName;
  },
  mixins: function(Constructor, mixins) {
    if (mixins) {
      for (var i = 0; i < mixins.length; i++) {
        mixSpecIntoComponent(Constructor, mixins[i]);
      }
    }
  },
  childContextTypes: function(Constructor, childContextTypes) {
    if ("production" !== process.env.NODE_ENV) {
      validateTypeDef(
        Constructor,
        childContextTypes,
        ReactPropTypeLocations.childContext
      );
    }
    Constructor.childContextTypes = assign(
      {},
      Constructor.childContextTypes,
      childContextTypes
    );
  },
  contextTypes: function(Constructor, contextTypes) {
    if ("production" !== process.env.NODE_ENV) {
      validateTypeDef(
        Constructor,
        contextTypes,
        ReactPropTypeLocations.context
      );
    }
    Constructor.contextTypes = assign(
      {},
      Constructor.contextTypes,
      contextTypes
    );
  },
  /**
   * Special case getDefaultProps which should move into statics but requires
   * automatic merging.
   */
  getDefaultProps: function(Constructor, getDefaultProps) {
    if (Constructor.getDefaultProps) {
      Constructor.getDefaultProps = createMergedResultFunction(
        Constructor.getDefaultProps,
        getDefaultProps
      );
    } else {
      Constructor.getDefaultProps = getDefaultProps;
    }
  },
  propTypes: function(Constructor, propTypes) {
    if ("production" !== process.env.NODE_ENV) {
      validateTypeDef(
        Constructor,
        propTypes,
        ReactPropTypeLocations.prop
      );
    }
    Constructor.propTypes = assign(
      {},
      Constructor.propTypes,
      propTypes
    );
  },
  statics: function(Constructor, statics) {
    mixStaticSpecIntoComponent(Constructor, statics);
  }
};

function validateTypeDef(Constructor, typeDef, location) {
  for (var propName in typeDef) {
    if (typeDef.hasOwnProperty(propName)) {
      // use a warning instead of an invariant so components
      // don't show up in prod but not in __DEV__
      ("production" !== process.env.NODE_ENV ? warning(
        typeof typeDef[propName] === 'function',
        '%s: %s type `%s` is invalid; it must be a function, usually from ' +
        'React.PropTypes.',
        Constructor.displayName || 'ReactClass',
        ReactPropTypeLocationNames[location],
        propName
      ) : null);
    }
  }
}

function validateMethodOverride(proto, name) {
  var specPolicy = ReactClassInterface.hasOwnProperty(name) ?
    ReactClassInterface[name] :
    null;

  // Disallow overriding of base class methods unless explicitly allowed.
  if (ReactClassMixin.hasOwnProperty(name)) {
    ("production" !== process.env.NODE_ENV ? invariant(
      specPolicy === SpecPolicy.OVERRIDE_BASE,
      'ReactClassInterface: You are attempting to override ' +
      '`%s` from your class specification. Ensure that your method names ' +
      'do not overlap with React methods.',
      name
    ) : invariant(specPolicy === SpecPolicy.OVERRIDE_BASE));
  }

  // Disallow defining methods more than once unless explicitly allowed.
  if (proto.hasOwnProperty(name)) {
    ("production" !== process.env.NODE_ENV ? invariant(
      specPolicy === SpecPolicy.DEFINE_MANY ||
      specPolicy === SpecPolicy.DEFINE_MANY_MERGED,
      'ReactClassInterface: You are attempting to define ' +
      '`%s` on your component more than once. This conflict may be due ' +
      'to a mixin.',
      name
    ) : invariant(specPolicy === SpecPolicy.DEFINE_MANY ||
    specPolicy === SpecPolicy.DEFINE_MANY_MERGED));
  }
}

/**
 * Mixin helper which handles policy validation and reserved
 * specification keys when building React classses.
 */
function mixSpecIntoComponent(Constructor, spec) {
  if (!spec) {
    return;
  }

  ("production" !== process.env.NODE_ENV ? invariant(
    typeof spec !== 'function',
    'ReactClass: You\'re attempting to ' +
    'use a component class as a mixin. Instead, just use a regular object.'
  ) : invariant(typeof spec !== 'function'));
  ("production" !== process.env.NODE_ENV ? invariant(
    !ReactElement.isValidElement(spec),
    'ReactClass: You\'re attempting to ' +
    'use a component as a mixin. Instead, just use a regular object.'
  ) : invariant(!ReactElement.isValidElement(spec)));

  var proto = Constructor.prototype;

  // By handling mixins before any other properties, we ensure the same
  // chaining order is applied to methods with DEFINE_MANY policy, whether
  // mixins are listed before or after these methods in the spec.
  if (spec.hasOwnProperty(MIXINS_KEY)) {
    RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);
  }

  for (var name in spec) {
    if (!spec.hasOwnProperty(name)) {
      continue;
    }

    if (name === MIXINS_KEY) {
      // We have already handled mixins in a special case above
      continue;
    }

    var property = spec[name];
    validateMethodOverride(proto, name);

    if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {
      RESERVED_SPEC_KEYS[name](Constructor, property);
    } else {
      // Setup methods on prototype:
      // The following member methods should not be automatically bound:
      // 1. Expected ReactClass methods (in the "interface").
      // 2. Overridden methods (that were mixed in).
      var isReactClassMethod =
        ReactClassInterface.hasOwnProperty(name);
      var isAlreadyDefined = proto.hasOwnProperty(name);
      var markedDontBind = property && property.__reactDontBind;
      var isFunction = typeof property === 'function';
      var shouldAutoBind =
        isFunction &&
        !isReactClassMethod &&
        !isAlreadyDefined &&
        !markedDontBind;

      if (shouldAutoBind) {
        if (!proto.__reactAutoBindMap) {
          proto.__reactAutoBindMap = {};
        }
        proto.__reactAutoBindMap[name] = property;
        proto[name] = property;
      } else {
        if (isAlreadyDefined) {
          var specPolicy = ReactClassInterface[name];

          // These cases should already be caught by validateMethodOverride
          ("production" !== process.env.NODE_ENV ? invariant(
            isReactClassMethod && (
              (specPolicy === SpecPolicy.DEFINE_MANY_MERGED || specPolicy === SpecPolicy.DEFINE_MANY)
            ),
            'ReactClass: Unexpected spec policy %s for key %s ' +
            'when mixing in component specs.',
            specPolicy,
            name
          ) : invariant(isReactClassMethod && (
            (specPolicy === SpecPolicy.DEFINE_MANY_MERGED || specPolicy === SpecPolicy.DEFINE_MANY)
          )));

          // For methods which are defined more than once, call the existing
          // methods before calling the new property, merging if appropriate.
          if (specPolicy === SpecPolicy.DEFINE_MANY_MERGED) {
            proto[name] = createMergedResultFunction(proto[name], property);
          } else if (specPolicy === SpecPolicy.DEFINE_MANY) {
            proto[name] = createChainedFunction(proto[name], property);
          }
        } else {
          proto[name] = property;
          if ("production" !== process.env.NODE_ENV) {
            // Add verbose displayName to the function, which helps when looking
            // at profiling tools.
            if (typeof property === 'function' && spec.displayName) {
              proto[name].displayName = spec.displayName + '_' + name;
            }
          }
        }
      }
    }
  }
}

function mixStaticSpecIntoComponent(Constructor, statics) {
  if (!statics) {
    return;
  }
  for (var name in statics) {
    var property = statics[name];
    if (!statics.hasOwnProperty(name)) {
      continue;
    }

    var isReserved = name in RESERVED_SPEC_KEYS;
    ("production" !== process.env.NODE_ENV ? invariant(
      !isReserved,
      'ReactClass: You are attempting to define a reserved ' +
      'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' +
      'as an instance property instead; it will still be accessible on the ' +
      'constructor.',
      name
    ) : invariant(!isReserved));

    var isInherited = name in Constructor;
    ("production" !== process.env.NODE_ENV ? invariant(
      !isInherited,
      'ReactClass: You are attempting to define ' +
      '`%s` on your component more than once. This conflict may be ' +
      'due to a mixin.',
      name
    ) : invariant(!isInherited));
    Constructor[name] = property;
  }
}

/**
 * Merge two objects, but throw if both contain the same key.
 *
 * @param {object} one The first object, which is mutated.
 * @param {object} two The second object
 * @return {object} one after it has been mutated to contain everything in two.
 */
function mergeIntoWithNoDuplicateKeys(one, two) {
  ("production" !== process.env.NODE_ENV ? invariant(
    one && two && typeof one === 'object' && typeof two === 'object',
    'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'
  ) : invariant(one && two && typeof one === 'object' && typeof two === 'object'));

  for (var key in two) {
    if (two.hasOwnProperty(key)) {
      ("production" !== process.env.NODE_ENV ? invariant(
        one[key] === undefined,
        'mergeIntoWithNoDuplicateKeys(): ' +
        'Tried to merge two objects with the same key: `%s`. This conflict ' +
        'may be due to a mixin; in particular, this may be caused by two ' +
        'getInitialState() or getDefaultProps() methods returning objects ' +
        'with clashing keys.',
        key
      ) : invariant(one[key] === undefined));
      one[key] = two[key];
    }
  }
  return one;
}

/**
 * Creates a function that invokes two functions and merges their return values.
 *
 * @param {function} one Function to invoke first.
 * @param {function} two Function to invoke second.
 * @return {function} Function that invokes the two argument functions.
 * @private
 */
function createMergedResultFunction(one, two) {
  return function mergedResult() {
    var a = one.apply(this, arguments);
    var b = two.apply(this, arguments);
    if (a == null) {
      return b;
    } else if (b == null) {
      return a;
    }
    var c = {};
    mergeIntoWithNoDuplicateKeys(c, a);
    mergeIntoWithNoDuplicateKeys(c, b);
    return c;
  };
}

/**
 * Creates a function that invokes two functions and ignores their return vales.
 *
 * @param {function} one Function to invoke first.
 * @param {function} two Function to invoke second.
 * @return {function} Function that invokes the two argument functions.
 * @private
 */
function createChainedFunction(one, two) {
  return function chainedFunction() {
    one.apply(this, arguments);
    two.apply(this, arguments);
  };
}

/**
 * Binds a method to the component.
 *
 * @param {object} component Component whose method is going to be bound.
 * @param {function} method Method to be bound.
 * @return {function} The bound method.
 */
function bindAutoBindMethod(component, method) {
  var boundMethod = method.bind(component);
  if ("production" !== process.env.NODE_ENV) {
    boundMethod.__reactBoundContext = component;
    boundMethod.__reactBoundMethod = method;
    boundMethod.__reactBoundArguments = null;
    var componentName = component.constructor.displayName;
    var _bind = boundMethod.bind;
    /* eslint-disable block-scoped-var, no-undef */
    boundMethod.bind = function(newThis ) {for (var args=[],$__0=1,$__1=arguments.length;$__0<$__1;$__0++) args.push(arguments[$__0]);
      // User is trying to bind() an autobound method; we effectively will
      // ignore the value of "this" that the user is trying to use, so
      // let's warn.
      if (newThis !== component && newThis !== null) {
        ("production" !== process.env.NODE_ENV ? warning(
          false,
          'bind(): React component methods may only be bound to the ' +
          'component instance. See %s',
          componentName
        ) : null);
      } else if (!args.length) {
        ("production" !== process.env.NODE_ENV ? warning(
          false,
          'bind(): You are binding a component method to the component. ' +
          'React does this for you automatically in a high-performance ' +
          'way, so you can safely remove this call. See %s',
          componentName
        ) : null);
        return boundMethod;
      }
      var reboundMethod = _bind.apply(boundMethod, arguments);
      reboundMethod.__reactBoundContext = component;
      reboundMethod.__reactBoundMethod = method;
      reboundMethod.__reactBoundArguments = args;
      return reboundMethod;
      /* eslint-enable */
    };
  }
  return boundMethod;
}

/**
 * Binds all auto-bound methods in a component.
 *
 * @param {object} component Component whose method is going to be bound.
 */
function bindAutoBindMethods(component) {
  for (var autoBindKey in component.__reactAutoBindMap) {
    if (component.__reactAutoBindMap.hasOwnProperty(autoBindKey)) {
      var method = component.__reactAutoBindMap[autoBindKey];
      component[autoBindKey] = bindAutoBindMethod(
        component,
        ReactErrorUtils.guard(
          method,
          component.constructor.displayName + '.' + autoBindKey
        )
      );
    }
  }
}

var typeDeprecationDescriptor = {
  enumerable: false,
  get: function() {
    var displayName = this.displayName || this.name || 'Component';
    ("production" !== process.env.NODE_ENV ? warning(
      false,
      '%s.type is deprecated. Use %s directly to access the class.',
      displayName,
      displayName
    ) : null);
    Object.defineProperty(this, 'type', {
      value: this
    });
    return this;
  }
};

/**
 * Add more to the ReactClass base class. These are all legacy features and
 * therefore not already part of the modern ReactComponent.
 */
var ReactClassMixin = {

  /**
   * TODO: This will be deprecated because state should always keep a consistent
   * type signature and the only use case for this, is to avoid that.
   */
  replaceState: function(newState, callback) {
    ReactUpdateQueue.enqueueReplaceState(this, newState);
    if (callback) {
      ReactUpdateQueue.enqueueCallback(this, callback);
    }
  },

  /**
   * Checks whether or not this composite component is mounted.
   * @return {boolean} True if mounted, false otherwise.
   * @protected
   * @final
   */
  isMounted: function() {
    if ("production" !== process.env.NODE_ENV) {
      var owner = ReactCurrentOwner.current;
      if (owner !== null) {
        ("production" !== process.env.NODE_ENV ? warning(
          owner._warnedAboutRefsInRender,
          '%s is accessing isMounted inside its render() function. ' +
          'render() should be a pure function of props and state. It should ' +
          'never access something that requires stale data from the previous ' +
          'render, such as refs. Move this logic to componentDidMount and ' +
          'componentDidUpdate instead.',
          owner.getName() || 'A component'
        ) : null);
        owner._warnedAboutRefsInRender = true;
      }
    }
    var internalInstance = ReactInstanceMap.get(this);
    return (
      internalInstance &&
      internalInstance !== ReactLifeCycle.currentlyMountingInstance
    );
  },

  /**
   * Sets a subset of the props.
   *
   * @param {object} partialProps Subset of the next props.
   * @param {?function} callback Called after props are updated.
   * @final
   * @public
   * @deprecated
   */
  setProps: function(partialProps, callback) {
    ReactUpdateQueue.enqueueSetProps(this, partialProps);
    if (callback) {
      ReactUpdateQueue.enqueueCallback(this, callback);
    }
  },

  /**
   * Replace all the props.
   *
   * @param {object} newProps Subset of the next props.
   * @param {?function} callback Called after props are updated.
   * @final
   * @public
   * @deprecated
   */
  replaceProps: function(newProps, callback) {
    ReactUpdateQueue.enqueueReplaceProps(this, newProps);
    if (callback) {
      ReactUpdateQueue.enqueueCallback(this, callback);
    }
  }
};

var ReactClassComponent = function() {};
assign(
  ReactClassComponent.prototype,
  ReactComponent.prototype,
  ReactClassMixin
);

/**
 * Module for creating composite components.
 *
 * @class ReactClass
 */
var ReactClass = {

  /**
   * Creates a composite component class given a class specification.
   *
   * @param {object} spec Class specification (which must define `render`).
   * @return {function} Component constructor function.
   * @public
   */
  createClass: function(spec) {
    var Constructor = function(props, context) {
      // This constructor is overridden by mocks. The argument is used
      // by mocks to assert on what gets mounted.

      if ("production" !== process.env.NODE_ENV) {
        ("production" !== process.env.NODE_ENV ? warning(
          this instanceof Constructor,
          'Something is calling a React component directly. Use a factory or ' +
          'JSX instead. See: https://fb.me/react-legacyfactory'
        ) : null);
      }

      // Wire up auto-binding
      if (this.__reactAutoBindMap) {
        bindAutoBindMethods(this);
      }

      this.props = props;
      this.context = context;
      this.state = null;

      // ReactClasses doesn't have constructors. Instead, they use the
      // getInitialState and componentWillMount methods for initialization.

      var initialState = this.getInitialState ? this.getInitialState() : null;
      if ("production" !== process.env.NODE_ENV) {
        // We allow auto-mocks to proceed as if they're returning null.
        if (typeof initialState === 'undefined' &&
            this.getInitialState._isMockFunction) {
          // This is probably bad practice. Consider warning here and
          // deprecating this convenience.
          initialState = null;
        }
      }
      ("production" !== process.env.NODE_ENV ? invariant(
        typeof initialState === 'object' && !Array.isArray(initialState),
        '%s.getInitialState(): must return an object or null',
        Constructor.displayName || 'ReactCompositeComponent'
      ) : invariant(typeof initialState === 'object' && !Array.isArray(initialState)));

      this.state = initialState;
    };
    Constructor.prototype = new ReactClassComponent();
    Constructor.prototype.constructor = Constructor;

    injectedMixins.forEach(
      mixSpecIntoComponent.bind(null, Constructor)
    );

    mixSpecIntoComponent(Constructor, spec);

    // Initialize the defaultProps property after all mixins have been merged
    if (Constructor.getDefaultProps) {
      Constructor.defaultProps = Constructor.getDefaultProps();
    }

    if ("production" !== process.env.NODE_ENV) {
      // This is a tag to indicate that the use of these method names is ok,
      // since it's used with createClass. If it's not, then it's likely a
      // mistake so we'll warn you to use the static property, property
      // initializer or constructor respectively.
      if (Constructor.getDefaultProps) {
        Constructor.getDefaultProps.isReactClassApproved = {};
      }
      if (Constructor.prototype.getInitialState) {
        Constructor.prototype.getInitialState.isReactClassApproved = {};
      }
    }

    ("production" !== process.env.NODE_ENV ? invariant(
      Constructor.prototype.render,
      'createClass(...): Class specification must implement a `render` method.'
    ) : invariant(Constructor.prototype.render));

    if ("production" !== process.env.NODE_ENV) {
      ("production" !== process.env.NODE_ENV ? warning(
        !Constructor.prototype.componentShouldUpdate,
        '%s has a method called ' +
        'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +
        'The name is phrased as a question because the function is ' +
        'expected to return a value.',
        spec.displayName || 'A component'
      ) : null);
    }

    // Reduce time spent doing lookups by setting these on the prototype.
    for (var methodName in ReactClassInterface) {
      if (!Constructor.prototype[methodName]) {
        Constructor.prototype[methodName] = null;
      }
    }

    // Legacy hook
    Constructor.type = Constructor;
    if ("production" !== process.env.NODE_ENV) {
      try {
        Object.defineProperty(Constructor, 'type', typeDeprecationDescriptor);
      } catch (x) {
        // IE will fail on defineProperty (es5-shim/sham too)
      }
    }

    return Constructor;
  },

  injection: {
    injectMixin: function(mixin) {
      injectedMixins.push(mixin);
    }
  }

};

module.exports = ReactClass;

}).call(this,require("1YiZ5S"))
},{"./Object.assign":40,"./ReactComponent":50,"./ReactCurrentOwner":56,"./ReactElement":74,"./ReactErrorUtils":77,"./ReactInstanceMap":84,"./ReactLifeCycle":85,"./ReactPropTypeLocationNames":95,"./ReactPropTypeLocations":96,"./ReactUpdateQueue":110,"./invariant":162,"./keyMirror":168,"./keyOf":169,"./warning":183,"1YiZ5S":5}],50:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactComponent
 */

'use strict';

var ReactUpdateQueue = require("./ReactUpdateQueue");

var invariant = require("./invariant");
var warning = require("./warning");

/**
 * Base class helpers for the updating state of a component.
 */
function ReactComponent(props, context) {
  this.props = props;
  this.context = context;
}

/**
 * Sets a subset of the state. Always use this to mutate
 * state. You should treat `this.state` as immutable.
 *
 * There is no guarantee that `this.state` will be immediately updated, so
 * accessing `this.state` after calling this method may return the old value.
 *
 * There is no guarantee that calls to `setState` will run synchronously,
 * as they may eventually be batched together.  You can provide an optional
 * callback that will be executed when the call to setState is actually
 * completed.
 *
 * When a function is provided to setState, it will be called at some point in
 * the future (not synchronously). It will be called with the up to date
 * component arguments (state, props, context). These values can be different
 * from this.* because your function may be called after receiveProps but before
 * shouldComponentUpdate, and this new state, props, and context will not yet be
 * assigned to this.
 *
 * @param {object|function} partialState Next partial state or function to
 *        produce next partial state to be merged with current state.
 * @param {?function} callback Called after state is updated.
 * @final
 * @protected
 */
ReactComponent.prototype.setState = function(partialState, callback) {
  ("production" !== process.env.NODE_ENV ? invariant(
    typeof partialState === 'object' ||
    typeof partialState === 'function' ||
    partialState == null,
    'setState(...): takes an object of state variables to update or a ' +
    'function which returns an object of state variables.'
  ) : invariant(typeof partialState === 'object' ||
  typeof partialState === 'function' ||
  partialState == null));
  if ("production" !== process.env.NODE_ENV) {
    ("production" !== process.env.NODE_ENV ? warning(
      partialState != null,
      'setState(...): You passed an undefined or null state object; ' +
      'instead, use forceUpdate().'
    ) : null);
  }
  ReactUpdateQueue.enqueueSetState(this, partialState);
  if (callback) {
    ReactUpdateQueue.enqueueCallback(this, callback);
  }
};

/**
 * Forces an update. This should only be invoked when it is known with
 * certainty that we are **not** in a DOM transaction.
 *
 * You may want to call this when you know that some deeper aspect of the
 * component's state has changed but `setState` was not called.
 *
 * This will not invoke `shouldComponentUpdate`, but it will invoke
 * `componentWillUpdate` and `componentDidUpdate`.
 *
 * @param {?function} callback Called after update is complete.
 * @final
 * @protected
 */
ReactComponent.prototype.forceUpdate = function(callback) {
  ReactUpdateQueue.enqueueForceUpdate(this);
  if (callback) {
    ReactUpdateQueue.enqueueCallback(this, callback);
  }
};

/**
 * Deprecated APIs. These APIs used to exist on classic React classes but since
 * we would like to deprecate them, we're not going to move them over to this
 * modern base class. Instead, we define a getter that warns if it's accessed.
 */
if ("production" !== process.env.NODE_ENV) {
  var deprecatedAPIs = {
    getDOMNode: [
      'getDOMNode',
      'Use React.findDOMNode(component) instead.'
    ],
    isMounted: [
      'isMounted',
      'Instead, make sure to clean up subscriptions and pending requests in ' +
      'componentWillUnmount to prevent memory leaks.'
    ],
    replaceProps: [
      'replaceProps',
      'Instead, call React.render again at the top level.'
    ],
    replaceState: [
      'replaceState',
      'Refactor your code to use setState instead (see ' +
      'https://github.com/facebook/react/issues/3236).'
    ],
    setProps: [
      'setProps',
      'Instead, call React.render again at the top level.'
    ]
  };
  var defineDeprecationWarning = function(methodName, info) {
    try {
      Object.defineProperty(ReactComponent.prototype, methodName, {
        get: function() {
          ("production" !== process.env.NODE_ENV ? warning(
            false,
            '%s(...) is deprecated in plain JavaScript React classes. %s',
            info[0],
            info[1]
          ) : null);
          return undefined;
        }
      });
    } catch (x) {
      // IE will fail on defineProperty (es5-shim/sham too)
    }
  };
  for (var fnName in deprecatedAPIs) {
    if (deprecatedAPIs.hasOwnProperty(fnName)) {
      defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);
    }
  }
}

module.exports = ReactComponent;

}).call(this,require("1YiZ5S"))
},{"./ReactUpdateQueue":110,"./invariant":162,"./warning":183,"1YiZ5S":5}],51:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactComponentBrowserEnvironment
 */

/*jslint evil: true */

'use strict';

var ReactDOMIDOperations = require("./ReactDOMIDOperations");
var ReactMount = require("./ReactMount");

/**
 * Abstracts away all functionality of the reconciler that requires knowledge of
 * the browser context. TODO: These callers should be refactored to avoid the
 * need for this injection.
 */
var ReactComponentBrowserEnvironment = {

  processChildrenUpdates:
    ReactDOMIDOperations.dangerouslyProcessChildrenUpdates,

  replaceNodeWithMarkupByID:
    ReactDOMIDOperations.dangerouslyReplaceNodeWithMarkupByID,

  /**
   * If a particular environment requires that some resources be cleaned up,
   * specify this in the injected Mixin. In the DOM, we would likely want to
   * purge any cached node ID lookups.
   *
   * @private
   */
  unmountIDFromEnvironment: function(rootNodeID) {
    ReactMount.purgeID(rootNodeID);
  }

};

module.exports = ReactComponentBrowserEnvironment;

},{"./ReactDOMIDOperations":61,"./ReactMount":88}],52:[function(require,module,exports){
(function (process){
/**
 * Copyright 2014-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactComponentEnvironment
 */

'use strict';

var invariant = require("./invariant");

var injected = false;

var ReactComponentEnvironment = {

  /**
   * Optionally injectable environment dependent cleanup hook. (server vs.
   * browser etc). Example: A browser system caches DOM nodes based on component
   * ID and must remove that cache entry when this instance is unmounted.
   */
  unmountIDFromEnvironment: null,

  /**
   * Optionally injectable hook for swapping out mount images in the middle of
   * the tree.
   */
  replaceNodeWithMarkupByID: null,

  /**
   * Optionally injectable hook for processing a queue of child updates. Will
   * later move into MultiChildComponents.
   */
  processChildrenUpdates: null,

  injection: {
    injectEnvironment: function(environment) {
      ("production" !== process.env.NODE_ENV ? invariant(
        !injected,
        'ReactCompositeComponent: injectEnvironment() can only be called once.'
      ) : invariant(!injected));
      ReactComponentEnvironment.unmountIDFromEnvironment =
        environment.unmountIDFromEnvironment;
      ReactComponentEnvironment.replaceNodeWithMarkupByID =
        environment.replaceNodeWithMarkupByID;
      ReactComponentEnvironment.processChildrenUpdates =
        environment.processChildrenUpdates;
      injected = true;
    }
  }

};

module.exports = ReactComponentEnvironment;

}).call(this,require("1YiZ5S"))
},{"./invariant":162,"1YiZ5S":5}],53:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
* @providesModule ReactComponentWithPureRenderMixin
*/

'use strict';

var shallowEqual = require("./shallowEqual");

/**
 * If your React component's render function is "pure", e.g. it will render the
 * same result given the same props and state, provide this Mixin for a
 * considerable performance boost.
 *
 * Most React components have pure render functions.
 *
 * Example:
 *
 *   var ReactComponentWithPureRenderMixin =
 *     require('ReactComponentWithPureRenderMixin');
 *   React.createClass({
 *     mixins: [ReactComponentWithPureRenderMixin],
 *
 *     render: function() {
 *       return <div className={this.props.className}>foo</div>;
 *     }
 *   });
 *
 * Note: This only checks shallow equality for props and state. If these contain
 * complex data structures this mixin may have false-negatives for deeper
 * differences. Only mixin to components which have simple props and state, or
 * use `forceUpdate()` when you know deep data structures have changed.
 */
var ReactComponentWithPureRenderMixin = {
  shouldComponentUpdate: function(nextProps, nextState) {
    return !shallowEqual(this.props, nextProps) ||
           !shallowEqual(this.state, nextState);
  }
};

module.exports = ReactComponentWithPureRenderMixin;

},{"./shallowEqual":178}],54:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactCompositeComponent
 */

'use strict';

var ReactComponentEnvironment = require("./ReactComponentEnvironment");
var ReactContext = require("./ReactContext");
var ReactCurrentOwner = require("./ReactCurrentOwner");
var ReactElement = require("./ReactElement");
var ReactElementValidator = require("./ReactElementValidator");
var ReactInstanceMap = require("./ReactInstanceMap");
var ReactLifeCycle = require("./ReactLifeCycle");
var ReactNativeComponent = require("./ReactNativeComponent");
var ReactPerf = require("./ReactPerf");
var ReactPropTypeLocations = require("./ReactPropTypeLocations");
var ReactPropTypeLocationNames = require("./ReactPropTypeLocationNames");
var ReactReconciler = require("./ReactReconciler");
var ReactUpdates = require("./ReactUpdates");

var assign = require("./Object.assign");
var emptyObject = require("./emptyObject");
var invariant = require("./invariant");
var shouldUpdateReactComponent = require("./shouldUpdateReactComponent");
var warning = require("./warning");

function getDeclarationErrorAddendum(component) {
  var owner = component._currentElement._owner || null;
  if (owner) {
    var name = owner.getName();
    if (name) {
      return ' Check the render method of `' + name + '`.';
    }
  }
  return '';
}

/**
 * ------------------ The Life-Cycle of a Composite Component ------------------
 *
 * - constructor: Initialization of state. The instance is now retained.
 *   - componentWillMount
 *   - render
 *   - [children's constructors]
 *     - [children's componentWillMount and render]
 *     - [children's componentDidMount]
 *     - componentDidMount
 *
 *       Update Phases:
 *       - componentWillReceiveProps (only called if parent updated)
 *       - shouldComponentUpdate
 *         - componentWillUpdate
 *           - render
 *           - [children's constructors or receive props phases]
 *         - componentDidUpdate
 *
 *     - componentWillUnmount
 *     - [children's componentWillUnmount]
 *   - [children destroyed]
 * - (destroyed): The instance is now blank, released by React and ready for GC.
 *
 * -----------------------------------------------------------------------------
 */

/**
 * An incrementing ID assigned to each component when it is mounted. This is
 * used to enforce the order in which `ReactUpdates` updates dirty components.
 *
 * @private
 */
var nextMountID = 1;

/**
 * @lends {ReactCompositeComponent.prototype}
 */
var ReactCompositeComponentMixin = {

  /**
   * Base constructor for all composite component.
   *
   * @param {ReactElement} element
   * @final
   * @internal
   */
  construct: function(element) {
    this._currentElement = element;
    this._rootNodeID = null;
    this._instance = null;

    // See ReactUpdateQueue
    this._pendingElement = null;
    this._pendingStateQueue = null;
    this._pendingReplaceState = false;
    this._pendingForceUpdate = false;

    this._renderedComponent = null;

    this._context = null;
    this._mountOrder = 0;
    this._isTopLevel = false;

    // See ReactUpdates and ReactUpdateQueue.
    this._pendingCallbacks = null;
  },

  /**
   * Initializes the component, renders markup, and registers event listeners.
   *
   * @param {string} rootID DOM ID of the root node.
   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction
   * @return {?string} Rendered markup to be inserted into the DOM.
   * @final
   * @internal
   */
  mountComponent: function(rootID, transaction, context) {
    this._context = context;
    this._mountOrder = nextMountID++;
    this._rootNodeID = rootID;

    var publicProps = this._processProps(this._currentElement.props);
    var publicContext = this._processContext(this._currentElement._context);

    var Component = ReactNativeComponent.getComponentClassForElement(
      this._currentElement
    );

    // Initialize the public class
    var inst = new Component(publicProps, publicContext);

    if ("production" !== process.env.NODE_ENV) {
      // This will throw later in _renderValidatedComponent, but add an early
      // warning now to help debugging
      ("production" !== process.env.NODE_ENV ? warning(
        inst.render != null,
        '%s(...): No `render` method found on the returned component ' +
        'instance: you may have forgotten to define `render` in your ' +
        'component or you may have accidentally tried to render an element ' +
        'whose type is a function that isn\'t a React component.',
        Component.displayName || Component.name || 'Component'
      ) : null);
    }

    // These should be set up in the constructor, but as a convenience for
    // simpler class abstractions, we set them up after the fact.
    inst.props = publicProps;
    inst.context = publicContext;
    inst.refs = emptyObject;

    this._instance = inst;

    // Store a reference from the instance back to the internal representation
    ReactInstanceMap.set(inst, this);

    if ("production" !== process.env.NODE_ENV) {
      this._warnIfContextsDiffer(this._currentElement._context, context);
    }

    if ("production" !== process.env.NODE_ENV) {
      // Since plain JS classes are defined without any special initialization
      // logic, we can not catch common errors early. Therefore, we have to
      // catch them here, at initialization time, instead.
      ("production" !== process.env.NODE_ENV ? warning(
        !inst.getInitialState ||
        inst.getInitialState.isReactClassApproved,
        'getInitialState was defined on %s, a plain JavaScript class. ' +
        'This is only supported for classes created using React.createClass. ' +
        'Did you mean to define a state property instead?',
        this.getName() || 'a component'
      ) : null);
      ("production" !== process.env.NODE_ENV ? warning(
        !inst.getDefaultProps ||
        inst.getDefaultProps.isReactClassApproved,
        'getDefaultProps was defined on %s, a plain JavaScript class. ' +
        'This is only supported for classes created using React.createClass. ' +
        'Use a static property to define defaultProps instead.',
        this.getName() || 'a component'
      ) : null);
      ("production" !== process.env.NODE_ENV ? warning(
        !inst.propTypes,
        'propTypes was defined as an instance property on %s. Use a static ' +
        'property to define propTypes instead.',
        this.getName() || 'a component'
      ) : null);
      ("production" !== process.env.NODE_ENV ? warning(
        !inst.contextTypes,
        'contextTypes was defined as an instance property on %s. Use a ' +
        'static property to define contextTypes instead.',
        this.getName() || 'a component'
      ) : null);
      ("production" !== process.env.NODE_ENV ? warning(
        typeof inst.componentShouldUpdate !== 'function',
        '%s has a method called ' +
        'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +
        'The name is phrased as a question because the function is ' +
        'expected to return a value.',
        (this.getName() || 'A component')
      ) : null);
    }

    var initialState = inst.state;
    if (initialState === undefined) {
      inst.state = initialState = null;
    }
    ("production" !== process.env.NODE_ENV ? invariant(
      typeof initialState === 'object' && !Array.isArray(initialState),
      '%s.state: must be set to an object or null',
      this.getName() || 'ReactCompositeComponent'
    ) : invariant(typeof initialState === 'object' && !Array.isArray(initialState)));

    this._pendingStateQueue = null;
    this._pendingReplaceState = false;
    this._pendingForceUpdate = false;

    var childContext;
    var renderedElement;

    var previouslyMounting = ReactLifeCycle.currentlyMountingInstance;
    ReactLifeCycle.currentlyMountingInstance = this;
    try {
      if (inst.componentWillMount) {
        inst.componentWillMount();
        // When mounting, calls to `setState` by `componentWillMount` will set
        // `this._pendingStateQueue` without triggering a re-render.
        if (this._pendingStateQueue) {
          inst.state = this._processPendingState(inst.props, inst.context);
        }
      }

      childContext = this._getValidatedChildContext(context);
      renderedElement = this._renderValidatedComponent(childContext);
    } finally {
      ReactLifeCycle.currentlyMountingInstance = previouslyMounting;
    }

    this._renderedComponent = this._instantiateReactComponent(
      renderedElement,
      this._currentElement.type // The wrapping type
    );

    var markup = ReactReconciler.mountComponent(
      this._renderedComponent,
      rootID,
      transaction,
      this._mergeChildContext(context, childContext)
    );
    if (inst.componentDidMount) {
      transaction.getReactMountReady().enqueue(inst.componentDidMount, inst);
    }

    return markup;
  },

  /**
   * Releases any resources allocated by `mountComponent`.
   *
   * @final
   * @internal
   */
  unmountComponent: function() {
    var inst = this._instance;

    if (inst.componentWillUnmount) {
      var previouslyUnmounting = ReactLifeCycle.currentlyUnmountingInstance;
      ReactLifeCycle.currentlyUnmountingInstance = this;
      try {
        inst.componentWillUnmount();
      } finally {
        ReactLifeCycle.currentlyUnmountingInstance = previouslyUnmounting;
      }
    }

    ReactReconciler.unmountComponent(this._renderedComponent);
    this._renderedComponent = null;

    // Reset pending fields
    this._pendingStateQueue = null;
    this._pendingReplaceState = false;
    this._pendingForceUpdate = false;
    this._pendingCallbacks = null;
    this._pendingElement = null;

    // These fields do not really need to be reset since this object is no
    // longer accessible.
    this._context = null;
    this._rootNodeID = null;

    // Delete the reference from the instance to this internal representation
    // which allow the internals to be properly cleaned up even if the user
    // leaks a reference to the public instance.
    ReactInstanceMap.remove(inst);

    // Some existing components rely on inst.props even after they've been
    // destroyed (in event handlers).
    // TODO: inst.props = null;
    // TODO: inst.state = null;
    // TODO: inst.context = null;
  },

  /**
   * Schedule a partial update to the props. Only used for internal testing.
   *
   * @param {object} partialProps Subset of the next props.
   * @param {?function} callback Called after props are updated.
   * @final
   * @internal
   */
  _setPropsInternal: function(partialProps, callback) {
    // This is a deoptimized path. We optimize for always having an element.
    // This creates an extra internal element.
    var element = this._pendingElement || this._currentElement;
    this._pendingElement = ReactElement.cloneAndReplaceProps(
      element,
      assign({}, element.props, partialProps)
    );
    ReactUpdates.enqueueUpdate(this, callback);
  },

  /**
   * Filters the context object to only contain keys specified in
   * `contextTypes`
   *
   * @param {object} context
   * @return {?object}
   * @private
   */
  _maskContext: function(context) {
    var maskedContext = null;
    // This really should be getting the component class for the element,
    // but we know that we're not going to need it for built-ins.
    if (typeof this._currentElement.type === 'string') {
      return emptyObject;
    }
    var contextTypes = this._currentElement.type.contextTypes;
    if (!contextTypes) {
      return emptyObject;
    }
    maskedContext = {};
    for (var contextName in contextTypes) {
      maskedContext[contextName] = context[contextName];
    }
    return maskedContext;
  },

  /**
   * Filters the context object to only contain keys specified in
   * `contextTypes`, and asserts that they are valid.
   *
   * @param {object} context
   * @return {?object}
   * @private
   */
  _processContext: function(context) {
    var maskedContext = this._maskContext(context);
    if ("production" !== process.env.NODE_ENV) {
      var Component = ReactNativeComponent.getComponentClassForElement(
        this._currentElement
      );
      if (Component.contextTypes) {
        this._checkPropTypes(
          Component.contextTypes,
          maskedContext,
          ReactPropTypeLocations.context
        );
      }
    }
    return maskedContext;
  },

  /**
   * @param {object} currentContext
   * @return {object}
   * @private
   */
  _getValidatedChildContext: function(currentContext) {
    var inst = this._instance;
    var childContext = inst.getChildContext && inst.getChildContext();
    if (childContext) {
      ("production" !== process.env.NODE_ENV ? invariant(
        typeof inst.constructor.childContextTypes === 'object',
        '%s.getChildContext(): childContextTypes must be defined in order to ' +
        'use getChildContext().',
        this.getName() || 'ReactCompositeComponent'
      ) : invariant(typeof inst.constructor.childContextTypes === 'object'));
      if ("production" !== process.env.NODE_ENV) {
        this._checkPropTypes(
          inst.constructor.childContextTypes,
          childContext,
          ReactPropTypeLocations.childContext
        );
      }
      for (var name in childContext) {
        ("production" !== process.env.NODE_ENV ? invariant(
          name in inst.constructor.childContextTypes,
          '%s.getChildContext(): key "%s" is not defined in childContextTypes.',
          this.getName() || 'ReactCompositeComponent',
          name
        ) : invariant(name in inst.constructor.childContextTypes));
      }
      return childContext;
    }
    return null;
  },

  _mergeChildContext: function(currentContext, childContext) {
    if (childContext) {
      return assign({}, currentContext, childContext);
    }
    return currentContext;
  },

  /**
   * Processes props by setting default values for unspecified props and
   * asserting that the props are valid. Does not mutate its argument; returns
   * a new props object with defaults merged in.
   *
   * @param {object} newProps
   * @return {object}
   * @private
   */
  _processProps: function(newProps) {
    if ("production" !== process.env.NODE_ENV) {
      var Component = ReactNativeComponent.getComponentClassForElement(
        this._currentElement
      );
      if (Component.propTypes) {
        this._checkPropTypes(
          Component.propTypes,
          newProps,
          ReactPropTypeLocations.prop
        );
      }
    }
    return newProps;
  },

  /**
   * Assert that the props are valid
   *
   * @param {object} propTypes Map of prop name to a ReactPropType
   * @param {object} props
   * @param {string} location e.g. "prop", "context", "child context"
   * @private
   */
  _checkPropTypes: function(propTypes, props, location) {
    // TODO: Stop validating prop types here and only use the element
    // validation.
    var componentName = this.getName();
    for (var propName in propTypes) {
      if (propTypes.hasOwnProperty(propName)) {
        var error;
        try {
          // This is intentionally an invariant that gets caught. It's the same
          // behavior as without this statement except with a better message.
          ("production" !== process.env.NODE_ENV ? invariant(
            typeof propTypes[propName] === 'function',
            '%s: %s type `%s` is invalid; it must be a function, usually ' +
            'from React.PropTypes.',
            componentName || 'React class',
            ReactPropTypeLocationNames[location],
            propName
          ) : invariant(typeof propTypes[propName] === 'function'));
          error = propTypes[propName](props, propName, componentName, location);
        } catch (ex) {
          error = ex;
        }
        if (error instanceof Error) {
          // We may want to extend this logic for similar errors in
          // React.render calls, so I'm abstracting it away into
          // a function to minimize refactoring in the future
          var addendum = getDeclarationErrorAddendum(this);

          if (location === ReactPropTypeLocations.prop) {
            // Preface gives us something to blacklist in warning module
            ("production" !== process.env.NODE_ENV ? warning(
              false,
              'Failed Composite propType: %s%s',
              error.message,
              addendum
            ) : null);
          } else {
            ("production" !== process.env.NODE_ENV ? warning(
              false,
              'Failed Context Types: %s%s',
              error.message,
              addendum
            ) : null);
          }
        }
      }
    }
  },

  receiveComponent: function(nextElement, transaction, nextContext) {
    var prevElement = this._currentElement;
    var prevContext = this._context;

    this._pendingElement = null;

    this.updateComponent(
      transaction,
      prevElement,
      nextElement,
      prevContext,
      nextContext
    );
  },

  /**
   * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate`
   * is set, update the component.
   *
   * @param {ReactReconcileTransaction} transaction
   * @internal
   */
  performUpdateIfNecessary: function(transaction) {
    if (this._pendingElement != null) {
      ReactReconciler.receiveComponent(
        this,
        this._pendingElement || this._currentElement,
        transaction,
        this._context
      );
    }

    if (this._pendingStateQueue !== null || this._pendingForceUpdate) {
      if ("production" !== process.env.NODE_ENV) {
        ReactElementValidator.checkAndWarnForMutatedProps(
          this._currentElement
        );
      }

      this.updateComponent(
        transaction,
        this._currentElement,
        this._currentElement,
        this._context,
        this._context
      );
    }
  },

  /**
   * Compare two contexts, warning if they are different
   * TODO: Remove this check when owner-context is removed
   */
   _warnIfContextsDiffer: function(ownerBasedContext, parentBasedContext) {
    ownerBasedContext = this._maskContext(ownerBasedContext);
    parentBasedContext = this._maskContext(parentBasedContext);
    var parentKeys = Object.keys(parentBasedContext).sort();
    var displayName = this.getName() || 'ReactCompositeComponent';
    for (var i = 0; i < parentKeys.length; i++) {
      var key = parentKeys[i];
      ("production" !== process.env.NODE_ENV ? warning(
        ownerBasedContext[key] === parentBasedContext[key],
        'owner-based and parent-based contexts differ '  +
        '(values: `%s` vs `%s`) for key (%s) while mounting %s ' +
        '(see: http://fb.me/react-context-by-parent)',
        ownerBasedContext[key],
        parentBasedContext[key],
        key,
        displayName
      ) : null);
    }
  },

  /**
   * Perform an update to a mounted component. The componentWillReceiveProps and
   * shouldComponentUpdate methods are called, then (assuming the update isn't
   * skipped) the remaining update lifecycle methods are called and the DOM
   * representation is updated.
   *
   * By default, this implements React's rendering and reconciliation algorithm.
   * Sophisticated clients may wish to override this.
   *
   * @param {ReactReconcileTransaction} transaction
   * @param {ReactElement} prevParentElement
   * @param {ReactElement} nextParentElement
   * @internal
   * @overridable
   */
  updateComponent: function(
    transaction,
    prevParentElement,
    nextParentElement,
    prevUnmaskedContext,
    nextUnmaskedContext
  ) {
    var inst = this._instance;

    var nextContext = inst.context;
    var nextProps = inst.props;

    // Distinguish between a props update versus a simple state update
    if (prevParentElement !== nextParentElement) {
      nextContext = this._processContext(nextParentElement._context);
      nextProps = this._processProps(nextParentElement.props);

      if ("production" !== process.env.NODE_ENV) {
        if (nextUnmaskedContext != null) {
          this._warnIfContextsDiffer(
            nextParentElement._context,
            nextUnmaskedContext
          );
        }
      }

      // An update here will schedule an update but immediately set
      // _pendingStateQueue which will ensure that any state updates gets
      // immediately reconciled instead of waiting for the next batch.

      if (inst.componentWillReceiveProps) {
        inst.componentWillReceiveProps(nextProps, nextContext);
      }
    }

    var nextState = this._processPendingState(nextProps, nextContext);

    var shouldUpdate =
      this._pendingForceUpdate ||
      !inst.shouldComponentUpdate ||
      inst.shouldComponentUpdate(nextProps, nextState, nextContext);

    if ("production" !== process.env.NODE_ENV) {
      ("production" !== process.env.NODE_ENV ? warning(
        typeof shouldUpdate !== 'undefined',
        '%s.shouldComponentUpdate(): Returned undefined instead of a ' +
        'boolean value. Make sure to return true or false.',
        this.getName() || 'ReactCompositeComponent'
      ) : null);
    }

    if (shouldUpdate) {
      this._pendingForceUpdate = false;
      // Will set `this.props`, `this.state` and `this.context`.
      this._performComponentUpdate(
        nextParentElement,
        nextProps,
        nextState,
        nextContext,
        transaction,
        nextUnmaskedContext
      );
    } else {
      // If it's determined that a component should not update, we still want
      // to set props and state but we shortcut the rest of the update.
      this._currentElement = nextParentElement;
      this._context = nextUnmaskedContext;
      inst.props = nextProps;
      inst.state = nextState;
      inst.context = nextContext;
    }
  },

  _processPendingState: function(props, context) {
    var inst = this._instance;
    var queue = this._pendingStateQueue;
    var replace = this._pendingReplaceState;
    this._pendingReplaceState = false;
    this._pendingStateQueue = null;

    if (!queue) {
      return inst.state;
    }

    if (replace && queue.length === 1) {
      return queue[0];
    }

    var nextState = assign({}, replace ? queue[0] : inst.state);
    for (var i = replace ? 1 : 0; i < queue.length; i++) {
      var partial = queue[i];
      assign(
        nextState,
        typeof partial === 'function' ?
          partial.call(inst, nextState, props, context) :
          partial
      );
    }

    return nextState;
  },

  /**
   * Merges new props and state, notifies delegate methods of update and
   * performs update.
   *
   * @param {ReactElement} nextElement Next element
   * @param {object} nextProps Next public object to set as properties.
   * @param {?object} nextState Next object to set as state.
   * @param {?object} nextContext Next public object to set as context.
   * @param {ReactReconcileTransaction} transaction
   * @param {?object} unmaskedContext
   * @private
   */
  _performComponentUpdate: function(
    nextElement,
    nextProps,
    nextState,
    nextContext,
    transaction,
    unmaskedContext
  ) {
    var inst = this._instance;

    var prevProps = inst.props;
    var prevState = inst.state;
    var prevContext = inst.context;

    if (inst.componentWillUpdate) {
      inst.componentWillUpdate(nextProps, nextState, nextContext);
    }

    this._currentElement = nextElement;
    this._context = unmaskedContext;
    inst.props = nextProps;
    inst.state = nextState;
    inst.context = nextContext;

    this._updateRenderedComponent(transaction, unmaskedContext);

    if (inst.componentDidUpdate) {
      transaction.getReactMountReady().enqueue(
        inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext),
        inst
      );
    }
  },

  /**
   * Call the component's `render` method and update the DOM accordingly.
   *
   * @param {ReactReconcileTransaction} transaction
   * @internal
   */
  _updateRenderedComponent: function(transaction, context) {
    var prevComponentInstance = this._renderedComponent;
    var prevRenderedElement = prevComponentInstance._currentElement;
    var childContext = this._getValidatedChildContext();
    var nextRenderedElement = this._renderValidatedComponent(childContext);
    if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) {
      ReactReconciler.receiveComponent(
        prevComponentInstance,
        nextRenderedElement,
        transaction,
        this._mergeChildContext(context, childContext)
      );
    } else {
      // These two IDs are actually the same! But nothing should rely on that.
      var thisID = this._rootNodeID;
      var prevComponentID = prevComponentInstance._rootNodeID;
      ReactReconciler.unmountComponent(prevComponentInstance);

      this._renderedComponent = this._instantiateReactComponent(
        nextRenderedElement,
        this._currentElement.type
      );
      var nextMarkup = ReactReconciler.mountComponent(
        this._renderedComponent,
        thisID,
        transaction,
        this._mergeChildContext(context, childContext)
      );
      this._replaceNodeWithMarkupByID(prevComponentID, nextMarkup);
    }
  },

  /**
   * @protected
   */
  _replaceNodeWithMarkupByID: function(prevComponentID, nextMarkup) {
    ReactComponentEnvironment.replaceNodeWithMarkupByID(
      prevComponentID,
      nextMarkup
    );
  },

  /**
   * @protected
   */
  _renderValidatedComponentWithoutOwnerOrContext: function() {
    var inst = this._instance;
    var renderedComponent = inst.render();
    if ("production" !== process.env.NODE_ENV) {
      // We allow auto-mocks to proceed as if they're returning null.
      if (typeof renderedComponent === 'undefined' &&
          inst.render._isMockFunction) {
        // This is probably bad practice. Consider warning here and
        // deprecating this convenience.
        renderedComponent = null;
      }
    }

    return renderedComponent;
  },

  /**
   * @private
   */
  _renderValidatedComponent: function(childContext) {
    var renderedComponent;
    var previousContext = ReactContext.current;
    ReactContext.current = this._mergeChildContext(
      this._currentElement._context,
      childContext
    );
    ReactCurrentOwner.current = this;
    try {
      renderedComponent =
        this._renderValidatedComponentWithoutOwnerOrContext();
    } finally {
      ReactContext.current = previousContext;
      ReactCurrentOwner.current = null;
    }
    ("production" !== process.env.NODE_ENV ? invariant(
      // TODO: An `isValidNode` function would probably be more appropriate
      renderedComponent === null || renderedComponent === false ||
      ReactElement.isValidElement(renderedComponent),
      '%s.render(): A valid ReactComponent must be returned. You may have ' +
        'returned undefined, an array or some other invalid object.',
      this.getName() || 'ReactCompositeComponent'
    ) : invariant(// TODO: An `isValidNode` function would probably be more appropriate
    renderedComponent === null || renderedComponent === false ||
    ReactElement.isValidElement(renderedComponent)));
    return renderedComponent;
  },

  /**
   * Lazily allocates the refs object and stores `component` as `ref`.
   *
   * @param {string} ref Reference name.
   * @param {component} component Component to store as `ref`.
   * @final
   * @private
   */
  attachRef: function(ref, component) {
    var inst = this.getPublicInstance();
    var refs = inst.refs === emptyObject ? (inst.refs = {}) : inst.refs;
    refs[ref] = component.getPublicInstance();
  },

  /**
   * Detaches a reference name.
   *
   * @param {string} ref Name to dereference.
   * @final
   * @private
   */
  detachRef: function(ref) {
    var refs = this.getPublicInstance().refs;
    delete refs[ref];
  },

  /**
   * Get a text description of the component that can be used to identify it
   * in error messages.
   * @return {string} The name or null.
   * @internal
   */
  getName: function() {
    var type = this._currentElement.type;
    var constructor = this._instance && this._instance.constructor;
    return (
      type.displayName || (constructor && constructor.displayName) ||
      type.name || (constructor && constructor.name) ||
      null
    );
  },

  /**
   * Get the publicly accessible representation of this component - i.e. what
   * is exposed by refs and returned by React.render. Can be null for stateless
   * components.
   *
   * @return {ReactComponent} the public component instance.
   * @internal
   */
  getPublicInstance: function() {
    return this._instance;
  },

  // Stub
  _instantiateReactComponent: null

};

ReactPerf.measureMethods(
  ReactCompositeComponentMixin,
  'ReactCompositeComponent',
  {
    mountComponent: 'mountComponent',
    updateComponent: 'updateComponent',
    _renderValidatedComponent: '_renderValidatedComponent'
  }
);

var ReactCompositeComponent = {

  Mixin: ReactCompositeComponentMixin

};

module.exports = ReactCompositeComponent;

}).call(this,require("1YiZ5S"))
},{"./Object.assign":40,"./ReactComponentEnvironment":52,"./ReactContext":55,"./ReactCurrentOwner":56,"./ReactElement":74,"./ReactElementValidator":75,"./ReactInstanceMap":84,"./ReactLifeCycle":85,"./ReactNativeComponent":91,"./ReactPerf":93,"./ReactPropTypeLocationNames":95,"./ReactPropTypeLocations":96,"./ReactReconciler":100,"./ReactUpdates":111,"./emptyObject":142,"./invariant":162,"./shouldUpdateReactComponent":179,"./warning":183,"1YiZ5S":5}],55:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactContext
 */

'use strict';

var assign = require("./Object.assign");
var emptyObject = require("./emptyObject");
var warning = require("./warning");

var didWarn = false;

/**
 * Keeps track of the current context.
 *
 * The context is automatically passed down the component ownership hierarchy
 * and is accessible via `this.context` on ReactCompositeComponents.
 */
var ReactContext = {

  /**
   * @internal
   * @type {object}
   */
  current: emptyObject,

  /**
   * Temporarily extends the current context while executing scopedCallback.
   *
   * A typical use case might look like
   *
   *  render: function() {
   *    var children = ReactContext.withContext({foo: 'foo'}, () => (
   *
   *    ));
   *    return <div>{children}</div>;
   *  }
   *
   * @param {object} newContext New context to merge into the existing context
   * @param {function} scopedCallback Callback to run with the new context
   * @return {ReactComponent|array<ReactComponent>}
   */
  withContext: function(newContext, scopedCallback) {
    if ("production" !== process.env.NODE_ENV) {
      ("production" !== process.env.NODE_ENV ? warning(
        didWarn,
        'withContext is deprecated and will be removed in a future version. ' +
        'Use a wrapper component with getChildContext instead.'
      ) : null);

      didWarn = true;
    }

    var result;
    var previousContext = ReactContext.current;
    ReactContext.current = assign({}, previousContext, newContext);
    try {
      result = scopedCallback();
    } finally {
      ReactContext.current = previousContext;
    }
    return result;
  }

};

module.exports = ReactContext;

}).call(this,require("1YiZ5S"))
},{"./Object.assign":40,"./emptyObject":142,"./warning":183,"1YiZ5S":5}],56:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactCurrentOwner
 */

'use strict';

/**
 * Keeps track of the current owner.
 *
 * The current owner is the component who should own any components that are
 * currently being constructed.
 *
 * The depth indicate how many composite components are above this render level.
 */
var ReactCurrentOwner = {

  /**
   * @internal
   * @type {ReactComponent}
   */
  current: null

};

module.exports = ReactCurrentOwner;

},{}],57:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactDOM
 * @typechecks static-only
 */

'use strict';

var ReactElement = require("./ReactElement");
var ReactElementValidator = require("./ReactElementValidator");

var mapObject = require("./mapObject");

/**
 * Create a factory that creates HTML tag elements.
 *
 * @param {string} tag Tag name (e.g. `div`).
 * @private
 */
function createDOMFactory(tag) {
  if ("production" !== process.env.NODE_ENV) {
    return ReactElementValidator.createFactory(tag);
  }
  return ReactElement.createFactory(tag);
}

/**
 * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes.
 * This is also accessible via `React.DOM`.
 *
 * @public
 */
var ReactDOM = mapObject({
  a: 'a',
  abbr: 'abbr',
  address: 'address',
  area: 'area',
  article: 'article',
  aside: 'aside',
  audio: 'audio',
  b: 'b',
  base: 'base',
  bdi: 'bdi',
  bdo: 'bdo',
  big: 'big',
  blockquote: 'blockquote',
  body: 'body',
  br: 'br',
  button: 'button',
  canvas: 'canvas',
  caption: 'caption',
  cite: 'cite',
  code: 'code',
  col: 'col',
  colgroup: 'colgroup',
  data: 'data',
  datalist: 'datalist',
  dd: 'dd',
  del: 'del',
  details: 'details',
  dfn: 'dfn',
  dialog: 'dialog',
  div: 'div',
  dl: 'dl',
  dt: 'dt',
  em: 'em',
  embed: 'embed',
  fieldset: 'fieldset',
  figcaption: 'figcaption',
  figure: 'figure',
  footer: 'footer',
  form: 'form',
  h1: 'h1',
  h2: 'h2',
  h3: 'h3',
  h4: 'h4',
  h5: 'h5',
  h6: 'h6',
  head: 'head',
  header: 'header',
  hr: 'hr',
  html: 'html',
  i: 'i',
  iframe: 'iframe',
  img: 'img',
  input: 'input',
  ins: 'ins',
  kbd: 'kbd',
  keygen: 'keygen',
  label: 'label',
  legend: 'legend',
  li: 'li',
  link: 'link',
  main: 'main',
  map: 'map',
  mark: 'mark',
  menu: 'menu',
  menuitem: 'menuitem',
  meta: 'meta',
  meter: 'meter',
  nav: 'nav',
  noscript: 'noscript',
  object: 'object',
  ol: 'ol',
  optgroup: 'optgroup',
  option: 'option',
  output: 'output',
  p: 'p',
  param: 'param',
  picture: 'picture',
  pre: 'pre',
  progress: 'progress',
  q: 'q',
  rp: 'rp',
  rt: 'rt',
  ruby: 'ruby',
  s: 's',
  samp: 'samp',
  script: 'script',
  section: 'section',
  select: 'select',
  small: 'small',
  source: 'source',
  span: 'span',
  strong: 'strong',
  style: 'style',
  sub: 'sub',
  summary: 'summary',
  sup: 'sup',
  table: 'table',
  tbody: 'tbody',
  td: 'td',
  textarea: 'textarea',
  tfoot: 'tfoot',
  th: 'th',
  thead: 'thead',
  time: 'time',
  title: 'title',
  tr: 'tr',
  track: 'track',
  u: 'u',
  ul: 'ul',
  'var': 'var',
  video: 'video',
  wbr: 'wbr',

  // SVG
  circle: 'circle',
  clipPath: 'clipPath',
  defs: 'defs',
  ellipse: 'ellipse',
  g: 'g',
  line: 'line',
  linearGradient: 'linearGradient',
  mask: 'mask',
  path: 'path',
  pattern: 'pattern',
  polygon: 'polygon',
  polyline: 'polyline',
  radialGradient: 'radialGradient',
  rect: 'rect',
  stop: 'stop',
  svg: 'svg',
  text: 'text',
  tspan: 'tspan'

}, createDOMFactory);

module.exports = ReactDOM;

}).call(this,require("1YiZ5S"))
},{"./ReactElement":74,"./ReactElementValidator":75,"./mapObject":170,"1YiZ5S":5}],58:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactDOMButton
 */

'use strict';

var AutoFocusMixin = require("./AutoFocusMixin");
var ReactBrowserComponentMixin = require("./ReactBrowserComponentMixin");
var ReactClass = require("./ReactClass");
var ReactElement = require("./ReactElement");

var keyMirror = require("./keyMirror");

var button = ReactElement.createFactory('button');

var mouseListenerNames = keyMirror({
  onClick: true,
  onDoubleClick: true,
  onMouseDown: true,
  onMouseMove: true,
  onMouseUp: true,
  onClickCapture: true,
  onDoubleClickCapture: true,
  onMouseDownCapture: true,
  onMouseMoveCapture: true,
  onMouseUpCapture: true
});

/**
 * Implements a <button> native component that does not receive mouse events
 * when `disabled` is set.
 */
var ReactDOMButton = ReactClass.createClass({
  displayName: 'ReactDOMButton',
  tagName: 'BUTTON',

  mixins: [AutoFocusMixin, ReactBrowserComponentMixin],

  render: function() {
    var props = {};

    // Copy the props; except the mouse listeners if we're disabled
    for (var key in this.props) {
      if (this.props.hasOwnProperty(key) &&
          (!this.props.disabled || !mouseListenerNames[key])) {
        props[key] = this.props[key];
      }
    }

    return button(props, this.props.children);
  }

});

module.exports = ReactDOMButton;

},{"./AutoFocusMixin":13,"./ReactBrowserComponentMixin":43,"./ReactClass":49,"./ReactElement":74,"./keyMirror":168}],59:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactDOMComponent
 * @typechecks static-only
 */

/* global hasOwnProperty:true */

'use strict';

var CSSPropertyOperations = require("./CSSPropertyOperations");
var DOMProperty = require("./DOMProperty");
var DOMPropertyOperations = require("./DOMPropertyOperations");
var ReactBrowserEventEmitter = require("./ReactBrowserEventEmitter");
var ReactComponentBrowserEnvironment =
  require("./ReactComponentBrowserEnvironment");
var ReactMount = require("./ReactMount");
var ReactMultiChild = require("./ReactMultiChild");
var ReactPerf = require("./ReactPerf");

var assign = require("./Object.assign");
var escapeTextContentForBrowser = require("./escapeTextContentForBrowser");
var invariant = require("./invariant");
var isEventSupported = require("./isEventSupported");
var keyOf = require("./keyOf");
var warning = require("./warning");

var deleteListener = ReactBrowserEventEmitter.deleteListener;
var listenTo = ReactBrowserEventEmitter.listenTo;
var registrationNameModules = ReactBrowserEventEmitter.registrationNameModules;

// For quickly matching children type, to test if can be treated as content.
var CONTENT_TYPES = {'string': true, 'number': true};

var STYLE = keyOf({style: null});

var ELEMENT_NODE_TYPE = 1;

/**
 * Optionally injectable operations for mutating the DOM
 */
var BackendIDOperations = null;

/**
 * @param {?object} props
 */
function assertValidProps(props) {
  if (!props) {
    return;
  }
  // Note the use of `==` which checks for null or undefined.
  if (props.dangerouslySetInnerHTML != null) {
    ("production" !== process.env.NODE_ENV ? invariant(
      props.children == null,
      'Can only set one of `children` or `props.dangerouslySetInnerHTML`.'
    ) : invariant(props.children == null));
    ("production" !== process.env.NODE_ENV ? invariant(
      typeof props.dangerouslySetInnerHTML === 'object' &&
      '__html' in props.dangerouslySetInnerHTML,
      '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. ' +
      'Please visit https://fb.me/react-invariant-dangerously-set-inner-html ' +
      'for more information.'
    ) : invariant(typeof props.dangerouslySetInnerHTML === 'object' &&
    '__html' in props.dangerouslySetInnerHTML));
  }
  if ("production" !== process.env.NODE_ENV) {
    ("production" !== process.env.NODE_ENV ? warning(
      props.innerHTML == null,
      'Directly setting property `innerHTML` is not permitted. ' +
      'For more information, lookup documentation on `dangerouslySetInnerHTML`.'
    ) : null);
    ("production" !== process.env.NODE_ENV ? warning(
      !props.contentEditable || props.children == null,
      'A component is `contentEditable` and contains `children` managed by ' +
      'React. It is now your responsibility to guarantee that none of ' +
      'those nodes are unexpectedly modified or duplicated. This is ' +
      'probably not intentional.'
    ) : null);
  }
  ("production" !== process.env.NODE_ENV ? invariant(
    props.style == null || typeof props.style === 'object',
    'The `style` prop expects a mapping from style properties to values, ' +
    'not a string. For example, style={{marginRight: spacing + \'em\'}} when ' +
    'using JSX.'
  ) : invariant(props.style == null || typeof props.style === 'object'));
}

function putListener(id, registrationName, listener, transaction) {
  if ("production" !== process.env.NODE_ENV) {
    // IE8 has no API for event capturing and the `onScroll` event doesn't
    // bubble.
    ("production" !== process.env.NODE_ENV ? warning(
      registrationName !== 'onScroll' || isEventSupported('scroll', true),
      'This browser doesn\'t support the `onScroll` event'
    ) : null);
  }
  var container = ReactMount.findReactContainerForID(id);
  if (container) {
    var doc = container.nodeType === ELEMENT_NODE_TYPE ?
      container.ownerDocument :
      container;
    listenTo(registrationName, doc);
  }
  transaction.getPutListenerQueue().enqueuePutListener(
    id,
    registrationName,
    listener
  );
}

// For HTML, certain tags should omit their close tag. We keep a whitelist for
// those special cased tags.

var omittedCloseTags = {
  'area': true,
  'base': true,
  'br': true,
  'col': true,
  'embed': true,
  'hr': true,
  'img': true,
  'input': true,
  'keygen': true,
  'link': true,
  'meta': true,
  'param': true,
  'source': true,
  'track': true,
  'wbr': true
  // NOTE: menuitem's close tag should be omitted, but that causes problems.
};

// We accept any tag to be rendered but since this gets injected into abitrary
// HTML, we want to make sure that it's a safe tag.
// http://www.w3.org/TR/REC-xml/#NT-Name

var VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/; // Simplified subset
var validatedTagCache = {};
var hasOwnProperty = {}.hasOwnProperty;

function validateDangerousTag(tag) {
  if (!hasOwnProperty.call(validatedTagCache, tag)) {
    ("production" !== process.env.NODE_ENV ? invariant(VALID_TAG_REGEX.test(tag), 'Invalid tag: %s', tag) : invariant(VALID_TAG_REGEX.test(tag)));
    validatedTagCache[tag] = true;
  }
}

/**
 * Creates a new React class that is idempotent and capable of containing other
 * React components. It accepts event listeners and DOM properties that are
 * valid according to `DOMProperty`.
 *
 *  - Event listeners: `onClick`, `onMouseDown`, etc.
 *  - DOM properties: `className`, `name`, `title`, etc.
 *
 * The `style` property functions differently from the DOM API. It accepts an
 * object mapping of style properties to values.
 *
 * @constructor ReactDOMComponent
 * @extends ReactMultiChild
 */
function ReactDOMComponent(tag) {
  validateDangerousTag(tag);
  this._tag = tag;
  this._renderedChildren = null;
  this._previousStyleCopy = null;
  this._rootNodeID = null;
}

ReactDOMComponent.displayName = 'ReactDOMComponent';

ReactDOMComponent.Mixin = {

  construct: function(element) {
    this._currentElement = element;
  },

  /**
   * Generates root tag markup then recurses. This method has side effects and
   * is not idempotent.
   *
   * @internal
   * @param {string} rootID The root DOM ID for this node.
   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction
   * @return {string} The computed markup.
   */
  mountComponent: function(rootID, transaction, context) {
    this._rootNodeID = rootID;
    assertValidProps(this._currentElement.props);
    var closeTag = omittedCloseTags[this._tag] ? '' : '</' + this._tag + '>';
    return (
      this._createOpenTagMarkupAndPutListeners(transaction) +
      this._createContentMarkup(transaction, context) +
      closeTag
    );
  },

  /**
   * Creates markup for the open tag and all attributes.
   *
   * This method has side effects because events get registered.
   *
   * Iterating over object properties is faster than iterating over arrays.
   * @see http://jsperf.com/obj-vs-arr-iteration
   *
   * @private
   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction
   * @return {string} Markup of opening tag.
   */
  _createOpenTagMarkupAndPutListeners: function(transaction) {
    var props = this._currentElement.props;
    var ret = '<' + this._tag;

    for (var propKey in props) {
      if (!props.hasOwnProperty(propKey)) {
        continue;
      }
      var propValue = props[propKey];
      if (propValue == null) {
        continue;
      }
      if (registrationNameModules.hasOwnProperty(propKey)) {
        putListener(this._rootNodeID, propKey, propValue, transaction);
      } else {
        if (propKey === STYLE) {
          if (propValue) {
            propValue = this._previousStyleCopy = assign({}, props.style);
          }
          propValue = CSSPropertyOperations.createMarkupForStyles(propValue);
        }
        var markup =
          DOMPropertyOperations.createMarkupForProperty(propKey, propValue);
        if (markup) {
          ret += ' ' + markup;
        }
      }
    }

    // For static pages, no need to put React ID and checksum. Saves lots of
    // bytes.
    if (transaction.renderToStaticMarkup) {
      return ret + '>';
    }

    var markupForID = DOMPropertyOperations.createMarkupForID(this._rootNodeID);
    return ret + ' ' + markupForID + '>';
  },

  /**
   * Creates markup for the content between the tags.
   *
   * @private
   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction
   * @param {object} context
   * @return {string} Content markup.
   */
  _createContentMarkup: function(transaction, context) {
    var prefix = '';
    if (this._tag === 'listing' ||
        this._tag === 'pre' ||
        this._tag === 'textarea') {
      // Add an initial newline because browsers ignore the first newline in
      // a <listing>, <pre>, or <textarea> as an "authoring convenience" -- see
      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody.
      prefix = '\n';
    }

    var props = this._currentElement.props;

    // Intentional use of != to avoid catching zero/false.
    var innerHTML = props.dangerouslySetInnerHTML;
    if (innerHTML != null) {
      if (innerHTML.__html != null) {
        return prefix + innerHTML.__html;
      }
    } else {
      var contentToUse =
        CONTENT_TYPES[typeof props.children] ? props.children : null;
      var childrenToUse = contentToUse != null ? null : props.children;
      if (contentToUse != null) {
        return prefix + escapeTextContentForBrowser(contentToUse);
      } else if (childrenToUse != null) {
        var mountImages = this.mountChildren(
          childrenToUse,
          transaction,
          context
        );
        return prefix + mountImages.join('');
      }
    }
    return prefix;
  },

  receiveComponent: function(nextElement, transaction, context) {
    var prevElement = this._currentElement;
    this._currentElement = nextElement;
    this.updateComponent(transaction, prevElement, nextElement, context);
  },

  /**
   * Updates a native DOM component after it has already been allocated and
   * attached to the DOM. Reconciles the root DOM node, then recurses.
   *
   * @param {ReactReconcileTransaction} transaction
   * @param {ReactElement} prevElement
   * @param {ReactElement} nextElement
   * @internal
   * @overridable
   */
  updateComponent: function(transaction, prevElement, nextElement, context) {
    assertValidProps(this._currentElement.props);
    this._updateDOMProperties(prevElement.props, transaction);
    this._updateDOMChildren(prevElement.props, transaction, context);
  },

  /**
   * Reconciles the properties by detecting differences in property values and
   * updating the DOM as necessary. This function is probably the single most
   * critical path for performance optimization.
   *
   * TODO: Benchmark whether checking for changed values in memory actually
   *       improves performance (especially statically positioned elements).
   * TODO: Benchmark the effects of putting this at the top since 99% of props
   *       do not change for a given reconciliation.
   * TODO: Benchmark areas that can be improved with caching.
   *
   * @private
   * @param {object} lastProps
   * @param {ReactReconcileTransaction} transaction
   */
  _updateDOMProperties: function(lastProps, transaction) {
    var nextProps = this._currentElement.props;
    var propKey;
    var styleName;
    var styleUpdates;
    for (propKey in lastProps) {
      if (nextProps.hasOwnProperty(propKey) ||
         !lastProps.hasOwnProperty(propKey)) {
        continue;
      }
      if (propKey === STYLE) {
        var lastStyle = this._previousStyleCopy;
        for (styleName in lastStyle) {
          if (lastStyle.hasOwnProperty(styleName)) {
            styleUpdates = styleUpdates || {};
            styleUpdates[styleName] = '';
          }
        }
        this._previousStyleCopy = null;
      } else if (registrationNameModules.hasOwnProperty(propKey)) {
        deleteListener(this._rootNodeID, propKey);
      } else if (
          DOMProperty.isStandardName[propKey] ||
          DOMProperty.isCustomAttribute(propKey)) {
        BackendIDOperations.deletePropertyByID(
          this._rootNodeID,
          propKey
        );
      }
    }
    for (propKey in nextProps) {
      var nextProp = nextProps[propKey];
      var lastProp = propKey === STYLE ?
        this._previousStyleCopy :
        lastProps[propKey];
      if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp) {
        continue;
      }
      if (propKey === STYLE) {
        if (nextProp) {
          nextProp = this._previousStyleCopy = assign({}, nextProp);
        } else {
          this._previousStyleCopy = null;
        }
        if (lastProp) {
          // Unset styles on `lastProp` but not on `nextProp`.
          for (styleName in lastProp) {
            if (lastProp.hasOwnProperty(styleName) &&
                (!nextProp || !nextProp.hasOwnProperty(styleName))) {
              styleUpdates = styleUpdates || {};
              styleUpdates[styleName] = '';
            }
          }
          // Update styles that changed since `lastProp`.
          for (styleName in nextProp) {
            if (nextProp.hasOwnProperty(styleName) &&
                lastProp[styleName] !== nextProp[styleName]) {
              styleUpdates = styleUpdates || {};
              styleUpdates[styleName] = nextProp[styleName];
            }
          }
        } else {
          // Relies on `updateStylesByID` not mutating `styleUpdates`.
          styleUpdates = nextProp;
        }
      } else if (registrationNameModules.hasOwnProperty(propKey)) {
        putListener(this._rootNodeID, propKey, nextProp, transaction);
      } else if (
          DOMProperty.isStandardName[propKey] ||
          DOMProperty.isCustomAttribute(propKey)) {
        BackendIDOperations.updatePropertyByID(
          this._rootNodeID,
          propKey,
          nextProp
        );
      }
    }
    if (styleUpdates) {
      BackendIDOperations.updateStylesByID(
        this._rootNodeID,
        styleUpdates
      );
    }
  },

  /**
   * Reconciles the children with the various properties that affect the
   * children content.
   *
   * @param {object} lastProps
   * @param {ReactReconcileTransaction} transaction
   */
  _updateDOMChildren: function(lastProps, transaction, context) {
    var nextProps = this._currentElement.props;

    var lastContent =
      CONTENT_TYPES[typeof lastProps.children] ? lastProps.children : null;
    var nextContent =
      CONTENT_TYPES[typeof nextProps.children] ? nextProps.children : null;

    var lastHtml =
      lastProps.dangerouslySetInnerHTML &&
      lastProps.dangerouslySetInnerHTML.__html;
    var nextHtml =
      nextProps.dangerouslySetInnerHTML &&
      nextProps.dangerouslySetInnerHTML.__html;

    // Note the use of `!=` which checks for null or undefined.
    var lastChildren = lastContent != null ? null : lastProps.children;
    var nextChildren = nextContent != null ? null : nextProps.children;

    // If we're switching from children to content/html or vice versa, remove
    // the old content
    var lastHasContentOrHtml = lastContent != null || lastHtml != null;
    var nextHasContentOrHtml = nextContent != null || nextHtml != null;
    if (lastChildren != null && nextChildren == null) {
      this.updateChildren(null, transaction, context);
    } else if (lastHasContentOrHtml && !nextHasContentOrHtml) {
      this.updateTextContent('');
    }

    if (nextContent != null) {
      if (lastContent !== nextContent) {
        this.updateTextContent('' + nextContent);
      }
    } else if (nextHtml != null) {
      if (lastHtml !== nextHtml) {
        BackendIDOperations.updateInnerHTMLByID(
          this._rootNodeID,
          nextHtml
        );
      }
    } else if (nextChildren != null) {
      this.updateChildren(nextChildren, transaction, context);
    }
  },

  /**
   * Destroys all event registrations for this instance. Does not remove from
   * the DOM. That must be done by the parent.
   *
   * @internal
   */
  unmountComponent: function() {
    this.unmountChildren();
    ReactBrowserEventEmitter.deleteAllListeners(this._rootNodeID);
    ReactComponentBrowserEnvironment.unmountIDFromEnvironment(this._rootNodeID);
    this._rootNodeID = null;
  }

};

ReactPerf.measureMethods(ReactDOMComponent, 'ReactDOMComponent', {
  mountComponent: 'mountComponent',
  updateComponent: 'updateComponent'
});

assign(
  ReactDOMComponent.prototype,
  ReactDOMComponent.Mixin,
  ReactMultiChild.Mixin
);

ReactDOMComponent.injection = {
  injectIDOperations: function(IDOperations) {
    ReactDOMComponent.BackendIDOperations = BackendIDOperations = IDOperations;
  }
};

module.exports = ReactDOMComponent;

}).call(this,require("1YiZ5S"))
},{"./CSSPropertyOperations":17,"./DOMProperty":22,"./DOMPropertyOperations":23,"./Object.assign":40,"./ReactBrowserEventEmitter":44,"./ReactComponentBrowserEnvironment":51,"./ReactMount":88,"./ReactMultiChild":89,"./ReactPerf":93,"./escapeTextContentForBrowser":143,"./invariant":162,"./isEventSupported":163,"./keyOf":169,"./warning":183,"1YiZ5S":5}],60:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactDOMForm
 */

'use strict';

var EventConstants = require("./EventConstants");
var LocalEventTrapMixin = require("./LocalEventTrapMixin");
var ReactBrowserComponentMixin = require("./ReactBrowserComponentMixin");
var ReactClass = require("./ReactClass");
var ReactElement = require("./ReactElement");

var form = ReactElement.createFactory('form');

/**
 * Since onSubmit doesn't bubble OR capture on the top level in IE8, we need
 * to capture it on the <form> element itself. There are lots of hacks we could
 * do to accomplish this, but the most reliable is to make <form> a
 * composite component and use `componentDidMount` to attach the event handlers.
 */
var ReactDOMForm = ReactClass.createClass({
  displayName: 'ReactDOMForm',
  tagName: 'FORM',

  mixins: [ReactBrowserComponentMixin, LocalEventTrapMixin],

  render: function() {
    // TODO: Instead of using `ReactDOM` directly, we should use JSX. However,
    // `jshint` fails to parse JSX so in order for linting to work in the open
    // source repo, we need to just use `ReactDOM.form`.
    return form(this.props);
  },

  componentDidMount: function() {
    this.trapBubbledEvent(EventConstants.topLevelTypes.topReset, 'reset');
    this.trapBubbledEvent(EventConstants.topLevelTypes.topSubmit, 'submit');
  }
});

module.exports = ReactDOMForm;

},{"./EventConstants":27,"./LocalEventTrapMixin":38,"./ReactBrowserComponentMixin":43,"./ReactClass":49,"./ReactElement":74}],61:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactDOMIDOperations
 * @typechecks static-only
 */

/*jslint evil: true */

'use strict';

var CSSPropertyOperations = require("./CSSPropertyOperations");
var DOMChildrenOperations = require("./DOMChildrenOperations");
var DOMPropertyOperations = require("./DOMPropertyOperations");
var ReactMount = require("./ReactMount");
var ReactPerf = require("./ReactPerf");

var invariant = require("./invariant");
var setInnerHTML = require("./setInnerHTML");

/**
 * Errors for properties that should not be updated with `updatePropertyById()`.
 *
 * @type {object}
 * @private
 */
var INVALID_PROPERTY_ERRORS = {
  dangerouslySetInnerHTML:
    '`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.',
  style: '`style` must be set using `updateStylesByID()`.'
};

/**
 * Operations used to process updates to DOM nodes. This is made injectable via
 * `ReactDOMComponent.BackendIDOperations`.
 */
var ReactDOMIDOperations = {

  /**
   * Updates a DOM node with new property values. This should only be used to
   * update DOM properties in `DOMProperty`.
   *
   * @param {string} id ID of the node to update.
   * @param {string} name A valid property name, see `DOMProperty`.
   * @param {*} value New value of the property.
   * @internal
   */
  updatePropertyByID: function(id, name, value) {
    var node = ReactMount.getNode(id);
    ("production" !== process.env.NODE_ENV ? invariant(
      !INVALID_PROPERTY_ERRORS.hasOwnProperty(name),
      'updatePropertyByID(...): %s',
      INVALID_PROPERTY_ERRORS[name]
    ) : invariant(!INVALID_PROPERTY_ERRORS.hasOwnProperty(name)));

    // If we're updating to null or undefined, we should remove the property
    // from the DOM node instead of inadvertantly setting to a string. This
    // brings us in line with the same behavior we have on initial render.
    if (value != null) {
      DOMPropertyOperations.setValueForProperty(node, name, value);
    } else {
      DOMPropertyOperations.deleteValueForProperty(node, name);
    }
  },

  /**
   * Updates a DOM node to remove a property. This should only be used to remove
   * DOM properties in `DOMProperty`.
   *
   * @param {string} id ID of the node to update.
   * @param {string} name A property name to remove, see `DOMProperty`.
   * @internal
   */
  deletePropertyByID: function(id, name, value) {
    var node = ReactMount.getNode(id);
    ("production" !== process.env.NODE_ENV ? invariant(
      !INVALID_PROPERTY_ERRORS.hasOwnProperty(name),
      'updatePropertyByID(...): %s',
      INVALID_PROPERTY_ERRORS[name]
    ) : invariant(!INVALID_PROPERTY_ERRORS.hasOwnProperty(name)));
    DOMPropertyOperations.deleteValueForProperty(node, name, value);
  },

  /**
   * Updates a DOM node with new style values. If a value is specified as '',
   * the corresponding style property will be unset.
   *
   * @param {string} id ID of the node to update.
   * @param {object} styles Mapping from styles to values.
   * @internal
   */
  updateStylesByID: function(id, styles) {
    var node = ReactMount.getNode(id);
    CSSPropertyOperations.setValueForStyles(node, styles);
  },

  /**
   * Updates a DOM node's innerHTML.
   *
   * @param {string} id ID of the node to update.
   * @param {string} html An HTML string.
   * @internal
   */
  updateInnerHTMLByID: function(id, html) {
    var node = ReactMount.getNode(id);
    setInnerHTML(node, html);
  },

  /**
   * Updates a DOM node's text content set by `props.content`.
   *
   * @param {string} id ID of the node to update.
   * @param {string} content Text content.
   * @internal
   */
  updateTextContentByID: function(id, content) {
    var node = ReactMount.getNode(id);
    DOMChildrenOperations.updateTextContent(node, content);
  },

  /**
   * Replaces a DOM node that exists in the document with markup.
   *
   * @param {string} id ID of child to be replaced.
   * @param {string} markup Dangerous markup to inject in place of child.
   * @internal
   * @see {Danger.dangerouslyReplaceNodeWithMarkup}
   */
  dangerouslyReplaceNodeWithMarkupByID: function(id, markup) {
    var node = ReactMount.getNode(id);
    DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup(node, markup);
  },

  /**
   * Updates a component's children by processing a series of updates.
   *
   * @param {array<object>} updates List of update configurations.
   * @param {array<string>} markup List of markup strings.
   * @internal
   */
  dangerouslyProcessChildrenUpdates: function(updates, markup) {
    for (var i = 0; i < updates.length; i++) {
      updates[i].parentNode = ReactMount.getNode(updates[i].parentID);
    }
    DOMChildrenOperations.processUpdates(updates, markup);
  }
};

ReactPerf.measureMethods(ReactDOMIDOperations, 'ReactDOMIDOperations', {
  updatePropertyByID: 'updatePropertyByID',
  deletePropertyByID: 'deletePropertyByID',
  updateStylesByID: 'updateStylesByID',
  updateInnerHTMLByID: 'updateInnerHTMLByID',
  updateTextContentByID: 'updateTextContentByID',
  dangerouslyReplaceNodeWithMarkupByID: 'dangerouslyReplaceNodeWithMarkupByID',
  dangerouslyProcessChildrenUpdates: 'dangerouslyProcessChildrenUpdates'
});

module.exports = ReactDOMIDOperations;

}).call(this,require("1YiZ5S"))
},{"./CSSPropertyOperations":17,"./DOMChildrenOperations":21,"./DOMPropertyOperations":23,"./ReactMount":88,"./ReactPerf":93,"./invariant":162,"./setInnerHTML":176,"1YiZ5S":5}],62:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactDOMIframe
 */

'use strict';

var EventConstants = require("./EventConstants");
var LocalEventTrapMixin = require("./LocalEventTrapMixin");
var ReactBrowserComponentMixin = require("./ReactBrowserComponentMixin");
var ReactClass = require("./ReactClass");
var ReactElement = require("./ReactElement");

var iframe = ReactElement.createFactory('iframe');

/**
 * Since onLoad doesn't bubble OR capture on the top level in IE8, we need to
 * capture it on the <iframe> element itself. There are lots of hacks we could
 * do to accomplish this, but the most reliable is to make <iframe> a composite
 * component and use `componentDidMount` to attach the event handlers.
 */
var ReactDOMIframe = ReactClass.createClass({
  displayName: 'ReactDOMIframe',
  tagName: 'IFRAME',

  mixins: [ReactBrowserComponentMixin, LocalEventTrapMixin],

  render: function() {
    return iframe(this.props);
  },

  componentDidMount: function() {
    this.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load');
  }
});

module.exports = ReactDOMIframe;

},{"./EventConstants":27,"./LocalEventTrapMixin":38,"./ReactBrowserComponentMixin":43,"./ReactClass":49,"./ReactElement":74}],63:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactDOMImg
 */

'use strict';

var EventConstants = require("./EventConstants");
var LocalEventTrapMixin = require("./LocalEventTrapMixin");
var ReactBrowserComponentMixin = require("./ReactBrowserComponentMixin");
var ReactClass = require("./ReactClass");
var ReactElement = require("./ReactElement");

var img = ReactElement.createFactory('img');

/**
 * Since onLoad doesn't bubble OR capture on the top level in IE8, we need to
 * capture it on the <img> element itself. There are lots of hacks we could do
 * to accomplish this, but the most reliable is to make <img> a composite
 * component and use `componentDidMount` to attach the event handlers.
 */
var ReactDOMImg = ReactClass.createClass({
  displayName: 'ReactDOMImg',
  tagName: 'IMG',

  mixins: [ReactBrowserComponentMixin, LocalEventTrapMixin],

  render: function() {
    return img(this.props);
  },

  componentDidMount: function() {
    this.trapBubbledEvent(EventConstants.topLevelTypes.topLoad, 'load');
    this.trapBubbledEvent(EventConstants.topLevelTypes.topError, 'error');
  }
});

module.exports = ReactDOMImg;

},{"./EventConstants":27,"./LocalEventTrapMixin":38,"./ReactBrowserComponentMixin":43,"./ReactClass":49,"./ReactElement":74}],64:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactDOMInput
 */

'use strict';

var AutoFocusMixin = require("./AutoFocusMixin");
var DOMPropertyOperations = require("./DOMPropertyOperations");
var LinkedValueUtils = require("./LinkedValueUtils");
var ReactBrowserComponentMixin = require("./ReactBrowserComponentMixin");
var ReactClass = require("./ReactClass");
var ReactElement = require("./ReactElement");
var ReactMount = require("./ReactMount");
var ReactUpdates = require("./ReactUpdates");

var assign = require("./Object.assign");
var invariant = require("./invariant");

var input = ReactElement.createFactory('input');

var instancesByReactID = {};

function forceUpdateIfMounted() {
  /*jshint validthis:true */
  if (this.isMounted()) {
    this.forceUpdate();
  }
}

/**
 * Implements an <input> native component that allows setting these optional
 * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.
 *
 * If `checked` or `value` are not supplied (or null/undefined), user actions
 * that affect the checked state or value will trigger updates to the element.
 *
 * If they are supplied (and not null/undefined), the rendered element will not
 * trigger updates to the element. Instead, the props must change in order for
 * the rendered element to be updated.
 *
 * The rendered element will be initialized as unchecked (or `defaultChecked`)
 * with an empty value (or `defaultValue`).
 *
 * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html
 */
var ReactDOMInput = ReactClass.createClass({
  displayName: 'ReactDOMInput',
  tagName: 'INPUT',

  mixins: [AutoFocusMixin, LinkedValueUtils.Mixin, ReactBrowserComponentMixin],

  getInitialState: function() {
    var defaultValue = this.props.defaultValue;
    return {
      initialChecked: this.props.defaultChecked || false,
      initialValue: defaultValue != null ? defaultValue : null
    };
  },

  render: function() {
    // Clone `this.props` so we don't mutate the input.
    var props = assign({}, this.props);

    props.defaultChecked = null;
    props.defaultValue = null;

    var value = LinkedValueUtils.getValue(this);
    props.value = value != null ? value : this.state.initialValue;

    var checked = LinkedValueUtils.getChecked(this);
    props.checked = checked != null ? checked : this.state.initialChecked;

    props.onChange = this._handleChange;

    return input(props, this.props.children);
  },

  componentDidMount: function() {
    var id = ReactMount.getID(this.getDOMNode());
    instancesByReactID[id] = this;
  },

  componentWillUnmount: function() {
    var rootNode = this.getDOMNode();
    var id = ReactMount.getID(rootNode);
    delete instancesByReactID[id];
  },

  componentDidUpdate: function(prevProps, prevState, prevContext) {
    var rootNode = this.getDOMNode();
    if (this.props.checked != null) {
      DOMPropertyOperations.setValueForProperty(
        rootNode,
        'checked',
        this.props.checked || false
      );
    }

    var value = LinkedValueUtils.getValue(this);
    if (value != null) {
      // Cast `value` to a string to ensure the value is set correctly. While
      // browsers typically do this as necessary, jsdom doesn't.
      DOMPropertyOperations.setValueForProperty(rootNode, 'value', '' + value);
    }
  },

  _handleChange: function(event) {
    var returnValue;
    var onChange = LinkedValueUtils.getOnChange(this);
    if (onChange) {
      returnValue = onChange.call(this, event);
    }
    // Here we use asap to wait until all updates have propagated, which
    // is important when using controlled components within layers:
    // https://github.com/facebook/react/issues/1698
    ReactUpdates.asap(forceUpdateIfMounted, this);

    var name = this.props.name;
    if (this.props.type === 'radio' && name != null) {
      var rootNode = this.getDOMNode();
      var queryRoot = rootNode;

      while (queryRoot.parentNode) {
        queryRoot = queryRoot.parentNode;
      }

      // If `rootNode.form` was non-null, then we could try `form.elements`,
      // but that sometimes behaves strangely in IE8. We could also try using
      // `form.getElementsByName`, but that will only return direct children
      // and won't include inputs that use the HTML5 `form=` attribute. Since
      // the input might not even be in a form, let's just use the global
      // `querySelectorAll` to ensure we don't miss anything.
      var group = queryRoot.querySelectorAll(
        'input[name=' + JSON.stringify('' + name) + '][type="radio"]');

      for (var i = 0, groupLen = group.length; i < groupLen; i++) {
        var otherNode = group[i];
        if (otherNode === rootNode ||
            otherNode.form !== rootNode.form) {
          continue;
        }
        var otherID = ReactMount.getID(otherNode);
        ("production" !== process.env.NODE_ENV ? invariant(
          otherID,
          'ReactDOMInput: Mixing React and non-React radio inputs with the ' +
          'same `name` is not supported.'
        ) : invariant(otherID));
        var otherInstance = instancesByReactID[otherID];
        ("production" !== process.env.NODE_ENV ? invariant(
          otherInstance,
          'ReactDOMInput: Unknown radio button ID %s.',
          otherID
        ) : invariant(otherInstance));
        // If this is a controlled radio button group, forcing the input that
        // was previously checked to update will cause it to be come re-checked
        // as appropriate.
        ReactUpdates.asap(forceUpdateIfMounted, otherInstance);
      }
    }

    return returnValue;
  }

});

module.exports = ReactDOMInput;

}).call(this,require("1YiZ5S"))
},{"./AutoFocusMixin":13,"./DOMPropertyOperations":23,"./LinkedValueUtils":37,"./Object.assign":40,"./ReactBrowserComponentMixin":43,"./ReactClass":49,"./ReactElement":74,"./ReactMount":88,"./ReactUpdates":111,"./invariant":162,"1YiZ5S":5}],65:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactDOMOption
 */

'use strict';

var ReactBrowserComponentMixin = require("./ReactBrowserComponentMixin");
var ReactClass = require("./ReactClass");
var ReactElement = require("./ReactElement");

var warning = require("./warning");

var option = ReactElement.createFactory('option');

/**
 * Implements an <option> native component that warns when `selected` is set.
 */
var ReactDOMOption = ReactClass.createClass({
  displayName: 'ReactDOMOption',
  tagName: 'OPTION',

  mixins: [ReactBrowserComponentMixin],

  componentWillMount: function() {
    // TODO (yungsters): Remove support for `selected` in <option>.
    if ("production" !== process.env.NODE_ENV) {
      ("production" !== process.env.NODE_ENV ? warning(
        this.props.selected == null,
        'Use the `defaultValue` or `value` props on <select> instead of ' +
        'setting `selected` on <option>.'
      ) : null);
    }
  },

  render: function() {
    return option(this.props, this.props.children);
  }

});

module.exports = ReactDOMOption;

}).call(this,require("1YiZ5S"))
},{"./ReactBrowserComponentMixin":43,"./ReactClass":49,"./ReactElement":74,"./warning":183,"1YiZ5S":5}],66:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactDOMSelect
 */

'use strict';

var AutoFocusMixin = require("./AutoFocusMixin");
var LinkedValueUtils = require("./LinkedValueUtils");
var ReactBrowserComponentMixin = require("./ReactBrowserComponentMixin");
var ReactClass = require("./ReactClass");
var ReactElement = require("./ReactElement");
var ReactUpdates = require("./ReactUpdates");

var assign = require("./Object.assign");

var select = ReactElement.createFactory('select');

function updateOptionsIfPendingUpdateAndMounted() {
  /*jshint validthis:true */
  if (this._pendingUpdate) {
    this._pendingUpdate = false;
    var value = LinkedValueUtils.getValue(this);
    if (value != null && this.isMounted()) {
      updateOptions(this, value);
    }
  }
}

/**
 * Validation function for `value` and `defaultValue`.
 * @private
 */
function selectValueType(props, propName, componentName) {
  if (props[propName] == null) {
    return null;
  }
  if (props.multiple) {
    if (!Array.isArray(props[propName])) {
      return new Error(
        ("The `" + propName + "` prop supplied to <select> must be an array if ") +
        ("`multiple` is true.")
      );
    }
  } else {
    if (Array.isArray(props[propName])) {
      return new Error(
        ("The `" + propName + "` prop supplied to <select> must be a scalar ") +
        ("value if `multiple` is false.")
      );
    }
  }
}

/**
 * @param {ReactComponent} component Instance of ReactDOMSelect
 * @param {*} propValue A stringable (with `multiple`, a list of stringables).
 * @private
 */
function updateOptions(component, propValue) {
  var selectedValue, i, l;
  var options = component.getDOMNode().options;

  if (component.props.multiple) {
    selectedValue = {};
    for (i = 0, l = propValue.length; i < l; i++) {
      selectedValue['' + propValue[i]] = true;
    }
    for (i = 0, l = options.length; i < l; i++) {
      var selected = selectedValue.hasOwnProperty(options[i].value);
      if (options[i].selected !== selected) {
        options[i].selected = selected;
      }
    }
  } else {
    // Do not set `select.value` as exact behavior isn't consistent across all
    // browsers for all cases.
    selectedValue = '' + propValue;
    for (i = 0, l = options.length; i < l; i++) {
      if (options[i].value === selectedValue) {
        options[i].selected = true;
        return;
      }
    }
    if (options.length) {
      options[0].selected = true;
    }
  }
}

/**
 * Implements a <select> native component that allows optionally setting the
 * props `value` and `defaultValue`. If `multiple` is false, the prop must be a
 * stringable. If `multiple` is true, the prop must be an array of stringables.
 *
 * If `value` is not supplied (or null/undefined), user actions that change the
 * selected option will trigger updates to the rendered options.
 *
 * If it is supplied (and not null/undefined), the rendered options will not
 * update in response to user actions. Instead, the `value` prop must change in
 * order for the rendered options to update.
 *
 * If `defaultValue` is provided, any options with the supplied values will be
 * selected.
 */
var ReactDOMSelect = ReactClass.createClass({
  displayName: 'ReactDOMSelect',
  tagName: 'SELECT',

  mixins: [AutoFocusMixin, LinkedValueUtils.Mixin, ReactBrowserComponentMixin],

  propTypes: {
    defaultValue: selectValueType,
    value: selectValueType
  },

  render: function() {
    // Clone `this.props` so we don't mutate the input.
    var props = assign({}, this.props);

    props.onChange = this._handleChange;
    props.value = null;

    return select(props, this.props.children);
  },

  componentWillMount: function() {
    this._pendingUpdate = false;
  },

  componentDidMount: function() {
    var value = LinkedValueUtils.getValue(this);
    if (value != null) {
      updateOptions(this, value);
    } else if (this.props.defaultValue != null) {
      updateOptions(this, this.props.defaultValue);
    }
  },

  componentDidUpdate: function(prevProps) {
    var value = LinkedValueUtils.getValue(this);
    if (value != null) {
      this._pendingUpdate = false;
      updateOptions(this, value);
    } else if (!prevProps.multiple !== !this.props.multiple) {
      // For simplicity, reapply `defaultValue` if `multiple` is toggled.
      if (this.props.defaultValue != null) {
        updateOptions(this, this.props.defaultValue);
      } else {
        // Revert the select back to its default unselected state.
        updateOptions(this, this.props.multiple ? [] : '');
      }
    }
  },

  _handleChange: function(event) {
    var returnValue;
    var onChange = LinkedValueUtils.getOnChange(this);
    if (onChange) {
      returnValue = onChange.call(this, event);
    }

    this._pendingUpdate = true;
    ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this);
    return returnValue;
  }

});

module.exports = ReactDOMSelect;

},{"./AutoFocusMixin":13,"./LinkedValueUtils":37,"./Object.assign":40,"./ReactBrowserComponentMixin":43,"./ReactClass":49,"./ReactElement":74,"./ReactUpdates":111}],67:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactDOMSelection
 */

'use strict';

var ExecutionEnvironment = require("./ExecutionEnvironment");

var getNodeForCharacterOffset = require("./getNodeForCharacterOffset");
var getTextContentAccessor = require("./getTextContentAccessor");

/**
 * While `isCollapsed` is available on the Selection object and `collapsed`
 * is available on the Range object, IE11 sometimes gets them wrong.
 * If the anchor/focus nodes and offsets are the same, the range is collapsed.
 */
function isCollapsed(anchorNode, anchorOffset, focusNode, focusOffset) {
  return anchorNode === focusNode && anchorOffset === focusOffset;
}

/**
 * Get the appropriate anchor and focus node/offset pairs for IE.
 *
 * The catch here is that IE's selection API doesn't provide information
 * about whether the selection is forward or backward, so we have to
 * behave as though it's always forward.
 *
 * IE text differs from modern selection in that it behaves as though
 * block elements end with a new line. This means character offsets will
 * differ between the two APIs.
 *
 * @param {DOMElement} node
 * @return {object}
 */
function getIEOffsets(node) {
  var selection = document.selection;
  var selectedRange = selection.createRange();
  var selectedLength = selectedRange.text.length;

  // Duplicate selection so we can move range without breaking user selection.
  var fromStart = selectedRange.duplicate();
  fromStart.moveToElementText(node);
  fromStart.setEndPoint('EndToStart', selectedRange);

  var startOffset = fromStart.text.length;
  var endOffset = startOffset + selectedLength;

  return {
    start: startOffset,
    end: endOffset
  };
}

/**
 * @param {DOMElement} node
 * @return {?object}
 */
function getModernOffsets(node) {
  var selection = window.getSelection && window.getSelection();

  if (!selection || selection.rangeCount === 0) {
    return null;
  }

  var anchorNode = selection.anchorNode;
  var anchorOffset = selection.anchorOffset;
  var focusNode = selection.focusNode;
  var focusOffset = selection.focusOffset;

  var currentRange = selection.getRangeAt(0);

  // If the node and offset values are the same, the selection is collapsed.
  // `Selection.isCollapsed` is available natively, but IE sometimes gets
  // this value wrong.
  var isSelectionCollapsed = isCollapsed(
    selection.anchorNode,
    selection.anchorOffset,
    selection.focusNode,
    selection.focusOffset
  );

  var rangeLength = isSelectionCollapsed ? 0 : currentRange.toString().length;

  var tempRange = currentRange.cloneRange();
  tempRange.selectNodeContents(node);
  tempRange.setEnd(currentRange.startContainer, currentRange.startOffset);

  var isTempRangeCollapsed = isCollapsed(
    tempRange.startContainer,
    tempRange.startOffset,
    tempRange.endContainer,
    tempRange.endOffset
  );

  var start = isTempRangeCollapsed ? 0 : tempRange.toString().length;
  var end = start + rangeLength;

  // Detect whether the selection is backward.
  var detectionRange = document.createRange();
  detectionRange.setStart(anchorNode, anchorOffset);
  detectionRange.setEnd(focusNode, focusOffset);
  var isBackward = detectionRange.collapsed;

  return {
    start: isBackward ? end : start,
    end: isBackward ? start : end
  };
}

/**
 * @param {DOMElement|DOMTextNode} node
 * @param {object} offsets
 */
function setIEOffsets(node, offsets) {
  var range = document.selection.createRange().duplicate();
  var start, end;

  if (typeof offsets.end === 'undefined') {
    start = offsets.start;
    end = start;
  } else if (offsets.start > offsets.end) {
    start = offsets.end;
    end = offsets.start;
  } else {
    start = offsets.start;
    end = offsets.end;
  }

  range.moveToElementText(node);
  range.moveStart('character', start);
  range.setEndPoint('EndToStart', range);
  range.moveEnd('character', end - start);
  range.select();
}

/**
 * In modern non-IE browsers, we can support both forward and backward
 * selections.
 *
 * Note: IE10+ supports the Selection object, but it does not support
 * the `extend` method, which means that even in modern IE, it's not possible
 * to programatically create a backward selection. Thus, for all IE
 * versions, we use the old IE API to create our selections.
 *
 * @param {DOMElement|DOMTextNode} node
 * @param {object} offsets
 */
function setModernOffsets(node, offsets) {
  if (!window.getSelection) {
    return;
  }

  var selection = window.getSelection();
  var length = node[getTextContentAccessor()].length;
  var start = Math.min(offsets.start, length);
  var end = typeof offsets.end === 'undefined' ?
            start : Math.min(offsets.end, length);

  // IE 11 uses modern selection, but doesn't support the extend method.
  // Flip backward selections, so we can set with a single range.
  if (!selection.extend && start > end) {
    var temp = end;
    end = start;
    start = temp;
  }

  var startMarker = getNodeForCharacterOffset(node, start);
  var endMarker = getNodeForCharacterOffset(node, end);

  if (startMarker && endMarker) {
    var range = document.createRange();
    range.setStart(startMarker.node, startMarker.offset);
    selection.removeAllRanges();

    if (start > end) {
      selection.addRange(range);
      selection.extend(endMarker.node, endMarker.offset);
    } else {
      range.setEnd(endMarker.node, endMarker.offset);
      selection.addRange(range);
    }
  }
}

var useIEOffsets = (
  ExecutionEnvironment.canUseDOM &&
  'selection' in document &&
  !('getSelection' in window)
);

var ReactDOMSelection = {
  /**
   * @param {DOMElement} node
   */
  getOffsets: useIEOffsets ? getIEOffsets : getModernOffsets,

  /**
   * @param {DOMElement|DOMTextNode} node
   * @param {object} offsets
   */
  setOffsets: useIEOffsets ? setIEOffsets : setModernOffsets
};

module.exports = ReactDOMSelection;

},{"./ExecutionEnvironment":33,"./getNodeForCharacterOffset":155,"./getTextContentAccessor":157}],68:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactDOMTextComponent
 * @typechecks static-only
 */

'use strict';

var DOMPropertyOperations = require("./DOMPropertyOperations");
var ReactComponentBrowserEnvironment =
  require("./ReactComponentBrowserEnvironment");
var ReactDOMComponent = require("./ReactDOMComponent");

var assign = require("./Object.assign");
var escapeTextContentForBrowser = require("./escapeTextContentForBrowser");

/**
 * Text nodes violate a couple assumptions that React makes about components:
 *
 *  - When mounting text into the DOM, adjacent text nodes are merged.
 *  - Text nodes cannot be assigned a React root ID.
 *
 * This component is used to wrap strings in elements so that they can undergo
 * the same reconciliation that is applied to elements.
 *
 * TODO: Investigate representing React components in the DOM with text nodes.
 *
 * @class ReactDOMTextComponent
 * @extends ReactComponent
 * @internal
 */
var ReactDOMTextComponent = function(props) {
  // This constructor and its argument is currently used by mocks.
};

assign(ReactDOMTextComponent.prototype, {

  /**
   * @param {ReactText} text
   * @internal
   */
  construct: function(text) {
    // TODO: This is really a ReactText (ReactNode), not a ReactElement
    this._currentElement = text;
    this._stringText = '' + text;

    // Properties
    this._rootNodeID = null;
    this._mountIndex = 0;
  },

  /**
   * Creates the markup for this text node. This node is not intended to have
   * any features besides containing text content.
   *
   * @param {string} rootID DOM ID of the root node.
   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction
   * @return {string} Markup for this text node.
   * @internal
   */
  mountComponent: function(rootID, transaction, context) {
    this._rootNodeID = rootID;
    var escapedText = escapeTextContentForBrowser(this._stringText);

    if (transaction.renderToStaticMarkup) {
      // Normally we'd wrap this in a `span` for the reasons stated above, but
      // since this is a situation where React won't take over (static pages),
      // we can simply return the text as it is.
      return escapedText;
    }

    return (
      '<span ' + DOMPropertyOperations.createMarkupForID(rootID) + '>' +
        escapedText +
      '</span>'
    );
  },

  /**
   * Updates this component by updating the text content.
   *
   * @param {ReactText} nextText The next text content
   * @param {ReactReconcileTransaction} transaction
   * @internal
   */
  receiveComponent: function(nextText, transaction) {
    if (nextText !== this._currentElement) {
      this._currentElement = nextText;
      var nextStringText = '' + nextText;
      if (nextStringText !== this._stringText) {
        // TODO: Save this as pending props and use performUpdateIfNecessary
        // and/or updateComponent to do the actual update for consistency with
        // other component types?
        this._stringText = nextStringText;
        ReactDOMComponent.BackendIDOperations.updateTextContentByID(
          this._rootNodeID,
          nextStringText
        );
      }
    }
  },

  unmountComponent: function() {
    ReactComponentBrowserEnvironment.unmountIDFromEnvironment(this._rootNodeID);
  }

});

module.exports = ReactDOMTextComponent;

},{"./DOMPropertyOperations":23,"./Object.assign":40,"./ReactComponentBrowserEnvironment":51,"./ReactDOMComponent":59,"./escapeTextContentForBrowser":143}],69:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactDOMTextarea
 */

'use strict';

var AutoFocusMixin = require("./AutoFocusMixin");
var DOMPropertyOperations = require("./DOMPropertyOperations");
var LinkedValueUtils = require("./LinkedValueUtils");
var ReactBrowserComponentMixin = require("./ReactBrowserComponentMixin");
var ReactClass = require("./ReactClass");
var ReactElement = require("./ReactElement");
var ReactUpdates = require("./ReactUpdates");

var assign = require("./Object.assign");
var invariant = require("./invariant");

var warning = require("./warning");

var textarea = ReactElement.createFactory('textarea');

function forceUpdateIfMounted() {
  /*jshint validthis:true */
  if (this.isMounted()) {
    this.forceUpdate();
  }
}

/**
 * Implements a <textarea> native component that allows setting `value`, and
 * `defaultValue`. This differs from the traditional DOM API because value is
 * usually set as PCDATA children.
 *
 * If `value` is not supplied (or null/undefined), user actions that affect the
 * value will trigger updates to the element.
 *
 * If `value` is supplied (and not null/undefined), the rendered element will
 * not trigger updates to the element. Instead, the `value` prop must change in
 * order for the rendered element to be updated.
 *
 * The rendered element will be initialized with an empty value, the prop
 * `defaultValue` if specified, or the children content (deprecated).
 */
var ReactDOMTextarea = ReactClass.createClass({
  displayName: 'ReactDOMTextarea',
  tagName: 'TEXTAREA',

  mixins: [AutoFocusMixin, LinkedValueUtils.Mixin, ReactBrowserComponentMixin],

  getInitialState: function() {
    var defaultValue = this.props.defaultValue;
    // TODO (yungsters): Remove support for children content in <textarea>.
    var children = this.props.children;
    if (children != null) {
      if ("production" !== process.env.NODE_ENV) {
        ("production" !== process.env.NODE_ENV ? warning(
          false,
          'Use the `defaultValue` or `value` props instead of setting ' +
          'children on <textarea>.'
        ) : null);
      }
      ("production" !== process.env.NODE_ENV ? invariant(
        defaultValue == null,
        'If you supply `defaultValue` on a <textarea>, do not pass children.'
      ) : invariant(defaultValue == null));
      if (Array.isArray(children)) {
        ("production" !== process.env.NODE_ENV ? invariant(
          children.length <= 1,
          '<textarea> can only have at most one child.'
        ) : invariant(children.length <= 1));
        children = children[0];
      }

      defaultValue = '' + children;
    }
    if (defaultValue == null) {
      defaultValue = '';
    }
    var value = LinkedValueUtils.getValue(this);
    return {
      // We save the initial value so that `ReactDOMComponent` doesn't update
      // `textContent` (unnecessary since we update value).
      // The initial value can be a boolean or object so that's why it's
      // forced to be a string.
      initialValue: '' + (value != null ? value : defaultValue)
    };
  },

  render: function() {
    // Clone `this.props` so we don't mutate the input.
    var props = assign({}, this.props);

    ("production" !== process.env.NODE_ENV ? invariant(
      props.dangerouslySetInnerHTML == null,
      '`dangerouslySetInnerHTML` does not make sense on <textarea>.'
    ) : invariant(props.dangerouslySetInnerHTML == null));

    props.defaultValue = null;
    props.value = null;
    props.onChange = this._handleChange;

    // Always set children to the same thing. In IE9, the selection range will
    // get reset if `textContent` is mutated.
    return textarea(props, this.state.initialValue);
  },

  componentDidUpdate: function(prevProps, prevState, prevContext) {
    var value = LinkedValueUtils.getValue(this);
    if (value != null) {
      var rootNode = this.getDOMNode();
      // Cast `value` to a string to ensure the value is set correctly. While
      // browsers typically do this as necessary, jsdom doesn't.
      DOMPropertyOperations.setValueForProperty(rootNode, 'value', '' + value);
    }
  },

  _handleChange: function(event) {
    var returnValue;
    var onChange = LinkedValueUtils.getOnChange(this);
    if (onChange) {
      returnValue = onChange.call(this, event);
    }
    ReactUpdates.asap(forceUpdateIfMounted, this);
    return returnValue;
  }

});

module.exports = ReactDOMTextarea;

}).call(this,require("1YiZ5S"))
},{"./AutoFocusMixin":13,"./DOMPropertyOperations":23,"./LinkedValueUtils":37,"./Object.assign":40,"./ReactBrowserComponentMixin":43,"./ReactClass":49,"./ReactElement":74,"./ReactUpdates":111,"./invariant":162,"./warning":183,"1YiZ5S":5}],70:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactDefaultBatchingStrategy
 */

'use strict';

var ReactUpdates = require("./ReactUpdates");
var Transaction = require("./Transaction");

var assign = require("./Object.assign");
var emptyFunction = require("./emptyFunction");

var RESET_BATCHED_UPDATES = {
  initialize: emptyFunction,
  close: function() {
    ReactDefaultBatchingStrategy.isBatchingUpdates = false;
  }
};

var FLUSH_BATCHED_UPDATES = {
  initialize: emptyFunction,
  close: ReactUpdates.flushBatchedUpdates.bind(ReactUpdates)
};

var TRANSACTION_WRAPPERS = [FLUSH_BATCHED_UPDATES, RESET_BATCHED_UPDATES];

function ReactDefaultBatchingStrategyTransaction() {
  this.reinitializeTransaction();
}

assign(
  ReactDefaultBatchingStrategyTransaction.prototype,
  Transaction.Mixin,
  {
    getTransactionWrappers: function() {
      return TRANSACTION_WRAPPERS;
    }
  }
);

var transaction = new ReactDefaultBatchingStrategyTransaction();

var ReactDefaultBatchingStrategy = {
  isBatchingUpdates: false,

  /**
   * Call the provided function in a context within which calls to `setState`
   * and friends are batched such that components aren't updated unnecessarily.
   */
  batchedUpdates: function(callback, a, b, c, d) {
    var alreadyBatchingUpdates = ReactDefaultBatchingStrategy.isBatchingUpdates;

    ReactDefaultBatchingStrategy.isBatchingUpdates = true;

    // The code is written this way to avoid extra allocations
    if (alreadyBatchingUpdates) {
      callback(a, b, c, d);
    } else {
      transaction.perform(callback, null, a, b, c, d);
    }
  }
};

module.exports = ReactDefaultBatchingStrategy;

},{"./Object.assign":40,"./ReactUpdates":111,"./Transaction":128,"./emptyFunction":141}],71:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactDefaultInjection
 */

'use strict';

var BeforeInputEventPlugin = require("./BeforeInputEventPlugin");
var ChangeEventPlugin = require("./ChangeEventPlugin");
var ClientReactRootIndex = require("./ClientReactRootIndex");
var DefaultEventPluginOrder = require("./DefaultEventPluginOrder");
var EnterLeaveEventPlugin = require("./EnterLeaveEventPlugin");
var ExecutionEnvironment = require("./ExecutionEnvironment");
var HTMLDOMPropertyConfig = require("./HTMLDOMPropertyConfig");
var MobileSafariClickEventPlugin = require("./MobileSafariClickEventPlugin");
var ReactBrowserComponentMixin = require("./ReactBrowserComponentMixin");
var ReactClass = require("./ReactClass");
var ReactComponentBrowserEnvironment =
  require("./ReactComponentBrowserEnvironment");
var ReactDefaultBatchingStrategy = require("./ReactDefaultBatchingStrategy");
var ReactDOMComponent = require("./ReactDOMComponent");
var ReactDOMButton = require("./ReactDOMButton");
var ReactDOMForm = require("./ReactDOMForm");
var ReactDOMImg = require("./ReactDOMImg");
var ReactDOMIDOperations = require("./ReactDOMIDOperations");
var ReactDOMIframe = require("./ReactDOMIframe");
var ReactDOMInput = require("./ReactDOMInput");
var ReactDOMOption = require("./ReactDOMOption");
var ReactDOMSelect = require("./ReactDOMSelect");
var ReactDOMTextarea = require("./ReactDOMTextarea");
var ReactDOMTextComponent = require("./ReactDOMTextComponent");
var ReactElement = require("./ReactElement");
var ReactEventListener = require("./ReactEventListener");
var ReactInjection = require("./ReactInjection");
var ReactInstanceHandles = require("./ReactInstanceHandles");
var ReactMount = require("./ReactMount");
var ReactReconcileTransaction = require("./ReactReconcileTransaction");
var SelectEventPlugin = require("./SelectEventPlugin");
var ServerReactRootIndex = require("./ServerReactRootIndex");
var SimpleEventPlugin = require("./SimpleEventPlugin");
var SVGDOMPropertyConfig = require("./SVGDOMPropertyConfig");

var createFullPageComponent = require("./createFullPageComponent");

function autoGenerateWrapperClass(type) {
  return ReactClass.createClass({
    tagName: type.toUpperCase(),
    render: function() {
      return new ReactElement(
        type,
        null,
        null,
        null,
        null,
        this.props
      );
    }
  });
}

function inject() {
  ReactInjection.EventEmitter.injectReactEventListener(
    ReactEventListener
  );

  /**
   * Inject modules for resolving DOM hierarchy and plugin ordering.
   */
  ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder);
  ReactInjection.EventPluginHub.injectInstanceHandle(ReactInstanceHandles);
  ReactInjection.EventPluginHub.injectMount(ReactMount);

  /**
   * Some important event plugins included by default (without having to require
   * them).
   */
  ReactInjection.EventPluginHub.injectEventPluginsByName({
    SimpleEventPlugin: SimpleEventPlugin,
    EnterLeaveEventPlugin: EnterLeaveEventPlugin,
    ChangeEventPlugin: ChangeEventPlugin,
    MobileSafariClickEventPlugin: MobileSafariClickEventPlugin,
    SelectEventPlugin: SelectEventPlugin,
    BeforeInputEventPlugin: BeforeInputEventPlugin
  });

  ReactInjection.NativeComponent.injectGenericComponentClass(
    ReactDOMComponent
  );

  ReactInjection.NativeComponent.injectTextComponentClass(
    ReactDOMTextComponent
  );

  ReactInjection.NativeComponent.injectAutoWrapper(
    autoGenerateWrapperClass
  );

  // This needs to happen before createFullPageComponent() otherwise the mixin
  // won't be included.
  ReactInjection.Class.injectMixin(ReactBrowserComponentMixin);

  ReactInjection.NativeComponent.injectComponentClasses({
    'button': ReactDOMButton,
    'form': ReactDOMForm,
    'iframe': ReactDOMIframe,
    'img': ReactDOMImg,
    'input': ReactDOMInput,
    'option': ReactDOMOption,
    'select': ReactDOMSelect,
    'textarea': ReactDOMTextarea,

    'html': createFullPageComponent('html'),
    'head': createFullPageComponent('head'),
    'body': createFullPageComponent('body')
  });

  ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig);
  ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);

  ReactInjection.EmptyComponent.injectEmptyComponent('noscript');

  ReactInjection.Updates.injectReconcileTransaction(
    ReactReconcileTransaction
  );
  ReactInjection.Updates.injectBatchingStrategy(
    ReactDefaultBatchingStrategy
  );

  ReactInjection.RootIndex.injectCreateReactRootIndex(
    ExecutionEnvironment.canUseDOM ?
      ClientReactRootIndex.createReactRootIndex :
      ServerReactRootIndex.createReactRootIndex
  );

  ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment);
  ReactInjection.DOMComponent.injectIDOperations(ReactDOMIDOperations);

  if ("production" !== process.env.NODE_ENV) {
    var url = (ExecutionEnvironment.canUseDOM && window.location.href) || '';
    if ((/[?&]react_perf\b/).test(url)) {
      var ReactDefaultPerf = require("./ReactDefaultPerf");
      ReactDefaultPerf.start();
    }
  }
}

module.exports = {
  inject: inject
};

}).call(this,require("1YiZ5S"))
},{"./BeforeInputEventPlugin":14,"./ChangeEventPlugin":19,"./ClientReactRootIndex":20,"./DefaultEventPluginOrder":25,"./EnterLeaveEventPlugin":26,"./ExecutionEnvironment":33,"./HTMLDOMPropertyConfig":35,"./MobileSafariClickEventPlugin":39,"./ReactBrowserComponentMixin":43,"./ReactClass":49,"./ReactComponentBrowserEnvironment":51,"./ReactDOMButton":58,"./ReactDOMComponent":59,"./ReactDOMForm":60,"./ReactDOMIDOperations":61,"./ReactDOMIframe":62,"./ReactDOMImg":63,"./ReactDOMInput":64,"./ReactDOMOption":65,"./ReactDOMSelect":66,"./ReactDOMTextComponent":68,"./ReactDOMTextarea":69,"./ReactDefaultBatchingStrategy":70,"./ReactDefaultPerf":72,"./ReactElement":74,"./ReactEventListener":79,"./ReactInjection":81,"./ReactInstanceHandles":83,"./ReactMount":88,"./ReactReconcileTransaction":99,"./SVGDOMPropertyConfig":113,"./SelectEventPlugin":114,"./ServerReactRootIndex":115,"./SimpleEventPlugin":116,"./createFullPageComponent":137,"1YiZ5S":5}],72:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactDefaultPerf
 * @typechecks static-only
 */

'use strict';

var DOMProperty = require("./DOMProperty");
var ReactDefaultPerfAnalysis = require("./ReactDefaultPerfAnalysis");
var ReactMount = require("./ReactMount");
var ReactPerf = require("./ReactPerf");

var performanceNow = require("./performanceNow");

function roundFloat(val) {
  return Math.floor(val * 100) / 100;
}

function addValue(obj, key, val) {
  obj[key] = (obj[key] || 0) + val;
}

var ReactDefaultPerf = {
  _allMeasurements: [], // last item in the list is the current one
  _mountStack: [0],
  _injected: false,

  start: function() {
    if (!ReactDefaultPerf._injected) {
      ReactPerf.injection.injectMeasure(ReactDefaultPerf.measure);
    }

    ReactDefaultPerf._allMeasurements.length = 0;
    ReactPerf.enableMeasure = true;
  },

  stop: function() {
    ReactPerf.enableMeasure = false;
  },

  getLastMeasurements: function() {
    return ReactDefaultPerf._allMeasurements;
  },

  printExclusive: function(measurements) {
    measurements = measurements || ReactDefaultPerf._allMeasurements;
    var summary = ReactDefaultPerfAnalysis.getExclusiveSummary(measurements);
    console.table(summary.map(function(item) {
      return {
        'Component class name': item.componentName,
        'Total inclusive time (ms)': roundFloat(item.inclusive),
        'Exclusive mount time (ms)': roundFloat(item.exclusive),
        'Exclusive render time (ms)': roundFloat(item.render),
        'Mount time per instance (ms)': roundFloat(item.exclusive / item.count),
        'Render time per instance (ms)': roundFloat(item.render / item.count),
        'Instances': item.count
      };
    }));
    // TODO: ReactDefaultPerfAnalysis.getTotalTime() does not return the correct
    // number.
  },

  printInclusive: function(measurements) {
    measurements = measurements || ReactDefaultPerf._allMeasurements;
    var summary = ReactDefaultPerfAnalysis.getInclusiveSummary(measurements);
    console.table(summary.map(function(item) {
      return {
        'Owner > component': item.componentName,
        'Inclusive time (ms)': roundFloat(item.time),
        'Instances': item.count
      };
    }));
    console.log(
      'Total time:',
      ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms'
    );
  },

  getMeasurementsSummaryMap: function(measurements) {
    var summary = ReactDefaultPerfAnalysis.getInclusiveSummary(
      measurements,
      true
    );
    return summary.map(function(item) {
      return {
        'Owner > component': item.componentName,
        'Wasted time (ms)': item.time,
        'Instances': item.count
      };
    });
  },

  printWasted: function(measurements) {
    measurements = measurements || ReactDefaultPerf._allMeasurements;
    console.table(ReactDefaultPerf.getMeasurementsSummaryMap(measurements));
    console.log(
      'Total time:',
      ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms'
    );
  },

  printDOM: function(measurements) {
    measurements = measurements || ReactDefaultPerf._allMeasurements;
    var summary = ReactDefaultPerfAnalysis.getDOMSummary(measurements);
    console.table(summary.map(function(item) {
      var result = {};
      result[DOMProperty.ID_ATTRIBUTE_NAME] = item.id;
      result['type'] = item.type;
      result['args'] = JSON.stringify(item.args);
      return result;
    }));
    console.log(
      'Total time:',
      ReactDefaultPerfAnalysis.getTotalTime(measurements).toFixed(2) + ' ms'
    );
  },

  _recordWrite: function(id, fnName, totalTime, args) {
    // TODO: totalTime isn't that useful since it doesn't count paints/reflows
    var writes =
      ReactDefaultPerf
        ._allMeasurements[ReactDefaultPerf._allMeasurements.length - 1]
        .writes;
    writes[id] = writes[id] || [];
    writes[id].push({
      type: fnName,
      time: totalTime,
      args: args
    });
  },

  measure: function(moduleName, fnName, func) {
    return function() {for (var args=[],$__0=0,$__1=arguments.length;$__0<$__1;$__0++) args.push(arguments[$__0]);
      var totalTime;
      var rv;
      var start;

      if (fnName === '_renderNewRootComponent' ||
          fnName === 'flushBatchedUpdates') {
        // A "measurement" is a set of metrics recorded for each flush. We want
        // to group the metrics for a given flush together so we can look at the
        // components that rendered and the DOM operations that actually
        // happened to determine the amount of "wasted work" performed.
        ReactDefaultPerf._allMeasurements.push({
          exclusive: {},
          inclusive: {},
          render: {},
          counts: {},
          writes: {},
          displayNames: {},
          totalTime: 0
        });
        start = performanceNow();
        rv = func.apply(this, args);
        ReactDefaultPerf._allMeasurements[
          ReactDefaultPerf._allMeasurements.length - 1
        ].totalTime = performanceNow() - start;
        return rv;
      } else if (fnName === '_mountImageIntoNode' ||
          moduleName === 'ReactDOMIDOperations') {
        start = performanceNow();
        rv = func.apply(this, args);
        totalTime = performanceNow() - start;

        if (fnName === '_mountImageIntoNode') {
          var mountID = ReactMount.getID(args[1]);
          ReactDefaultPerf._recordWrite(mountID, fnName, totalTime, args[0]);
        } else if (fnName === 'dangerouslyProcessChildrenUpdates') {
          // special format
          args[0].forEach(function(update) {
            var writeArgs = {};
            if (update.fromIndex !== null) {
              writeArgs.fromIndex = update.fromIndex;
            }
            if (update.toIndex !== null) {
              writeArgs.toIndex = update.toIndex;
            }
            if (update.textContent !== null) {
              writeArgs.textContent = update.textContent;
            }
            if (update.markupIndex !== null) {
              writeArgs.markup = args[1][update.markupIndex];
            }
            ReactDefaultPerf._recordWrite(
              update.parentID,
              update.type,
              totalTime,
              writeArgs
            );
          });
        } else {
          // basic format
          ReactDefaultPerf._recordWrite(
            args[0],
            fnName,
            totalTime,
            Array.prototype.slice.call(args, 1)
          );
        }
        return rv;
      } else if (moduleName === 'ReactCompositeComponent' && (
        (// TODO: receiveComponent()?
        (fnName === 'mountComponent' ||
        fnName === 'updateComponent' || fnName === '_renderValidatedComponent')))) {

        if (typeof this._currentElement.type === 'string') {
          return func.apply(this, args);
        }

        var rootNodeID = fnName === 'mountComponent' ?
          args[0] :
          this._rootNodeID;
        var isRender = fnName === '_renderValidatedComponent';
        var isMount = fnName === 'mountComponent';

        var mountStack = ReactDefaultPerf._mountStack;
        var entry = ReactDefaultPerf._allMeasurements[
          ReactDefaultPerf._allMeasurements.length - 1
        ];

        if (isRender) {
          addValue(entry.counts, rootNodeID, 1);
        } else if (isMount) {
          mountStack.push(0);
        }

        start = performanceNow();
        rv = func.apply(this, args);
        totalTime = performanceNow() - start;

        if (isRender) {
          addValue(entry.render, rootNodeID, totalTime);
        } else if (isMount) {
          var subMountTime = mountStack.pop();
          mountStack[mountStack.length - 1] += totalTime;
          addValue(entry.exclusive, rootNodeID, totalTime - subMountTime);
          addValue(entry.inclusive, rootNodeID, totalTime);
        } else {
          addValue(entry.inclusive, rootNodeID, totalTime);
        }

        entry.displayNames[rootNodeID] = {
          current: this.getName(),
          owner: this._currentElement._owner ?
            this._currentElement._owner.getName() :
            '<root>'
        };

        return rv;
      } else {
        return func.apply(this, args);
      }
    };
  }
};

module.exports = ReactDefaultPerf;

},{"./DOMProperty":22,"./ReactDefaultPerfAnalysis":73,"./ReactMount":88,"./ReactPerf":93,"./performanceNow":174}],73:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactDefaultPerfAnalysis
 */

var assign = require("./Object.assign");

// Don't try to save users less than 1.2ms (a number I made up)
var DONT_CARE_THRESHOLD = 1.2;
var DOM_OPERATION_TYPES = {
  '_mountImageIntoNode': 'set innerHTML',
  INSERT_MARKUP: 'set innerHTML',
  MOVE_EXISTING: 'move',
  REMOVE_NODE: 'remove',
  TEXT_CONTENT: 'set textContent',
  'updatePropertyByID': 'update attribute',
  'deletePropertyByID': 'delete attribute',
  'updateStylesByID': 'update styles',
  'updateInnerHTMLByID': 'set innerHTML',
  'dangerouslyReplaceNodeWithMarkupByID': 'replace'
};

function getTotalTime(measurements) {
  // TODO: return number of DOM ops? could be misleading.
  // TODO: measure dropped frames after reconcile?
  // TODO: log total time of each reconcile and the top-level component
  // class that triggered it.
  var totalTime = 0;
  for (var i = 0; i < measurements.length; i++) {
    var measurement = measurements[i];
    totalTime += measurement.totalTime;
  }
  return totalTime;
}

function getDOMSummary(measurements) {
  var items = [];
  for (var i = 0; i < measurements.length; i++) {
    var measurement = measurements[i];
    var id;

    for (id in measurement.writes) {
      measurement.writes[id].forEach(function(write) {
        items.push({
          id: id,
          type: DOM_OPERATION_TYPES[write.type] || write.type,
          args: write.args
        });
      });
    }
  }
  return items;
}

function getExclusiveSummary(measurements) {
  var candidates = {};
  var displayName;

  for (var i = 0; i < measurements.length; i++) {
    var measurement = measurements[i];
    var allIDs = assign(
      {},
      measurement.exclusive,
      measurement.inclusive
    );

    for (var id in allIDs) {
      displayName = measurement.displayNames[id].current;

      candidates[displayName] = candidates[displayName] || {
        componentName: displayName,
        inclusive: 0,
        exclusive: 0,
        render: 0,
        count: 0
      };
      if (measurement.render[id]) {
        candidates[displayName].render += measurement.render[id];
      }
      if (measurement.exclusive[id]) {
        candidates[displayName].exclusive += measurement.exclusive[id];
      }
      if (measurement.inclusive[id]) {
        candidates[displayName].inclusive += measurement.inclusive[id];
      }
      if (measurement.counts[id]) {
        candidates[displayName].count += measurement.counts[id];
      }
    }
  }

  // Now make a sorted array with the results.
  var arr = [];
  for (displayName in candidates) {
    if (candidates[displayName].exclusive >= DONT_CARE_THRESHOLD) {
      arr.push(candidates[displayName]);
    }
  }

  arr.sort(function(a, b) {
    return b.exclusive - a.exclusive;
  });

  return arr;
}

function getInclusiveSummary(measurements, onlyClean) {
  var candidates = {};
  var inclusiveKey;

  for (var i = 0; i < measurements.length; i++) {
    var measurement = measurements[i];
    var allIDs = assign(
      {},
      measurement.exclusive,
      measurement.inclusive
    );
    var cleanComponents;

    if (onlyClean) {
      cleanComponents = getUnchangedComponents(measurement);
    }

    for (var id in allIDs) {
      if (onlyClean && !cleanComponents[id]) {
        continue;
      }

      var displayName = measurement.displayNames[id];

      // Inclusive time is not useful for many components without knowing where
      // they are instantiated. So we aggregate inclusive time with both the
      // owner and current displayName as the key.
      inclusiveKey = displayName.owner + ' > ' + displayName.current;

      candidates[inclusiveKey] = candidates[inclusiveKey] || {
        componentName: inclusiveKey,
        time: 0,
        count: 0
      };

      if (measurement.inclusive[id]) {
        candidates[inclusiveKey].time += measurement.inclusive[id];
      }
      if (measurement.counts[id]) {
        candidates[inclusiveKey].count += measurement.counts[id];
      }
    }
  }

  // Now make a sorted array with the results.
  var arr = [];
  for (inclusiveKey in candidates) {
    if (candidates[inclusiveKey].time >= DONT_CARE_THRESHOLD) {
      arr.push(candidates[inclusiveKey]);
    }
  }

  arr.sort(function(a, b) {
    return b.time - a.time;
  });

  return arr;
}

function getUnchangedComponents(measurement) {
  // For a given reconcile, look at which components did not actually
  // render anything to the DOM and return a mapping of their ID to
  // the amount of time it took to render the entire subtree.
  var cleanComponents = {};
  var dirtyLeafIDs = Object.keys(measurement.writes);
  var allIDs = assign({}, measurement.exclusive, measurement.inclusive);

  for (var id in allIDs) {
    var isDirty = false;
    // For each component that rendered, see if a component that triggered
    // a DOM op is in its subtree.
    for (var i = 0; i < dirtyLeafIDs.length; i++) {
      if (dirtyLeafIDs[i].indexOf(id) === 0) {
        isDirty = true;
        break;
      }
    }
    if (!isDirty && measurement.counts[id] > 0) {
      cleanComponents[id] = true;
    }
  }
  return cleanComponents;
}

var ReactDefaultPerfAnalysis = {
  getExclusiveSummary: getExclusiveSummary,
  getInclusiveSummary: getInclusiveSummary,
  getDOMSummary: getDOMSummary,
  getTotalTime: getTotalTime
};

module.exports = ReactDefaultPerfAnalysis;

},{"./Object.assign":40}],74:[function(require,module,exports){
(function (process){
/**
 * Copyright 2014-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactElement
 */

'use strict';

var ReactContext = require("./ReactContext");
var ReactCurrentOwner = require("./ReactCurrentOwner");

var assign = require("./Object.assign");
var warning = require("./warning");

var RESERVED_PROPS = {
  key: true,
  ref: true
};

/**
 * Warn for mutations.
 *
 * @internal
 * @param {object} object
 * @param {string} key
 */
function defineWarningProperty(object, key) {
  Object.defineProperty(object, key, {

    configurable: false,
    enumerable: true,

    get: function() {
      if (!this._store) {
        return null;
      }
      return this._store[key];
    },

    set: function(value) {
      ("production" !== process.env.NODE_ENV ? warning(
        false,
        'Don\'t set the %s property of the React element. Instead, ' +
        'specify the correct value when initially creating the element.',
        key
      ) : null);
      this._store[key] = value;
    }

  });
}

/**
 * This is updated to true if the membrane is successfully created.
 */
var useMutationMembrane = false;

/**
 * Warn for mutations.
 *
 * @internal
 * @param {object} element
 */
function defineMutationMembrane(prototype) {
  try {
    var pseudoFrozenProperties = {
      props: true
    };
    for (var key in pseudoFrozenProperties) {
      defineWarningProperty(prototype, key);
    }
    useMutationMembrane = true;
  } catch (x) {
    // IE will fail on defineProperty
  }
}

/**
 * Base constructor for all React elements. This is only used to make this
 * work with a dynamic instanceof check. Nothing should live on this prototype.
 *
 * @param {*} type
 * @param {string|object} ref
 * @param {*} key
 * @param {*} props
 * @internal
 */
var ReactElement = function(type, key, ref, owner, context, props) {
  // Built-in properties that belong on the element
  this.type = type;
  this.key = key;
  this.ref = ref;

  // Record the component responsible for creating this element.
  this._owner = owner;

  // TODO: Deprecate withContext, and then the context becomes accessible
  // through the owner.
  this._context = context;

  if ("production" !== process.env.NODE_ENV) {
    // The validation flag and props are currently mutative. We put them on
    // an external backing store so that we can freeze the whole object.
    // This can be replaced with a WeakMap once they are implemented in
    // commonly used development environments.
    this._store = {props: props, originalProps: assign({}, props)};

    // To make comparing ReactElements easier for testing purposes, we make
    // the validation flag non-enumerable (where possible, which should
    // include every environment we run tests in), so the test framework
    // ignores it.
    try {
      Object.defineProperty(this._store, 'validated', {
        configurable: false,
        enumerable: false,
        writable: true
      });
    } catch (x) {
    }
    this._store.validated = false;

    // We're not allowed to set props directly on the object so we early
    // return and rely on the prototype membrane to forward to the backing
    // store.
    if (useMutationMembrane) {
      Object.freeze(this);
      return;
    }
  }

  this.props = props;
};

// We intentionally don't expose the function on the constructor property.
// ReactElement should be indistinguishable from a plain object.
ReactElement.prototype = {
  _isReactElement: true
};

if ("production" !== process.env.NODE_ENV) {
  defineMutationMembrane(ReactElement.prototype);
}

ReactElement.createElement = function(type, config, children) {
  var propName;

  // Reserved names are extracted
  var props = {};

  var key = null;
  var ref = null;

  if (config != null) {
    ref = config.ref === undefined ? null : config.ref;
    key = config.key === undefined ? null : '' + config.key;
    // Remaining properties are added to a new props object
    for (propName in config) {
      if (config.hasOwnProperty(propName) &&
          !RESERVED_PROPS.hasOwnProperty(propName)) {
        props[propName] = config[propName];
      }
    }
  }

  // Children can be more than one argument, and those are transferred onto
  // the newly allocated props object.
  var childrenLength = arguments.length - 2;
  if (childrenLength === 1) {
    props.children = children;
  } else if (childrenLength > 1) {
    var childArray = Array(childrenLength);
    for (var i = 0; i < childrenLength; i++) {
      childArray[i] = arguments[i + 2];
    }
    props.children = childArray;
  }

  // Resolve default props
  if (type && type.defaultProps) {
    var defaultProps = type.defaultProps;
    for (propName in defaultProps) {
      if (typeof props[propName] === 'undefined') {
        props[propName] = defaultProps[propName];
      }
    }
  }

  return new ReactElement(
    type,
    key,
    ref,
    ReactCurrentOwner.current,
    ReactContext.current,
    props
  );
};

ReactElement.createFactory = function(type) {
  var factory = ReactElement.createElement.bind(null, type);
  // Expose the type on the factory and the prototype so that it can be
  // easily accessed on elements. E.g. <Foo />.type === Foo.type.
  // This should not be named `constructor` since this may not be the function
  // that created the element, and it may not even be a constructor.
  // Legacy hook TODO: Warn if this is accessed
  factory.type = type;
  return factory;
};

ReactElement.cloneAndReplaceProps = function(oldElement, newProps) {
  var newElement = new ReactElement(
    oldElement.type,
    oldElement.key,
    oldElement.ref,
    oldElement._owner,
    oldElement._context,
    newProps
  );

  if ("production" !== process.env.NODE_ENV) {
    // If the key on the original is valid, then the clone is valid
    newElement._store.validated = oldElement._store.validated;
  }
  return newElement;
};

ReactElement.cloneElement = function(element, config, children) {
  var propName;

  // Original props are copied
  var props = assign({}, element.props);

  // Reserved names are extracted
  var key = element.key;
  var ref = element.ref;

  // Owner will be preserved, unless ref is overridden
  var owner = element._owner;

  if (config != null) {
    if (config.ref !== undefined) {
      // Silently steal the ref from the parent.
      ref = config.ref;
      owner = ReactCurrentOwner.current;
    }
    if (config.key !== undefined) {
      key = '' + config.key;
    }
    // Remaining properties override existing props
    for (propName in config) {
      if (config.hasOwnProperty(propName) &&
          !RESERVED_PROPS.hasOwnProperty(propName)) {
        props[propName] = config[propName];
      }
    }
  }

  // Children can be more than one argument, and those are transferred onto
  // the newly allocated props object.
  var childrenLength = arguments.length - 2;
  if (childrenLength === 1) {
    props.children = children;
  } else if (childrenLength > 1) {
    var childArray = Array(childrenLength);
    for (var i = 0; i < childrenLength; i++) {
      childArray[i] = arguments[i + 2];
    }
    props.children = childArray;
  }

  return new ReactElement(
    element.type,
    key,
    ref,
    owner,
    element._context,
    props
  );
};

/**
 * @param {?object} object
 * @return {boolean} True if `object` is a valid component.
 * @final
 */
ReactElement.isValidElement = function(object) {
  // ReactTestUtils is often used outside of beforeEach where as React is
  // within it. This leads to two different instances of React on the same
  // page. To identify a element from a different React instance we use
  // a flag instead of an instanceof check.
  var isElement = !!(object && object._isReactElement);
  // if (isElement && !(object instanceof ReactElement)) {
  // This is an indicator that you're using multiple versions of React at the
  // same time. This will screw with ownership and stuff. Fix it, please.
  // TODO: We could possibly warn here.
  // }
  return isElement;
};

module.exports = ReactElement;

}).call(this,require("1YiZ5S"))
},{"./Object.assign":40,"./ReactContext":55,"./ReactCurrentOwner":56,"./warning":183,"1YiZ5S":5}],75:[function(require,module,exports){
(function (process){
/**
 * Copyright 2014-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactElementValidator
 */

/**
 * ReactElementValidator provides a wrapper around a element factory
 * which validates the props passed to the element. This is intended to be
 * used only in DEV and could be replaced by a static type checker for languages
 * that support it.
 */

'use strict';

var ReactElement = require("./ReactElement");
var ReactFragment = require("./ReactFragment");
var ReactPropTypeLocations = require("./ReactPropTypeLocations");
var ReactPropTypeLocationNames = require("./ReactPropTypeLocationNames");
var ReactCurrentOwner = require("./ReactCurrentOwner");
var ReactNativeComponent = require("./ReactNativeComponent");

var getIteratorFn = require("./getIteratorFn");
var invariant = require("./invariant");
var warning = require("./warning");

function getDeclarationErrorAddendum() {
  if (ReactCurrentOwner.current) {
    var name = ReactCurrentOwner.current.getName();
    if (name) {
      return ' Check the render method of `' + name + '`.';
    }
  }
  return '';
}

/**
 * Warn if there's no key explicitly set on dynamic arrays of children or
 * object keys are not valid. This allows us to keep track of children between
 * updates.
 */
var ownerHasKeyUseWarning = {};

var loggedTypeFailures = {};

var NUMERIC_PROPERTY_REGEX = /^\d+$/;

/**
 * Gets the instance's name for use in warnings.
 *
 * @internal
 * @return {?string} Display name or undefined
 */
function getName(instance) {
  var publicInstance = instance && instance.getPublicInstance();
  if (!publicInstance) {
    return undefined;
  }
  var constructor = publicInstance.constructor;
  if (!constructor) {
    return undefined;
  }
  return constructor.displayName || constructor.name || undefined;
}

/**
 * Gets the current owner's displayName for use in warnings.
 *
 * @internal
 * @return {?string} Display name or undefined
 */
function getCurrentOwnerDisplayName() {
  var current = ReactCurrentOwner.current;
  return (
    current && getName(current) || undefined
  );
}

/**
 * Warn if the element doesn't have an explicit key assigned to it.
 * This element is in an array. The array could grow and shrink or be
 * reordered. All children that haven't already been validated are required to
 * have a "key" property assigned to it.
 *
 * @internal
 * @param {ReactElement} element Element that requires a key.
 * @param {*} parentType element's parent's type.
 */
function validateExplicitKey(element, parentType) {
  if (element._store.validated || element.key != null) {
    return;
  }
  element._store.validated = true;

  warnAndMonitorForKeyUse(
    'Each child in an array or iterator should have a unique "key" prop.',
    element,
    parentType
  );
}

/**
 * Warn if the key is being defined as an object property but has an incorrect
 * value.
 *
 * @internal
 * @param {string} name Property name of the key.
 * @param {ReactElement} element Component that requires a key.
 * @param {*} parentType element's parent's type.
 */
function validatePropertyKey(name, element, parentType) {
  if (!NUMERIC_PROPERTY_REGEX.test(name)) {
    return;
  }
  warnAndMonitorForKeyUse(
    'Child objects should have non-numeric keys so ordering is preserved.',
    element,
    parentType
  );
}

/**
 * Shared warning and monitoring code for the key warnings.
 *
 * @internal
 * @param {string} message The base warning that gets output.
 * @param {ReactElement} element Component that requires a key.
 * @param {*} parentType element's parent's type.
 */
function warnAndMonitorForKeyUse(message, element, parentType) {
  var ownerName = getCurrentOwnerDisplayName();
  var parentName = typeof parentType === 'string' ?
    parentType : parentType.displayName || parentType.name;

  var useName = ownerName || parentName;
  var memoizer = ownerHasKeyUseWarning[message] || (
    (ownerHasKeyUseWarning[message] = {})
  );
  if (memoizer.hasOwnProperty(useName)) {
    return;
  }
  memoizer[useName] = true;

  var parentOrOwnerAddendum =
    ownerName ? (" Check the render method of " + ownerName + ".") :
    parentName ? (" Check the React.render call using <" + parentName + ">.") :
    '';

  // Usually the current owner is the offender, but if it accepts children as a
  // property, it may be the creator of the child that's responsible for
  // assigning it a key.
  var childOwnerAddendum = '';
  if (element &&
      element._owner &&
      element._owner !== ReactCurrentOwner.current) {
    // Name of the component that originally created this child.
    var childOwnerName = getName(element._owner);

    childOwnerAddendum = (" It was passed a child from " + childOwnerName + ".");
  }

  ("production" !== process.env.NODE_ENV ? warning(
    false,
    message + '%s%s See https://fb.me/react-warning-keys for more information.',
    parentOrOwnerAddendum,
    childOwnerAddendum
  ) : null);
}

/**
 * Ensure that every element either is passed in a static location, in an
 * array with an explicit keys property defined, or in an object literal
 * with valid key property.
 *
 * @internal
 * @param {ReactNode} node Statically passed child of any type.
 * @param {*} parentType node's parent's type.
 */
function validateChildKeys(node, parentType) {
  if (Array.isArray(node)) {
    for (var i = 0; i < node.length; i++) {
      var child = node[i];
      if (ReactElement.isValidElement(child)) {
        validateExplicitKey(child, parentType);
      }
    }
  } else if (ReactElement.isValidElement(node)) {
    // This element was passed in a valid location.
    node._store.validated = true;
  } else if (node) {
    var iteratorFn = getIteratorFn(node);
    // Entry iterators provide implicit keys.
    if (iteratorFn) {
      if (iteratorFn !== node.entries) {
        var iterator = iteratorFn.call(node);
        var step;
        while (!(step = iterator.next()).done) {
          if (ReactElement.isValidElement(step.value)) {
            validateExplicitKey(step.value, parentType);
          }
        }
      }
    } else if (typeof node === 'object') {
      var fragment = ReactFragment.extractIfFragment(node);
      for (var key in fragment) {
        if (fragment.hasOwnProperty(key)) {
          validatePropertyKey(key, fragment[key], parentType);
        }
      }
    }
  }
}

/**
 * Assert that the props are valid
 *
 * @param {string} componentName Name of the component for error messages.
 * @param {object} propTypes Map of prop name to a ReactPropType
 * @param {object} props
 * @param {string} location e.g. "prop", "context", "child context"
 * @private
 */
function checkPropTypes(componentName, propTypes, props, location) {
  for (var propName in propTypes) {
    if (propTypes.hasOwnProperty(propName)) {
      var error;
      // Prop type validation may throw. In case they do, we don't want to
      // fail the render phase where it didn't fail before. So we log it.
      // After these have been cleaned up, we'll let them throw.
      try {
        // This is intentionally an invariant that gets caught. It's the same
        // behavior as without this statement except with a better message.
        ("production" !== process.env.NODE_ENV ? invariant(
          typeof propTypes[propName] === 'function',
          '%s: %s type `%s` is invalid; it must be a function, usually from ' +
          'React.PropTypes.',
          componentName || 'React class',
          ReactPropTypeLocationNames[location],
          propName
        ) : invariant(typeof propTypes[propName] === 'function'));
        error = propTypes[propName](props, propName, componentName, location);
      } catch (ex) {
        error = ex;
      }
      if (error instanceof Error && !(error.message in loggedTypeFailures)) {
        // Only monitor this failure once because there tends to be a lot of the
        // same error.
        loggedTypeFailures[error.message] = true;

        var addendum = getDeclarationErrorAddendum(this);
        ("production" !== process.env.NODE_ENV ? warning(false, 'Failed propType: %s%s', error.message, addendum) : null);
      }
    }
  }
}

var warnedPropsMutations = {};

/**
 * Warn about mutating props when setting `propName` on `element`.
 *
 * @param {string} propName The string key within props that was set
 * @param {ReactElement} element
 */
function warnForPropsMutation(propName, element) {
  var type = element.type;
  var elementName = typeof type === 'string' ? type : type.displayName;
  var ownerName = element._owner ?
    element._owner.getPublicInstance().constructor.displayName : null;

  var warningKey = propName + '|' + elementName + '|' + ownerName;
  if (warnedPropsMutations.hasOwnProperty(warningKey)) {
    return;
  }
  warnedPropsMutations[warningKey] = true;

  var elementInfo = '';
  if (elementName) {
    elementInfo = ' <' + elementName + ' />';
  }
  var ownerInfo = '';
  if (ownerName) {
    ownerInfo = ' The element was created by ' + ownerName + '.';
  }

  ("production" !== process.env.NODE_ENV ? warning(
    false,
    'Don\'t set .props.%s of the React component%s. Instead, specify the ' +
    'correct value when initially creating the element or use ' +
    'React.cloneElement to make a new element with updated props.%s',
    propName,
    elementInfo,
    ownerInfo
  ) : null);
}

// Inline Object.is polyfill
function is(a, b) {
  if (a !== a) {
    // NaN
    return b !== b;
  }
  if (a === 0 && b === 0) {
    // +-0
    return 1 / a === 1 / b;
  }
  return a === b;
}

/**
 * Given an element, check if its props have been mutated since element
 * creation (or the last call to this function). In particular, check if any
 * new props have been added, which we can't directly catch by defining warning
 * properties on the props object.
 *
 * @param {ReactElement} element
 */
function checkAndWarnForMutatedProps(element) {
  if (!element._store) {
    // Element was created using `new ReactElement` directly or with
    // `ReactElement.createElement`; skip mutation checking
    return;
  }

  var originalProps = element._store.originalProps;
  var props = element.props;

  for (var propName in props) {
    if (props.hasOwnProperty(propName)) {
      if (!originalProps.hasOwnProperty(propName) ||
          !is(originalProps[propName], props[propName])) {
        warnForPropsMutation(propName, element);

        // Copy over the new value so that the two props objects match again
        originalProps[propName] = props[propName];
      }
    }
  }
}

/**
 * Given an element, validate that its props follow the propTypes definition,
 * provided by the type.
 *
 * @param {ReactElement} element
 */
function validatePropTypes(element) {
  if (element.type == null) {
    // This has already warned. Don't throw.
    return;
  }
  // Extract the component class from the element. Converts string types
  // to a composite class which may have propTypes.
  // TODO: Validating a string's propTypes is not decoupled from the
  // rendering target which is problematic.
  var componentClass = ReactNativeComponent.getComponentClassForElement(
    element
  );
  var name = componentClass.displayName || componentClass.name;
  if (componentClass.propTypes) {
    checkPropTypes(
      name,
      componentClass.propTypes,
      element.props,
      ReactPropTypeLocations.prop
    );
  }
  if (typeof componentClass.getDefaultProps === 'function') {
    ("production" !== process.env.NODE_ENV ? warning(
      componentClass.getDefaultProps.isReactClassApproved,
      'getDefaultProps is only used on classic React.createClass ' +
      'definitions. Use a static property named `defaultProps` instead.'
    ) : null);
  }
}

var ReactElementValidator = {

  checkAndWarnForMutatedProps: checkAndWarnForMutatedProps,

  createElement: function(type, props, children) {
    // We warn in this case but don't throw. We expect the element creation to
    // succeed and there will likely be errors in render.
    ("production" !== process.env.NODE_ENV ? warning(
      type != null,
      'React.createElement: type should not be null or undefined. It should ' +
        'be a string (for DOM elements) or a ReactClass (for composite ' +
        'components).'
    ) : null);

    var element = ReactElement.createElement.apply(this, arguments);

    // The result can be nullish if a mock or a custom function is used.
    // TODO: Drop this when these are no longer allowed as the type argument.
    if (element == null) {
      return element;
    }

    for (var i = 2; i < arguments.length; i++) {
      validateChildKeys(arguments[i], type);
    }

    validatePropTypes(element);

    return element;
  },

  createFactory: function(type) {
    var validatedFactory = ReactElementValidator.createElement.bind(
      null,
      type
    );
    // Legacy hook TODO: Warn if this is accessed
    validatedFactory.type = type;

    if ("production" !== process.env.NODE_ENV) {
      try {
        Object.defineProperty(
          validatedFactory,
          'type',
          {
            enumerable: false,
            get: function() {
              ("production" !== process.env.NODE_ENV ? warning(
                false,
                'Factory.type is deprecated. Access the class directly ' +
                'before passing it to createFactory.'
              ) : null);
              Object.defineProperty(this, 'type', {
                value: type
              });
              return type;
            }
          }
        );
      } catch (x) {
        // IE will fail on defineProperty (es5-shim/sham too)
      }
    }


    return validatedFactory;
  },

  cloneElement: function(element, props, children) {
    var newElement = ReactElement.cloneElement.apply(this, arguments);
    for (var i = 2; i < arguments.length; i++) {
      validateChildKeys(arguments[i], newElement.type);
    }
    validatePropTypes(newElement);
    return newElement;
  }

};

module.exports = ReactElementValidator;

}).call(this,require("1YiZ5S"))
},{"./ReactCurrentOwner":56,"./ReactElement":74,"./ReactFragment":80,"./ReactNativeComponent":91,"./ReactPropTypeLocationNames":95,"./ReactPropTypeLocations":96,"./getIteratorFn":153,"./invariant":162,"./warning":183,"1YiZ5S":5}],76:[function(require,module,exports){
(function (process){
/**
 * Copyright 2014-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactEmptyComponent
 */

'use strict';

var ReactElement = require("./ReactElement");
var ReactInstanceMap = require("./ReactInstanceMap");

var invariant = require("./invariant");

var component;
// This registry keeps track of the React IDs of the components that rendered to
// `null` (in reality a placeholder such as `noscript`)
var nullComponentIDsRegistry = {};

var ReactEmptyComponentInjection = {
  injectEmptyComponent: function(emptyComponent) {
    component = ReactElement.createFactory(emptyComponent);
  }
};

var ReactEmptyComponentType = function() {};
ReactEmptyComponentType.prototype.componentDidMount = function() {
  var internalInstance = ReactInstanceMap.get(this);
  // TODO: Make sure we run these methods in the correct order, we shouldn't
  // need this check. We're going to assume if we're here it means we ran
  // componentWillUnmount already so there is no internal instance (it gets
  // removed as part of the unmounting process).
  if (!internalInstance) {
    return;
  }
  registerNullComponentID(internalInstance._rootNodeID);
};
ReactEmptyComponentType.prototype.componentWillUnmount = function() {
  var internalInstance = ReactInstanceMap.get(this);
  // TODO: Get rid of this check. See TODO in componentDidMount.
  if (!internalInstance) {
    return;
  }
  deregisterNullComponentID(internalInstance._rootNodeID);
};
ReactEmptyComponentType.prototype.render = function() {
  ("production" !== process.env.NODE_ENV ? invariant(
    component,
    'Trying to return null from a render, but no null placeholder component ' +
    'was injected.'
  ) : invariant(component));
  return component();
};

var emptyElement = ReactElement.createElement(ReactEmptyComponentType);

/**
 * Mark the component as having rendered to null.
 * @param {string} id Component's `_rootNodeID`.
 */
function registerNullComponentID(id) {
  nullComponentIDsRegistry[id] = true;
}

/**
 * Unmark the component as having rendered to null: it renders to something now.
 * @param {string} id Component's `_rootNodeID`.
 */
function deregisterNullComponentID(id) {
  delete nullComponentIDsRegistry[id];
}

/**
 * @param {string} id Component's `_rootNodeID`.
 * @return {boolean} True if the component is rendered to null.
 */
function isNullComponentID(id) {
  return !!nullComponentIDsRegistry[id];
}

var ReactEmptyComponent = {
  emptyElement: emptyElement,
  injection: ReactEmptyComponentInjection,
  isNullComponentID: isNullComponentID
};

module.exports = ReactEmptyComponent;

}).call(this,require("1YiZ5S"))
},{"./ReactElement":74,"./ReactInstanceMap":84,"./invariant":162,"1YiZ5S":5}],77:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactErrorUtils
 * @typechecks
 */

"use strict";

var ReactErrorUtils = {
  /**
   * Creates a guarded version of a function. This is supposed to make debugging
   * of event handlers easier. To aid debugging with the browser's debugger,
   * this currently simply returns the original function.
   *
   * @param {function} func Function to be executed
   * @param {string} name The name of the guard
   * @return {function}
   */
  guard: function(func, name) {
    return func;
  }
};

module.exports = ReactErrorUtils;

},{}],78:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactEventEmitterMixin
 */

'use strict';

var EventPluginHub = require("./EventPluginHub");

function runEventQueueInBatch(events) {
  EventPluginHub.enqueueEvents(events);
  EventPluginHub.processEventQueue();
}

var ReactEventEmitterMixin = {

  /**
   * Streams a fired top-level event to `EventPluginHub` where plugins have the
   * opportunity to create `ReactEvent`s to be dispatched.
   *
   * @param {string} topLevelType Record from `EventConstants`.
   * @param {object} topLevelTarget The listening component root node.
   * @param {string} topLevelTargetID ID of `topLevelTarget`.
   * @param {object} nativeEvent Native environment event.
   */
  handleTopLevel: function(
      topLevelType,
      topLevelTarget,
      topLevelTargetID,
      nativeEvent) {
    var events = EventPluginHub.extractEvents(
      topLevelType,
      topLevelTarget,
      topLevelTargetID,
      nativeEvent
    );

    runEventQueueInBatch(events);
  }
};

module.exports = ReactEventEmitterMixin;

},{"./EventPluginHub":29}],79:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactEventListener
 * @typechecks static-only
 */

'use strict';

var EventListener = require("./EventListener");
var ExecutionEnvironment = require("./ExecutionEnvironment");
var PooledClass = require("./PooledClass");
var ReactInstanceHandles = require("./ReactInstanceHandles");
var ReactMount = require("./ReactMount");
var ReactUpdates = require("./ReactUpdates");

var assign = require("./Object.assign");
var getEventTarget = require("./getEventTarget");
var getUnboundedScrollPosition = require("./getUnboundedScrollPosition");

/**
 * Finds the parent React component of `node`.
 *
 * @param {*} node
 * @return {?DOMEventTarget} Parent container, or `null` if the specified node
 *                           is not nested.
 */
function findParent(node) {
  // TODO: It may be a good idea to cache this to prevent unnecessary DOM
  // traversal, but caching is difficult to do correctly without using a
  // mutation observer to listen for all DOM changes.
  var nodeID = ReactMount.getID(node);
  var rootID = ReactInstanceHandles.getReactRootIDFromNodeID(nodeID);
  var container = ReactMount.findReactContainerForID(rootID);
  var parent = ReactMount.getFirstReactDOM(container);
  return parent;
}

// Used to store ancestor hierarchy in top level callback
function TopLevelCallbackBookKeeping(topLevelType, nativeEvent) {
  this.topLevelType = topLevelType;
  this.nativeEvent = nativeEvent;
  this.ancestors = [];
}
assign(TopLevelCallbackBookKeeping.prototype, {
  destructor: function() {
    this.topLevelType = null;
    this.nativeEvent = null;
    this.ancestors.length = 0;
  }
});
PooledClass.addPoolingTo(
  TopLevelCallbackBookKeeping,
  PooledClass.twoArgumentPooler
);

function handleTopLevelImpl(bookKeeping) {
  var topLevelTarget = ReactMount.getFirstReactDOM(
    getEventTarget(bookKeeping.nativeEvent)
  ) || window;

  // Loop through the hierarchy, in case there's any nested components.
  // It's important that we build the array of ancestors before calling any
  // event handlers, because event handlers can modify the DOM, leading to
  // inconsistencies with ReactMount's node cache. See #1105.
  var ancestor = topLevelTarget;
  while (ancestor) {
    bookKeeping.ancestors.push(ancestor);
    ancestor = findParent(ancestor);
  }

  for (var i = 0, l = bookKeeping.ancestors.length; i < l; i++) {
    topLevelTarget = bookKeeping.ancestors[i];
    var topLevelTargetID = ReactMount.getID(topLevelTarget) || '';
    ReactEventListener._handleTopLevel(
      bookKeeping.topLevelType,
      topLevelTarget,
      topLevelTargetID,
      bookKeeping.nativeEvent
    );
  }
}

function scrollValueMonitor(cb) {
  var scrollPosition = getUnboundedScrollPosition(window);
  cb(scrollPosition);
}

var ReactEventListener = {
  _enabled: true,
  _handleTopLevel: null,

  WINDOW_HANDLE: ExecutionEnvironment.canUseDOM ? window : null,

  setHandleTopLevel: function(handleTopLevel) {
    ReactEventListener._handleTopLevel = handleTopLevel;
  },

  setEnabled: function(enabled) {
    ReactEventListener._enabled = !!enabled;
  },

  isEnabled: function() {
    return ReactEventListener._enabled;
  },


  /**
   * Traps top-level events by using event bubbling.
   *
   * @param {string} topLevelType Record from `EventConstants`.
   * @param {string} handlerBaseName Event name (e.g. "click").
   * @param {object} handle Element on which to attach listener.
   * @return {object} An object with a remove function which will forcefully
   *                  remove the listener.
   * @internal
   */
  trapBubbledEvent: function(topLevelType, handlerBaseName, handle) {
    var element = handle;
    if (!element) {
      return null;
    }
    return EventListener.listen(
      element,
      handlerBaseName,
      ReactEventListener.dispatchEvent.bind(null, topLevelType)
    );
  },

  /**
   * Traps a top-level event by using event capturing.
   *
   * @param {string} topLevelType Record from `EventConstants`.
   * @param {string} handlerBaseName Event name (e.g. "click").
   * @param {object} handle Element on which to attach listener.
   * @return {object} An object with a remove function which will forcefully
   *                  remove the listener.
   * @internal
   */
  trapCapturedEvent: function(topLevelType, handlerBaseName, handle) {
    var element = handle;
    if (!element) {
      return null;
    }
    return EventListener.capture(
      element,
      handlerBaseName,
      ReactEventListener.dispatchEvent.bind(null, topLevelType)
    );
  },

  monitorScrollValue: function(refresh) {
    var callback = scrollValueMonitor.bind(null, refresh);
    EventListener.listen(window, 'scroll', callback);
  },

  dispatchEvent: function(topLevelType, nativeEvent) {
    if (!ReactEventListener._enabled) {
      return;
    }

    var bookKeeping = TopLevelCallbackBookKeeping.getPooled(
      topLevelType,
      nativeEvent
    );
    try {
      // Event queue being processed in the same cycle allows
      // `preventDefault`.
      ReactUpdates.batchedUpdates(handleTopLevelImpl, bookKeeping);
    } finally {
      TopLevelCallbackBookKeeping.release(bookKeeping);
    }
  }
};

module.exports = ReactEventListener;

},{"./EventListener":28,"./ExecutionEnvironment":33,"./Object.assign":40,"./PooledClass":41,"./ReactInstanceHandles":83,"./ReactMount":88,"./ReactUpdates":111,"./getEventTarget":152,"./getUnboundedScrollPosition":158}],80:[function(require,module,exports){
(function (process){
/**
 * Copyright 2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
* @providesModule ReactFragment
*/

'use strict';

var ReactElement = require("./ReactElement");

var warning = require("./warning");

/**
 * We used to allow keyed objects to serve as a collection of ReactElements,
 * or nested sets. This allowed us a way to explicitly key a set a fragment of
 * components. This is now being replaced with an opaque data structure.
 * The upgrade path is to call React.addons.createFragment({ key: value }) to
 * create a keyed fragment. The resulting data structure is opaque, for now.
 */

if ("production" !== process.env.NODE_ENV) {
  var fragmentKey = '_reactFragment';
  var didWarnKey = '_reactDidWarn';
  var canWarnForReactFragment = false;

  try {
    // Feature test. Don't even try to issue this warning if we can't use
    // enumerable: false.

    var dummy = function() {
      return 1;
    };

    Object.defineProperty(
      {},
      fragmentKey,
      {enumerable: false, value: true}
    );

    Object.defineProperty(
      {},
      'key',
      {enumerable: true, get: dummy}
    );

    canWarnForReactFragment = true;
  } catch (x) { }

  var proxyPropertyAccessWithWarning = function(obj, key) {
    Object.defineProperty(obj, key, {
      enumerable: true,
      get: function() {
        ("production" !== process.env.NODE_ENV ? warning(
          this[didWarnKey],
          'A ReactFragment is an opaque type. Accessing any of its ' +
          'properties is deprecated. Pass it to one of the React.Children ' +
          'helpers.'
        ) : null);
        this[didWarnKey] = true;
        return this[fragmentKey][key];
      },
      set: function(value) {
        ("production" !== process.env.NODE_ENV ? warning(
          this[didWarnKey],
          'A ReactFragment is an immutable opaque type. Mutating its ' +
          'properties is deprecated.'
        ) : null);
        this[didWarnKey] = true;
        this[fragmentKey][key] = value;
      }
    });
  };

  var issuedWarnings = {};

  var didWarnForFragment = function(fragment) {
    // We use the keys and the type of the value as a heuristic to dedupe the
    // warning to avoid spamming too much.
    var fragmentCacheKey = '';
    for (var key in fragment) {
      fragmentCacheKey += key + ':' + (typeof fragment[key]) + ',';
    }
    var alreadyWarnedOnce = !!issuedWarnings[fragmentCacheKey];
    issuedWarnings[fragmentCacheKey] = true;
    return alreadyWarnedOnce;
  };
}

var ReactFragment = {
  // Wrap a keyed object in an opaque proxy that warns you if you access any
  // of its properties.
  create: function(object) {
    if ("production" !== process.env.NODE_ENV) {
      if (typeof object !== 'object' || !object || Array.isArray(object)) {
        ("production" !== process.env.NODE_ENV ? warning(
          false,
          'React.addons.createFragment only accepts a single object.',
          object
        ) : null);
        return object;
      }
      if (ReactElement.isValidElement(object)) {
        ("production" !== process.env.NODE_ENV ? warning(
          false,
          'React.addons.createFragment does not accept a ReactElement ' +
          'without a wrapper object.'
        ) : null);
        return object;
      }
      if (canWarnForReactFragment) {
        var proxy = {};
        Object.defineProperty(proxy, fragmentKey, {
          enumerable: false,
          value: object
        });
        Object.defineProperty(proxy, didWarnKey, {
          writable: true,
          enumerable: false,
          value: false
        });
        for (var key in object) {
          proxyPropertyAccessWithWarning(proxy, key);
        }
        Object.preventExtensions(proxy);
        return proxy;
      }
    }
    return object;
  },
  // Extract the original keyed object from the fragment opaque type. Warn if
  // a plain object is passed here.
  extract: function(fragment) {
    if ("production" !== process.env.NODE_ENV) {
      if (canWarnForReactFragment) {
        if (!fragment[fragmentKey]) {
          ("production" !== process.env.NODE_ENV ? warning(
            didWarnForFragment(fragment),
            'Any use of a keyed object should be wrapped in ' +
            'React.addons.createFragment(object) before being passed as a ' +
            'child.'
          ) : null);
          return fragment;
        }
        return fragment[fragmentKey];
      }
    }
    return fragment;
  },
  // Check if this is a fragment and if so, extract the keyed object. If it
  // is a fragment-like object, warn that it should be wrapped. Ignore if we
  // can't determine what kind of object this is.
  extractIfFragment: function(fragment) {
    if ("production" !== process.env.NODE_ENV) {
      if (canWarnForReactFragment) {
        // If it is the opaque type, return the keyed object.
        if (fragment[fragmentKey]) {
          return fragment[fragmentKey];
        }
        // Otherwise, check each property if it has an element, if it does
        // it is probably meant as a fragment, so we can warn early. Defer,
        // the warning to extract.
        for (var key in fragment) {
          if (fragment.hasOwnProperty(key) &&
              ReactElement.isValidElement(fragment[key])) {
            // This looks like a fragment object, we should provide an
            // early warning.
            return ReactFragment.extract(fragment);
          }
        }
      }
    }
    return fragment;
  }
};

module.exports = ReactFragment;

}).call(this,require("1YiZ5S"))
},{"./ReactElement":74,"./warning":183,"1YiZ5S":5}],81:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactInjection
 */

'use strict';

var DOMProperty = require("./DOMProperty");
var EventPluginHub = require("./EventPluginHub");
var ReactComponentEnvironment = require("./ReactComponentEnvironment");
var ReactClass = require("./ReactClass");
var ReactEmptyComponent = require("./ReactEmptyComponent");
var ReactBrowserEventEmitter = require("./ReactBrowserEventEmitter");
var ReactNativeComponent = require("./ReactNativeComponent");
var ReactDOMComponent = require("./ReactDOMComponent");
var ReactPerf = require("./ReactPerf");
var ReactRootIndex = require("./ReactRootIndex");
var ReactUpdates = require("./ReactUpdates");

var ReactInjection = {
  Component: ReactComponentEnvironment.injection,
  Class: ReactClass.injection,
  DOMComponent: ReactDOMComponent.injection,
  DOMProperty: DOMProperty.injection,
  EmptyComponent: ReactEmptyComponent.injection,
  EventPluginHub: EventPluginHub.injection,
  EventEmitter: ReactBrowserEventEmitter.injection,
  NativeComponent: ReactNativeComponent.injection,
  Perf: ReactPerf.injection,
  RootIndex: ReactRootIndex.injection,
  Updates: ReactUpdates.injection
};

module.exports = ReactInjection;

},{"./DOMProperty":22,"./EventPluginHub":29,"./ReactBrowserEventEmitter":44,"./ReactClass":49,"./ReactComponentEnvironment":52,"./ReactDOMComponent":59,"./ReactEmptyComponent":76,"./ReactNativeComponent":91,"./ReactPerf":93,"./ReactRootIndex":102,"./ReactUpdates":111}],82:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactInputSelection
 */

'use strict';

var ReactDOMSelection = require("./ReactDOMSelection");

var containsNode = require("./containsNode");
var focusNode = require("./focusNode");
var getActiveElement = require("./getActiveElement");

function isInDocument(node) {
  return containsNode(document.documentElement, node);
}

/**
 * @ReactInputSelection: React input selection module. Based on Selection.js,
 * but modified to be suitable for react and has a couple of bug fixes (doesn't
 * assume buttons have range selections allowed).
 * Input selection module for React.
 */
var ReactInputSelection = {

  hasSelectionCapabilities: function(elem) {
    return elem && (
      ((elem.nodeName === 'INPUT' && elem.type === 'text') ||
      elem.nodeName === 'TEXTAREA' || elem.contentEditable === 'true')
    );
  },

  getSelectionInformation: function() {
    var focusedElem = getActiveElement();
    return {
      focusedElem: focusedElem,
      selectionRange:
          ReactInputSelection.hasSelectionCapabilities(focusedElem) ?
          ReactInputSelection.getSelection(focusedElem) :
          null
    };
  },

  /**
   * @restoreSelection: If any selection information was potentially lost,
   * restore it. This is useful when performing operations that could remove dom
   * nodes and place them back in, resulting in focus being lost.
   */
  restoreSelection: function(priorSelectionInformation) {
    var curFocusedElem = getActiveElement();
    var priorFocusedElem = priorSelectionInformation.focusedElem;
    var priorSelectionRange = priorSelectionInformation.selectionRange;
    if (curFocusedElem !== priorFocusedElem &&
        isInDocument(priorFocusedElem)) {
      if (ReactInputSelection.hasSelectionCapabilities(priorFocusedElem)) {
        ReactInputSelection.setSelection(
          priorFocusedElem,
          priorSelectionRange
        );
      }
      focusNode(priorFocusedElem);
    }
  },

  /**
   * @getSelection: Gets the selection bounds of a focused textarea, input or
   * contentEditable node.
   * -@input: Look up selection bounds of this input
   * -@return {start: selectionStart, end: selectionEnd}
   */
  getSelection: function(input) {
    var selection;

    if ('selectionStart' in input) {
      // Modern browser with input or textarea.
      selection = {
        start: input.selectionStart,
        end: input.selectionEnd
      };
    } else if (document.selection && input.nodeName === 'INPUT') {
      // IE8 input.
      var range = document.selection.createRange();
      // There can only be one selection per document in IE, so it must
      // be in our element.
      if (range.parentElement() === input) {
        selection = {
          start: -range.moveStart('character', -input.value.length),
          end: -range.moveEnd('character', -input.value.length)
        };
      }
    } else {
      // Content editable or old IE textarea.
      selection = ReactDOMSelection.getOffsets(input);
    }

    return selection || {start: 0, end: 0};
  },

  /**
   * @setSelection: Sets the selection bounds of a textarea or input and focuses
   * the input.
   * -@input     Set selection bounds of this input or textarea
   * -@offsets   Object of same form that is returned from get*
   */
  setSelection: function(input, offsets) {
    var start = offsets.start;
    var end = offsets.end;
    if (typeof end === 'undefined') {
      end = start;
    }

    if ('selectionStart' in input) {
      input.selectionStart = start;
      input.selectionEnd = Math.min(end, input.value.length);
    } else if (document.selection && input.nodeName === 'INPUT') {
      var range = input.createTextRange();
      range.collapse(true);
      range.moveStart('character', start);
      range.moveEnd('character', end - start);
      range.select();
    } else {
      ReactDOMSelection.setOffsets(input, offsets);
    }
  }
};

module.exports = ReactInputSelection;

},{"./ReactDOMSelection":67,"./containsNode":135,"./focusNode":146,"./getActiveElement":148}],83:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactInstanceHandles
 * @typechecks static-only
 */

'use strict';

var ReactRootIndex = require("./ReactRootIndex");

var invariant = require("./invariant");

var SEPARATOR = '.';
var SEPARATOR_LENGTH = SEPARATOR.length;

/**
 * Maximum depth of traversals before we consider the possibility of a bad ID.
 */
var MAX_TREE_DEPTH = 100;

/**
 * Creates a DOM ID prefix to use when mounting React components.
 *
 * @param {number} index A unique integer
 * @return {string} React root ID.
 * @internal
 */
function getReactRootIDString(index) {
  return SEPARATOR + index.toString(36);
}

/**
 * Checks if a character in the supplied ID is a separator or the end.
 *
 * @param {string} id A React DOM ID.
 * @param {number} index Index of the character to check.
 * @return {boolean} True if the character is a separator or end of the ID.
 * @private
 */
function isBoundary(id, index) {
  return id.charAt(index) === SEPARATOR || index === id.length;
}

/**
 * Checks if the supplied string is a valid React DOM ID.
 *
 * @param {string} id A React DOM ID, maybe.
 * @return {boolean} True if the string is a valid React DOM ID.
 * @private
 */
function isValidID(id) {
  return id === '' || (
    id.charAt(0) === SEPARATOR && id.charAt(id.length - 1) !== SEPARATOR
  );
}

/**
 * Checks if the first ID is an ancestor of or equal to the second ID.
 *
 * @param {string} ancestorID
 * @param {string} descendantID
 * @return {boolean} True if `ancestorID` is an ancestor of `descendantID`.
 * @internal
 */
function isAncestorIDOf(ancestorID, descendantID) {
  return (
    descendantID.indexOf(ancestorID) === 0 &&
    isBoundary(descendantID, ancestorID.length)
  );
}

/**
 * Gets the parent ID of the supplied React DOM ID, `id`.
 *
 * @param {string} id ID of a component.
 * @return {string} ID of the parent, or an empty string.
 * @private
 */
function getParentID(id) {
  return id ? id.substr(0, id.lastIndexOf(SEPARATOR)) : '';
}

/**
 * Gets the next DOM ID on the tree path from the supplied `ancestorID` to the
 * supplied `destinationID`. If they are equal, the ID is returned.
 *
 * @param {string} ancestorID ID of an ancestor node of `destinationID`.
 * @param {string} destinationID ID of the destination node.
 * @return {string} Next ID on the path from `ancestorID` to `destinationID`.
 * @private
 */
function getNextDescendantID(ancestorID, destinationID) {
  ("production" !== process.env.NODE_ENV ? invariant(
    isValidID(ancestorID) && isValidID(destinationID),
    'getNextDescendantID(%s, %s): Received an invalid React DOM ID.',
    ancestorID,
    destinationID
  ) : invariant(isValidID(ancestorID) && isValidID(destinationID)));
  ("production" !== process.env.NODE_ENV ? invariant(
    isAncestorIDOf(ancestorID, destinationID),
    'getNextDescendantID(...): React has made an invalid assumption about ' +
    'the DOM hierarchy. Expected `%s` to be an ancestor of `%s`.',
    ancestorID,
    destinationID
  ) : invariant(isAncestorIDOf(ancestorID, destinationID)));
  if (ancestorID === destinationID) {
    return ancestorID;
  }
  // Skip over the ancestor and the immediate separator. Traverse until we hit
  // another separator or we reach the end of `destinationID`.
  var start = ancestorID.length + SEPARATOR_LENGTH;
  var i;
  for (i = start; i < destinationID.length; i++) {
    if (isBoundary(destinationID, i)) {
      break;
    }
  }
  return destinationID.substr(0, i);
}

/**
 * Gets the nearest common ancestor ID of two IDs.
 *
 * Using this ID scheme, the nearest common ancestor ID is the longest common
 * prefix of the two IDs that immediately preceded a "marker" in both strings.
 *
 * @param {string} oneID
 * @param {string} twoID
 * @return {string} Nearest common ancestor ID, or the empty string if none.
 * @private
 */
function getFirstCommonAncestorID(oneID, twoID) {
  var minLength = Math.min(oneID.length, twoID.length);
  if (minLength === 0) {
    return '';
  }
  var lastCommonMarkerIndex = 0;
  // Use `<=` to traverse until the "EOL" of the shorter string.
  for (var i = 0; i <= minLength; i++) {
    if (isBoundary(oneID, i) && isBoundary(twoID, i)) {
      lastCommonMarkerIndex = i;
    } else if (oneID.charAt(i) !== twoID.charAt(i)) {
      break;
    }
  }
  var longestCommonID = oneID.substr(0, lastCommonMarkerIndex);
  ("production" !== process.env.NODE_ENV ? invariant(
    isValidID(longestCommonID),
    'getFirstCommonAncestorID(%s, %s): Expected a valid React DOM ID: %s',
    oneID,
    twoID,
    longestCommonID
  ) : invariant(isValidID(longestCommonID)));
  return longestCommonID;
}

/**
 * Traverses the parent path between two IDs (either up or down). The IDs must
 * not be the same, and there must exist a parent path between them. If the
 * callback returns `false`, traversal is stopped.
 *
 * @param {?string} start ID at which to start traversal.
 * @param {?string} stop ID at which to end traversal.
 * @param {function} cb Callback to invoke each ID with.
 * @param {?boolean} skipFirst Whether or not to skip the first node.
 * @param {?boolean} skipLast Whether or not to skip the last node.
 * @private
 */
function traverseParentPath(start, stop, cb, arg, skipFirst, skipLast) {
  start = start || '';
  stop = stop || '';
  ("production" !== process.env.NODE_ENV ? invariant(
    start !== stop,
    'traverseParentPath(...): Cannot traverse from and to the same ID, `%s`.',
    start
  ) : invariant(start !== stop));
  var traverseUp = isAncestorIDOf(stop, start);
  ("production" !== process.env.NODE_ENV ? invariant(
    traverseUp || isAncestorIDOf(start, stop),
    'traverseParentPath(%s, %s, ...): Cannot traverse from two IDs that do ' +
    'not have a parent path.',
    start,
    stop
  ) : invariant(traverseUp || isAncestorIDOf(start, stop)));
  // Traverse from `start` to `stop` one depth at a time.
  var depth = 0;
  var traverse = traverseUp ? getParentID : getNextDescendantID;
  for (var id = start; /* until break */; id = traverse(id, stop)) {
    var ret;
    if ((!skipFirst || id !== start) && (!skipLast || id !== stop)) {
      ret = cb(id, traverseUp, arg);
    }
    if (ret === false || id === stop) {
      // Only break //after// visiting `stop`.
      break;
    }
    ("production" !== process.env.NODE_ENV ? invariant(
      depth++ < MAX_TREE_DEPTH,
      'traverseParentPath(%s, %s, ...): Detected an infinite loop while ' +
      'traversing the React DOM ID tree. This may be due to malformed IDs: %s',
      start, stop
    ) : invariant(depth++ < MAX_TREE_DEPTH));
  }
}

/**
 * Manages the IDs assigned to DOM representations of React components. This
 * uses a specific scheme in order to traverse the DOM efficiently (e.g. in
 * order to simulate events).
 *
 * @internal
 */
var ReactInstanceHandles = {

  /**
   * Constructs a React root ID
   * @return {string} A React root ID.
   */
  createReactRootID: function() {
    return getReactRootIDString(ReactRootIndex.createReactRootIndex());
  },

  /**
   * Constructs a React ID by joining a root ID with a name.
   *
   * @param {string} rootID Root ID of a parent component.
   * @param {string} name A component's name (as flattened children).
   * @return {string} A React ID.
   * @internal
   */
  createReactID: function(rootID, name) {
    return rootID + name;
  },

  /**
   * Gets the DOM ID of the React component that is the root of the tree that
   * contains the React component with the supplied DOM ID.
   *
   * @param {string} id DOM ID of a React component.
   * @return {?string} DOM ID of the React component that is the root.
   * @internal
   */
  getReactRootIDFromNodeID: function(id) {
    if (id && id.charAt(0) === SEPARATOR && id.length > 1) {
      var index = id.indexOf(SEPARATOR, 1);
      return index > -1 ? id.substr(0, index) : id;
    }
    return null;
  },

  /**
   * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that
   * should would receive a `mouseEnter` or `mouseLeave` event.
   *
   * NOTE: Does not invoke the callback on the nearest common ancestor because
   * nothing "entered" or "left" that element.
   *
   * @param {string} leaveID ID being left.
   * @param {string} enterID ID being entered.
   * @param {function} cb Callback to invoke on each entered/left ID.
   * @param {*} upArg Argument to invoke the callback with on left IDs.
   * @param {*} downArg Argument to invoke the callback with on entered IDs.
   * @internal
   */
  traverseEnterLeave: function(leaveID, enterID, cb, upArg, downArg) {
    var ancestorID = getFirstCommonAncestorID(leaveID, enterID);
    if (ancestorID !== leaveID) {
      traverseParentPath(leaveID, ancestorID, cb, upArg, false, true);
    }
    if (ancestorID !== enterID) {
      traverseParentPath(ancestorID, enterID, cb, downArg, true, false);
    }
  },

  /**
   * Simulates the traversal of a two-phase, capture/bubble event dispatch.
   *
   * NOTE: This traversal happens on IDs without touching the DOM.
   *
   * @param {string} targetID ID of the target node.
   * @param {function} cb Callback to invoke.
   * @param {*} arg Argument to invoke the callback with.
   * @internal
   */
  traverseTwoPhase: function(targetID, cb, arg) {
    if (targetID) {
      traverseParentPath('', targetID, cb, arg, true, false);
      traverseParentPath(targetID, '', cb, arg, false, true);
    }
  },

  /**
   * Traverse a node ID, calling the supplied `cb` for each ancestor ID. For
   * example, passing `.0.$row-0.1` would result in `cb` getting called
   * with `.0`, `.0.$row-0`, and `.0.$row-0.1`.
   *
   * NOTE: This traversal happens on IDs without touching the DOM.
   *
   * @param {string} targetID ID of the target node.
   * @param {function} cb Callback to invoke.
   * @param {*} arg Argument to invoke the callback with.
   * @internal
   */
  traverseAncestors: function(targetID, cb, arg) {
    traverseParentPath('', targetID, cb, arg, true, false);
  },

  /**
   * Exposed for unit testing.
   * @private
   */
  _getFirstCommonAncestorID: getFirstCommonAncestorID,

  /**
   * Exposed for unit testing.
   * @private
   */
  _getNextDescendantID: getNextDescendantID,

  isAncestorIDOf: isAncestorIDOf,

  SEPARATOR: SEPARATOR

};

module.exports = ReactInstanceHandles;

}).call(this,require("1YiZ5S"))
},{"./ReactRootIndex":102,"./invariant":162,"1YiZ5S":5}],84:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactInstanceMap
 */

'use strict';

/**
 * `ReactInstanceMap` maintains a mapping from a public facing stateful
 * instance (key) and the internal representation (value). This allows public
 * methods to accept the user facing instance as an argument and map them back
 * to internal methods.
 */

// TODO: Replace this with ES6: var ReactInstanceMap = new Map();
var ReactInstanceMap = {

  /**
   * This API should be called `delete` but we'd have to make sure to always
   * transform these to strings for IE support. When this transform is fully
   * supported we can rename it.
   */
  remove: function(key) {
    key._reactInternalInstance = undefined;
  },

  get: function(key) {
    return key._reactInternalInstance;
  },

  has: function(key) {
    return key._reactInternalInstance !== undefined;
  },

  set: function(key, value) {
    key._reactInternalInstance = value;
  }

};

module.exports = ReactInstanceMap;

},{}],85:[function(require,module,exports){
/**
 * Copyright 2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactLifeCycle
 */

'use strict';

/**
 * This module manages the bookkeeping when a component is in the process
 * of being mounted or being unmounted. This is used as a way to enforce
 * invariants (or warnings) when it is not recommended to call
 * setState/forceUpdate.
 *
 * currentlyMountingInstance: During the construction phase, it is not possible
 * to trigger an update since the instance is not fully mounted yet. However, we
 * currently allow this as a convenience for mutating the initial state.
 *
 * currentlyUnmountingInstance: During the unmounting phase, the instance is
 * still mounted and can therefore schedule an update. However, this is not
 * recommended and probably an error since it's about to be unmounted.
 * Therefore we still want to trigger in an error for that case.
 */

var ReactLifeCycle = {
  currentlyMountingInstance: null,
  currentlyUnmountingInstance: null
};

module.exports = ReactLifeCycle;

},{}],86:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactLink
 * @typechecks static-only
 */

'use strict';

/**
 * ReactLink encapsulates a common pattern in which a component wants to modify
 * a prop received from its parent. ReactLink allows the parent to pass down a
 * value coupled with a callback that, when invoked, expresses an intent to
 * modify that value. For example:
 *
 * React.createClass({
 *   getInitialState: function() {
 *     return {value: ''};
 *   },
 *   render: function() {
 *     var valueLink = new ReactLink(this.state.value, this._handleValueChange);
 *     return <input valueLink={valueLink} />;
 *   },
 *   this._handleValueChange: function(newValue) {
 *     this.setState({value: newValue});
 *   }
 * });
 *
 * We have provided some sugary mixins to make the creation and
 * consumption of ReactLink easier; see LinkedValueUtils and LinkedStateMixin.
 */

var React = require("./React");

/**
 * @param {*} value current value of the link
 * @param {function} requestChange callback to request a change
 */
function ReactLink(value, requestChange) {
  this.value = value;
  this.requestChange = requestChange;
}

/**
 * Creates a PropType that enforces the ReactLink API and optionally checks the
 * type of the value being passed inside the link. Example:
 *
 * MyComponent.propTypes = {
 *   tabIndexLink: ReactLink.PropTypes.link(React.PropTypes.number)
 * }
 */
function createLinkTypeChecker(linkType) {
  var shapes = {
    value: typeof linkType === 'undefined' ?
      React.PropTypes.any.isRequired :
      linkType.isRequired,
    requestChange: React.PropTypes.func.isRequired
  };
  return React.PropTypes.shape(shapes);
}

ReactLink.PropTypes = {
  link: createLinkTypeChecker
};

module.exports = ReactLink;

},{"./React":42}],87:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactMarkupChecksum
 */

'use strict';

var adler32 = require("./adler32");

var ReactMarkupChecksum = {
  CHECKSUM_ATTR_NAME: 'data-react-checksum',

  /**
   * @param {string} markup Markup string
   * @return {string} Markup string with checksum attribute attached
   */
  addChecksumToMarkup: function(markup) {
    var checksum = adler32(markup);
    return markup.replace(
      '>',
      ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '="' + checksum + '">'
    );
  },

  /**
   * @param {string} markup to use
   * @param {DOMElement} element root React element
   * @returns {boolean} whether or not the markup is the same
   */
  canReuseMarkup: function(markup, element) {
    var existingChecksum = element.getAttribute(
      ReactMarkupChecksum.CHECKSUM_ATTR_NAME
    );
    existingChecksum = existingChecksum && parseInt(existingChecksum, 10);
    var markupChecksum = adler32(markup);
    return markupChecksum === existingChecksum;
  }
};

module.exports = ReactMarkupChecksum;

},{"./adler32":131}],88:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactMount
 */

'use strict';

var DOMProperty = require("./DOMProperty");
var ReactBrowserEventEmitter = require("./ReactBrowserEventEmitter");
var ReactCurrentOwner = require("./ReactCurrentOwner");
var ReactElement = require("./ReactElement");
var ReactElementValidator = require("./ReactElementValidator");
var ReactEmptyComponent = require("./ReactEmptyComponent");
var ReactInstanceHandles = require("./ReactInstanceHandles");
var ReactInstanceMap = require("./ReactInstanceMap");
var ReactMarkupChecksum = require("./ReactMarkupChecksum");
var ReactPerf = require("./ReactPerf");
var ReactReconciler = require("./ReactReconciler");
var ReactUpdateQueue = require("./ReactUpdateQueue");
var ReactUpdates = require("./ReactUpdates");

var emptyObject = require("./emptyObject");
var containsNode = require("./containsNode");
var getReactRootElementInContainer = require("./getReactRootElementInContainer");
var instantiateReactComponent = require("./instantiateReactComponent");
var invariant = require("./invariant");
var setInnerHTML = require("./setInnerHTML");
var shouldUpdateReactComponent = require("./shouldUpdateReactComponent");
var warning = require("./warning");

var SEPARATOR = ReactInstanceHandles.SEPARATOR;

var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;
var nodeCache = {};

var ELEMENT_NODE_TYPE = 1;
var DOC_NODE_TYPE = 9;

/** Mapping from reactRootID to React component instance. */
var instancesByReactRootID = {};

/** Mapping from reactRootID to `container` nodes. */
var containersByReactRootID = {};

if ("production" !== process.env.NODE_ENV) {
  /** __DEV__-only mapping from reactRootID to root elements. */
  var rootElementsByReactRootID = {};
}

// Used to store breadth-first search state in findComponentRoot.
var findComponentRootReusableArray = [];

/**
 * Finds the index of the first character
 * that's not common between the two given strings.
 *
 * @return {number} the index of the character where the strings diverge
 */
function firstDifferenceIndex(string1, string2) {
  var minLen = Math.min(string1.length, string2.length);
  for (var i = 0; i < minLen; i++) {
    if (string1.charAt(i) !== string2.charAt(i)) {
      return i;
    }
  }
  return string1.length === string2.length ? -1 : minLen;
}

/**
 * @param {DOMElement} container DOM element that may contain a React component.
 * @return {?string} A "reactRoot" ID, if a React component is rendered.
 */
function getReactRootID(container) {
  var rootElement = getReactRootElementInContainer(container);
  return rootElement && ReactMount.getID(rootElement);
}

/**
 * Accessing node[ATTR_NAME] or calling getAttribute(ATTR_NAME) on a form
 * element can return its control whose name or ID equals ATTR_NAME. All
 * DOM nodes support `getAttributeNode` but this can also get called on
 * other objects so just return '' if we're given something other than a
 * DOM node (such as window).
 *
 * @param {?DOMElement|DOMWindow|DOMDocument|DOMTextNode} node DOM node.
 * @return {string} ID of the supplied `domNode`.
 */
function getID(node) {
  var id = internalGetID(node);
  if (id) {
    if (nodeCache.hasOwnProperty(id)) {
      var cached = nodeCache[id];
      if (cached !== node) {
        ("production" !== process.env.NODE_ENV ? invariant(
          !isValid(cached, id),
          'ReactMount: Two valid but unequal nodes with the same `%s`: %s',
          ATTR_NAME, id
        ) : invariant(!isValid(cached, id)));

        nodeCache[id] = node;
      }
    } else {
      nodeCache[id] = node;
    }
  }

  return id;
}

function internalGetID(node) {
  // If node is something like a window, document, or text node, none of
  // which support attributes or a .getAttribute method, gracefully return
  // the empty string, as if the attribute were missing.
  return node && node.getAttribute && node.getAttribute(ATTR_NAME) || '';
}

/**
 * Sets the React-specific ID of the given node.
 *
 * @param {DOMElement} node The DOM node whose ID will be set.
 * @param {string} id The value of the ID attribute.
 */
function setID(node, id) {
  var oldID = internalGetID(node);
  if (oldID !== id) {
    delete nodeCache[oldID];
  }
  node.setAttribute(ATTR_NAME, id);
  nodeCache[id] = node;
}

/**
 * Finds the node with the supplied React-generated DOM ID.
 *
 * @param {string} id A React-generated DOM ID.
 * @return {DOMElement} DOM node with the suppled `id`.
 * @internal
 */
function getNode(id) {
  if (!nodeCache.hasOwnProperty(id) || !isValid(nodeCache[id], id)) {
    nodeCache[id] = ReactMount.findReactNodeByID(id);
  }
  return nodeCache[id];
}

/**
 * Finds the node with the supplied public React instance.
 *
 * @param {*} instance A public React instance.
 * @return {?DOMElement} DOM node with the suppled `id`.
 * @internal
 */
function getNodeFromInstance(instance) {
  var id = ReactInstanceMap.get(instance)._rootNodeID;
  if (ReactEmptyComponent.isNullComponentID(id)) {
    return null;
  }
  if (!nodeCache.hasOwnProperty(id) || !isValid(nodeCache[id], id)) {
    nodeCache[id] = ReactMount.findReactNodeByID(id);
  }
  return nodeCache[id];
}

/**
 * A node is "valid" if it is contained by a currently mounted container.
 *
 * This means that the node does not have to be contained by a document in
 * order to be considered valid.
 *
 * @param {?DOMElement} node The candidate DOM node.
 * @param {string} id The expected ID of the node.
 * @return {boolean} Whether the node is contained by a mounted container.
 */
function isValid(node, id) {
  if (node) {
    ("production" !== process.env.NODE_ENV ? invariant(
      internalGetID(node) === id,
      'ReactMount: Unexpected modification of `%s`',
      ATTR_NAME
    ) : invariant(internalGetID(node) === id));

    var container = ReactMount.findReactContainerForID(id);
    if (container && containsNode(container, node)) {
      return true;
    }
  }

  return false;
}

/**
 * Causes the cache to forget about one React-specific ID.
 *
 * @param {string} id The ID to forget.
 */
function purgeID(id) {
  delete nodeCache[id];
}

var deepestNodeSoFar = null;
function findDeepestCachedAncestorImpl(ancestorID) {
  var ancestor = nodeCache[ancestorID];
  if (ancestor && isValid(ancestor, ancestorID)) {
    deepestNodeSoFar = ancestor;
  } else {
    // This node isn't populated in the cache, so presumably none of its
    // descendants are. Break out of the loop.
    return false;
  }
}

/**
 * Return the deepest cached node whose ID is a prefix of `targetID`.
 */
function findDeepestCachedAncestor(targetID) {
  deepestNodeSoFar = null;
  ReactInstanceHandles.traverseAncestors(
    targetID,
    findDeepestCachedAncestorImpl
  );

  var foundNode = deepestNodeSoFar;
  deepestNodeSoFar = null;
  return foundNode;
}

/**
 * Mounts this component and inserts it into the DOM.
 *
 * @param {ReactComponent} componentInstance The instance to mount.
 * @param {string} rootID DOM ID of the root node.
 * @param {DOMElement} container DOM element to mount into.
 * @param {ReactReconcileTransaction} transaction
 * @param {boolean} shouldReuseMarkup If true, do not insert markup
 */
function mountComponentIntoNode(
    componentInstance,
    rootID,
    container,
    transaction,
    shouldReuseMarkup) {
  var markup = ReactReconciler.mountComponent(
    componentInstance, rootID, transaction, emptyObject
  );
  componentInstance._isTopLevel = true;
  ReactMount._mountImageIntoNode(markup, container, shouldReuseMarkup);
}

/**
 * Batched mount.
 *
 * @param {ReactComponent} componentInstance The instance to mount.
 * @param {string} rootID DOM ID of the root node.
 * @param {DOMElement} container DOM element to mount into.
 * @param {boolean} shouldReuseMarkup If true, do not insert markup
 */
function batchedMountComponentIntoNode(
    componentInstance,
    rootID,
    container,
    shouldReuseMarkup) {
  var transaction = ReactUpdates.ReactReconcileTransaction.getPooled();
  transaction.perform(
    mountComponentIntoNode,
    null,
    componentInstance,
    rootID,
    container,
    transaction,
    shouldReuseMarkup
  );
  ReactUpdates.ReactReconcileTransaction.release(transaction);
}

/**
 * Mounting is the process of initializing a React component by creating its
 * representative DOM elements and inserting them into a supplied `container`.
 * Any prior content inside `container` is destroyed in the process.
 *
 *   ReactMount.render(
 *     component,
 *     document.getElementById('container')
 *   );
 *
 *   <div id="container">                   <-- Supplied `container`.
 *     <div data-reactid=".3">              <-- Rendered reactRoot of React
 *       // ...                                 component.
 *     </div>
 *   </div>
 *
 * Inside of `container`, the first element rendered is the "reactRoot".
 */
var ReactMount = {
  /** Exposed for debugging purposes **/
  _instancesByReactRootID: instancesByReactRootID,

  /**
   * This is a hook provided to support rendering React components while
   * ensuring that the apparent scroll position of its `container` does not
   * change.
   *
   * @param {DOMElement} container The `container` being rendered into.
   * @param {function} renderCallback This must be called once to do the render.
   */
  scrollMonitor: function(container, renderCallback) {
    renderCallback();
  },

  /**
   * Take a component that's already mounted into the DOM and replace its props
   * @param {ReactComponent} prevComponent component instance already in the DOM
   * @param {ReactElement} nextElement component instance to render
   * @param {DOMElement} container container to render into
   * @param {?function} callback function triggered on completion
   */
  _updateRootComponent: function(
      prevComponent,
      nextElement,
      container,
      callback) {
    if ("production" !== process.env.NODE_ENV) {
      ReactElementValidator.checkAndWarnForMutatedProps(nextElement);
    }

    ReactMount.scrollMonitor(container, function() {
      ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement);
      if (callback) {
        ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback);
      }
    });

    if ("production" !== process.env.NODE_ENV) {
      // Record the root element in case it later gets transplanted.
      rootElementsByReactRootID[getReactRootID(container)] =
        getReactRootElementInContainer(container);
    }

    return prevComponent;
  },

  /**
   * Register a component into the instance map and starts scroll value
   * monitoring
   * @param {ReactComponent} nextComponent component instance to render
   * @param {DOMElement} container container to render into
   * @return {string} reactRoot ID prefix
   */
  _registerComponent: function(nextComponent, container) {
    ("production" !== process.env.NODE_ENV ? invariant(
      container && (
        (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE)
      ),
      '_registerComponent(...): Target container is not a DOM element.'
    ) : invariant(container && (
      (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE)
    )));

    ReactBrowserEventEmitter.ensureScrollValueMonitoring();

    var reactRootID = ReactMount.registerContainer(container);
    instancesByReactRootID[reactRootID] = nextComponent;
    return reactRootID;
  },

  /**
   * Render a new component into the DOM.
   * @param {ReactElement} nextElement element to render
   * @param {DOMElement} container container to render into
   * @param {boolean} shouldReuseMarkup if we should skip the markup insertion
   * @return {ReactComponent} nextComponent
   */
  _renderNewRootComponent: function(
    nextElement,
    container,
    shouldReuseMarkup
  ) {
    // Various parts of our code (such as ReactCompositeComponent's
    // _renderValidatedComponent) assume that calls to render aren't nested;
    // verify that that's the case.
    ("production" !== process.env.NODE_ENV ? warning(
      ReactCurrentOwner.current == null,
      '_renderNewRootComponent(): Render methods should be a pure function ' +
      'of props and state; triggering nested component updates from ' +
      'render is not allowed. If necessary, trigger nested updates in ' +
      'componentDidUpdate.'
    ) : null);

    var componentInstance = instantiateReactComponent(nextElement, null);
    var reactRootID = ReactMount._registerComponent(
      componentInstance,
      container
    );

    // The initial render is synchronous but any updates that happen during
    // rendering, in componentWillMount or componentDidMount, will be batched
    // according to the current batching strategy.

    ReactUpdates.batchedUpdates(
      batchedMountComponentIntoNode,
      componentInstance,
      reactRootID,
      container,
      shouldReuseMarkup
    );

    if ("production" !== process.env.NODE_ENV) {
      // Record the root element in case it later gets transplanted.
      rootElementsByReactRootID[reactRootID] =
        getReactRootElementInContainer(container);
    }

    return componentInstance;
  },

  /**
   * Renders a React component into the DOM in the supplied `container`.
   *
   * If the React component was previously rendered into `container`, this will
   * perform an update on it and only mutate the DOM as necessary to reflect the
   * latest React component.
   *
   * @param {ReactElement} nextElement Component element to render.
   * @param {DOMElement} container DOM element to render into.
   * @param {?function} callback function triggered on completion
   * @return {ReactComponent} Component instance rendered in `container`.
   */
  render: function(nextElement, container, callback) {
    ("production" !== process.env.NODE_ENV ? invariant(
      ReactElement.isValidElement(nextElement),
      'React.render(): Invalid component element.%s',
      (
        typeof nextElement === 'string' ?
          ' Instead of passing an element string, make sure to instantiate ' +
          'it by passing it to React.createElement.' :
        typeof nextElement === 'function' ?
          ' Instead of passing a component class, make sure to instantiate ' +
          'it by passing it to React.createElement.' :
        // Check if it quacks like an element
        nextElement != null && nextElement.props !== undefined ?
          ' This may be caused by unintentionally loading two independent ' +
          'copies of React.' :
          ''
      )
    ) : invariant(ReactElement.isValidElement(nextElement)));

    var prevComponent = instancesByReactRootID[getReactRootID(container)];

    if (prevComponent) {
      var prevElement = prevComponent._currentElement;
      if (shouldUpdateReactComponent(prevElement, nextElement)) {
        return ReactMount._updateRootComponent(
          prevComponent,
          nextElement,
          container,
          callback
        ).getPublicInstance();
      } else {
        ReactMount.unmountComponentAtNode(container);
      }
    }

    var reactRootElement = getReactRootElementInContainer(container);
    var containerHasReactMarkup =
      reactRootElement && ReactMount.isRenderedByReact(reactRootElement);

    if ("production" !== process.env.NODE_ENV) {
      if (!containerHasReactMarkup || reactRootElement.nextSibling) {
        var rootElementSibling = reactRootElement;
        while (rootElementSibling) {
          if (ReactMount.isRenderedByReact(rootElementSibling)) {
            ("production" !== process.env.NODE_ENV ? warning(
              false,
              'render(): Target node has markup rendered by React, but there ' +
              'are unrelated nodes as well. This is most commonly caused by ' +
              'white-space inserted around server-rendered markup.'
            ) : null);
            break;
          }

          rootElementSibling = rootElementSibling.nextSibling;
        }
      }
    }

    var shouldReuseMarkup = containerHasReactMarkup && !prevComponent;

    var component = ReactMount._renderNewRootComponent(
      nextElement,
      container,
      shouldReuseMarkup
    ).getPublicInstance();
    if (callback) {
      callback.call(component);
    }
    return component;
  },

  /**
   * Constructs a component instance of `constructor` with `initialProps` and
   * renders it into the supplied `container`.
   *
   * @param {function} constructor React component constructor.
   * @param {?object} props Initial props of the component instance.
   * @param {DOMElement} container DOM element to render into.
   * @return {ReactComponent} Component instance rendered in `container`.
   */
  constructAndRenderComponent: function(constructor, props, container) {
    var element = ReactElement.createElement(constructor, props);
    return ReactMount.render(element, container);
  },

  /**
   * Constructs a component instance of `constructor` with `initialProps` and
   * renders it into a container node identified by supplied `id`.
   *
   * @param {function} componentConstructor React component constructor
   * @param {?object} props Initial props of the component instance.
   * @param {string} id ID of the DOM element to render into.
   * @return {ReactComponent} Component instance rendered in the container node.
   */
  constructAndRenderComponentByID: function(constructor, props, id) {
    var domNode = document.getElementById(id);
    ("production" !== process.env.NODE_ENV ? invariant(
      domNode,
      'Tried to get element with id of "%s" but it is not present on the page.',
      id
    ) : invariant(domNode));
    return ReactMount.constructAndRenderComponent(constructor, props, domNode);
  },

  /**
   * Registers a container node into which React components will be rendered.
   * This also creates the "reactRoot" ID that will be assigned to the element
   * rendered within.
   *
   * @param {DOMElement} container DOM element to register as a container.
   * @return {string} The "reactRoot" ID of elements rendered within.
   */
  registerContainer: function(container) {
    var reactRootID = getReactRootID(container);
    if (reactRootID) {
      // If one exists, make sure it is a valid "reactRoot" ID.
      reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(reactRootID);
    }
    if (!reactRootID) {
      // No valid "reactRoot" ID found, create one.
      reactRootID = ReactInstanceHandles.createReactRootID();
    }
    containersByReactRootID[reactRootID] = container;
    return reactRootID;
  },

  /**
   * Unmounts and destroys the React component rendered in the `container`.
   *
   * @param {DOMElement} container DOM element containing a React component.
   * @return {boolean} True if a component was found in and unmounted from
   *                   `container`
   */
  unmountComponentAtNode: function(container) {
    // Various parts of our code (such as ReactCompositeComponent's
    // _renderValidatedComponent) assume that calls to render aren't nested;
    // verify that that's the case. (Strictly speaking, unmounting won't cause a
    // render but we still don't expect to be in a render call here.)
    ("production" !== process.env.NODE_ENV ? warning(
      ReactCurrentOwner.current == null,
      'unmountComponentAtNode(): Render methods should be a pure function of ' +
      'props and state; triggering nested component updates from render is ' +
      'not allowed. If necessary, trigger nested updates in ' +
      'componentDidUpdate.'
    ) : null);

    ("production" !== process.env.NODE_ENV ? invariant(
      container && (
        (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE)
      ),
      'unmountComponentAtNode(...): Target container is not a DOM element.'
    ) : invariant(container && (
      (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE)
    )));

    var reactRootID = getReactRootID(container);
    var component = instancesByReactRootID[reactRootID];
    if (!component) {
      return false;
    }
    ReactMount.unmountComponentFromNode(component, container);
    delete instancesByReactRootID[reactRootID];
    delete containersByReactRootID[reactRootID];
    if ("production" !== process.env.NODE_ENV) {
      delete rootElementsByReactRootID[reactRootID];
    }
    return true;
  },

  /**
   * Unmounts a component and removes it from the DOM.
   *
   * @param {ReactComponent} instance React component instance.
   * @param {DOMElement} container DOM element to unmount from.
   * @final
   * @internal
   * @see {ReactMount.unmountComponentAtNode}
   */
  unmountComponentFromNode: function(instance, container) {
    ReactReconciler.unmountComponent(instance);

    if (container.nodeType === DOC_NODE_TYPE) {
      container = container.documentElement;
    }

    // http://jsperf.com/emptying-a-node
    while (container.lastChild) {
      container.removeChild(container.lastChild);
    }
  },

  /**
   * Finds the container DOM element that contains React component to which the
   * supplied DOM `id` belongs.
   *
   * @param {string} id The ID of an element rendered by a React component.
   * @return {?DOMElement} DOM element that contains the `id`.
   */
  findReactContainerForID: function(id) {
    var reactRootID = ReactInstanceHandles.getReactRootIDFromNodeID(id);
    var container = containersByReactRootID[reactRootID];

    if ("production" !== process.env.NODE_ENV) {
      var rootElement = rootElementsByReactRootID[reactRootID];
      if (rootElement && rootElement.parentNode !== container) {
        ("production" !== process.env.NODE_ENV ? invariant(
          // Call internalGetID here because getID calls isValid which calls
          // findReactContainerForID (this function).
          internalGetID(rootElement) === reactRootID,
          'ReactMount: Root element ID differed from reactRootID.'
        ) : invariant(// Call internalGetID here because getID calls isValid which calls
        // findReactContainerForID (this function).
        internalGetID(rootElement) === reactRootID));

        var containerChild = container.firstChild;
        if (containerChild &&
            reactRootID === internalGetID(containerChild)) {
          // If the container has a new child with the same ID as the old
          // root element, then rootElementsByReactRootID[reactRootID] is
          // just stale and needs to be updated. The case that deserves a
          // warning is when the container is empty.
          rootElementsByReactRootID[reactRootID] = containerChild;
        } else {
          ("production" !== process.env.NODE_ENV ? warning(
            false,
            'ReactMount: Root element has been removed from its original ' +
            'container. New container:', rootElement.parentNode
          ) : null);
        }
      }
    }

    return container;
  },

  /**
   * Finds an element rendered by React with the supplied ID.
   *
   * @param {string} id ID of a DOM node in the React component.
   * @return {DOMElement} Root DOM node of the React component.
   */
  findReactNodeByID: function(id) {
    var reactRoot = ReactMount.findReactContainerForID(id);
    return ReactMount.findComponentRoot(reactRoot, id);
  },

  /**
   * True if the supplied `node` is rendered by React.
   *
   * @param {*} node DOM Element to check.
   * @return {boolean} True if the DOM Element appears to be rendered by React.
   * @internal
   */
  isRenderedByReact: function(node) {
    if (node.nodeType !== 1) {
      // Not a DOMElement, therefore not a React component
      return false;
    }
    var id = ReactMount.getID(node);
    return id ? id.charAt(0) === SEPARATOR : false;
  },

  /**
   * Traverses up the ancestors of the supplied node to find a node that is a
   * DOM representation of a React component.
   *
   * @param {*} node
   * @return {?DOMEventTarget}
   * @internal
   */
  getFirstReactDOM: function(node) {
    var current = node;
    while (current && current.parentNode !== current) {
      if (ReactMount.isRenderedByReact(current)) {
        return current;
      }
      current = current.parentNode;
    }
    return null;
  },

  /**
   * Finds a node with the supplied `targetID` inside of the supplied
   * `ancestorNode`.  Exploits the ID naming scheme to perform the search
   * quickly.
   *
   * @param {DOMEventTarget} ancestorNode Search from this root.
   * @pararm {string} targetID ID of the DOM representation of the component.
   * @return {DOMEventTarget} DOM node with the supplied `targetID`.
   * @internal
   */
  findComponentRoot: function(ancestorNode, targetID) {
    var firstChildren = findComponentRootReusableArray;
    var childIndex = 0;

    var deepestAncestor = findDeepestCachedAncestor(targetID) || ancestorNode;

    firstChildren[0] = deepestAncestor.firstChild;
    firstChildren.length = 1;

    while (childIndex < firstChildren.length) {
      var child = firstChildren[childIndex++];
      var targetChild;

      while (child) {
        var childID = ReactMount.getID(child);
        if (childID) {
          // Even if we find the node we're looking for, we finish looping
          // through its siblings to ensure they're cached so that we don't have
          // to revisit this node again. Otherwise, we make n^2 calls to getID
          // when visiting the many children of a single node in order.

          if (targetID === childID) {
            targetChild = child;
          } else if (ReactInstanceHandles.isAncestorIDOf(childID, targetID)) {
            // If we find a child whose ID is an ancestor of the given ID,
            // then we can be sure that we only want to search the subtree
            // rooted at this child, so we can throw out the rest of the
            // search state.
            firstChildren.length = childIndex = 0;
            firstChildren.push(child.firstChild);
          }

        } else {
          // If this child had no ID, then there's a chance that it was
          // injected automatically by the browser, as when a `<table>`
          // element sprouts an extra `<tbody>` child as a side effect of
          // `.innerHTML` parsing. Optimistically continue down this
          // branch, but not before examining the other siblings.
          firstChildren.push(child.firstChild);
        }

        child = child.nextSibling;
      }

      if (targetChild) {
        // Emptying firstChildren/findComponentRootReusableArray is
        // not necessary for correctness, but it helps the GC reclaim
        // any nodes that were left at the end of the search.
        firstChildren.length = 0;

        return targetChild;
      }
    }

    firstChildren.length = 0;

    ("production" !== process.env.NODE_ENV ? invariant(
      false,
      'findComponentRoot(..., %s): Unable to find element. This probably ' +
      'means the DOM was unexpectedly mutated (e.g., by the browser), ' +
      'usually due to forgetting a <tbody> when using tables, nesting tags ' +
      'like <form>, <p>, or <a>, or using non-SVG elements in an <svg> ' +
      'parent. ' +
      'Try inspecting the child nodes of the element with React ID `%s`.',
      targetID,
      ReactMount.getID(ancestorNode)
    ) : invariant(false));
  },

  _mountImageIntoNode: function(markup, container, shouldReuseMarkup) {
    ("production" !== process.env.NODE_ENV ? invariant(
      container && (
        (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE)
      ),
      'mountComponentIntoNode(...): Target container is not valid.'
    ) : invariant(container && (
      (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE)
    )));

    if (shouldReuseMarkup) {
      var rootElement = getReactRootElementInContainer(container);
      if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) {
        return;
      } else {
        var checksum = rootElement.getAttribute(
          ReactMarkupChecksum.CHECKSUM_ATTR_NAME
        );
        rootElement.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);

        var rootMarkup = rootElement.outerHTML;
        rootElement.setAttribute(
          ReactMarkupChecksum.CHECKSUM_ATTR_NAME,
          checksum
        );

        var diffIndex = firstDifferenceIndex(markup, rootMarkup);
        var difference = ' (client) ' +
          markup.substring(diffIndex - 20, diffIndex + 20) +
          '\n (server) ' + rootMarkup.substring(diffIndex - 20, diffIndex + 20);

        ("production" !== process.env.NODE_ENV ? invariant(
          container.nodeType !== DOC_NODE_TYPE,
          'You\'re trying to render a component to the document using ' +
          'server rendering but the checksum was invalid. This usually ' +
          'means you rendered a different component type or props on ' +
          'the client from the one on the server, or your render() ' +
          'methods are impure. React cannot handle this case due to ' +
          'cross-browser quirks by rendering at the document root. You ' +
          'should look for environment dependent code in your components ' +
          'and ensure the props are the same client and server side:\n%s',
          difference
        ) : invariant(container.nodeType !== DOC_NODE_TYPE));

        if ("production" !== process.env.NODE_ENV) {
          ("production" !== process.env.NODE_ENV ? warning(
            false,
            'React attempted to reuse markup in a container but the ' +
            'checksum was invalid. This generally means that you are ' +
            'using server rendering and the markup generated on the ' +
            'server was not what the client was expecting. React injected ' +
            'new markup to compensate which works but you have lost many ' +
            'of the benefits of server rendering. Instead, figure out ' +
            'why the markup being generated is different on the client ' +
            'or server:\n%s',
            difference
          ) : null);
        }
      }
    }

    ("production" !== process.env.NODE_ENV ? invariant(
      container.nodeType !== DOC_NODE_TYPE,
      'You\'re trying to render a component to the document but ' +
        'you didn\'t use server rendering. We can\'t do this ' +
        'without using server rendering due to cross-browser quirks. ' +
        'See React.renderToString() for server rendering.'
    ) : invariant(container.nodeType !== DOC_NODE_TYPE));

    setInnerHTML(container, markup);
  },

  /**
   * React ID utilities.
   */

  getReactRootID: getReactRootID,

  getID: getID,

  setID: setID,

  getNode: getNode,

  getNodeFromInstance: getNodeFromInstance,

  purgeID: purgeID
};

ReactPerf.measureMethods(ReactMount, 'ReactMount', {
  _renderNewRootComponent: '_renderNewRootComponent',
  _mountImageIntoNode: '_mountImageIntoNode'
});

module.exports = ReactMount;

}).call(this,require("1YiZ5S"))
},{"./DOMProperty":22,"./ReactBrowserEventEmitter":44,"./ReactCurrentOwner":56,"./ReactElement":74,"./ReactElementValidator":75,"./ReactEmptyComponent":76,"./ReactInstanceHandles":83,"./ReactInstanceMap":84,"./ReactMarkupChecksum":87,"./ReactPerf":93,"./ReactReconciler":100,"./ReactUpdateQueue":110,"./ReactUpdates":111,"./containsNode":135,"./emptyObject":142,"./getReactRootElementInContainer":156,"./instantiateReactComponent":161,"./invariant":162,"./setInnerHTML":176,"./shouldUpdateReactComponent":179,"./warning":183,"1YiZ5S":5}],89:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactMultiChild
 * @typechecks static-only
 */

'use strict';

var ReactComponentEnvironment = require("./ReactComponentEnvironment");
var ReactMultiChildUpdateTypes = require("./ReactMultiChildUpdateTypes");

var ReactReconciler = require("./ReactReconciler");
var ReactChildReconciler = require("./ReactChildReconciler");

/**
 * Updating children of a component may trigger recursive updates. The depth is
 * used to batch recursive updates to render markup more efficiently.
 *
 * @type {number}
 * @private
 */
var updateDepth = 0;

/**
 * Queue of update configuration objects.
 *
 * Each object has a `type` property that is in `ReactMultiChildUpdateTypes`.
 *
 * @type {array<object>}
 * @private
 */
var updateQueue = [];

/**
 * Queue of markup to be rendered.
 *
 * @type {array<string>}
 * @private
 */
var markupQueue = [];

/**
 * Enqueues markup to be rendered and inserted at a supplied index.
 *
 * @param {string} parentID ID of the parent component.
 * @param {string} markup Markup that renders into an element.
 * @param {number} toIndex Destination index.
 * @private
 */
function enqueueMarkup(parentID, markup, toIndex) {
  // NOTE: Null values reduce hidden classes.
  updateQueue.push({
    parentID: parentID,
    parentNode: null,
    type: ReactMultiChildUpdateTypes.INSERT_MARKUP,
    markupIndex: markupQueue.push(markup) - 1,
    textContent: null,
    fromIndex: null,
    toIndex: toIndex
  });
}

/**
 * Enqueues moving an existing element to another index.
 *
 * @param {string} parentID ID of the parent component.
 * @param {number} fromIndex Source index of the existing element.
 * @param {number} toIndex Destination index of the element.
 * @private
 */
function enqueueMove(parentID, fromIndex, toIndex) {
  // NOTE: Null values reduce hidden classes.
  updateQueue.push({
    parentID: parentID,
    parentNode: null,
    type: ReactMultiChildUpdateTypes.MOVE_EXISTING,
    markupIndex: null,
    textContent: null,
    fromIndex: fromIndex,
    toIndex: toIndex
  });
}

/**
 * Enqueues removing an element at an index.
 *
 * @param {string} parentID ID of the parent component.
 * @param {number} fromIndex Index of the element to remove.
 * @private
 */
function enqueueRemove(parentID, fromIndex) {
  // NOTE: Null values reduce hidden classes.
  updateQueue.push({
    parentID: parentID,
    parentNode: null,
    type: ReactMultiChildUpdateTypes.REMOVE_NODE,
    markupIndex: null,
    textContent: null,
    fromIndex: fromIndex,
    toIndex: null
  });
}

/**
 * Enqueues setting the text content.
 *
 * @param {string} parentID ID of the parent component.
 * @param {string} textContent Text content to set.
 * @private
 */
function enqueueTextContent(parentID, textContent) {
  // NOTE: Null values reduce hidden classes.
  updateQueue.push({
    parentID: parentID,
    parentNode: null,
    type: ReactMultiChildUpdateTypes.TEXT_CONTENT,
    markupIndex: null,
    textContent: textContent,
    fromIndex: null,
    toIndex: null
  });
}

/**
 * Processes any enqueued updates.
 *
 * @private
 */
function processQueue() {
  if (updateQueue.length) {
    ReactComponentEnvironment.processChildrenUpdates(
      updateQueue,
      markupQueue
    );
    clearQueue();
  }
}

/**
 * Clears any enqueued updates.
 *
 * @private
 */
function clearQueue() {
  updateQueue.length = 0;
  markupQueue.length = 0;
}

/**
 * ReactMultiChild are capable of reconciling multiple children.
 *
 * @class ReactMultiChild
 * @internal
 */
var ReactMultiChild = {

  /**
   * Provides common functionality for components that must reconcile multiple
   * children. This is used by `ReactDOMComponent` to mount, update, and
   * unmount child components.
   *
   * @lends {ReactMultiChild.prototype}
   */
  Mixin: {

    /**
     * Generates a "mount image" for each of the supplied children. In the case
     * of `ReactDOMComponent`, a mount image is a string of markup.
     *
     * @param {?object} nestedChildren Nested child maps.
     * @return {array} An array of mounted representations.
     * @internal
     */
    mountChildren: function(nestedChildren, transaction, context) {
      var children = ReactChildReconciler.instantiateChildren(
        nestedChildren, transaction, context
      );
      this._renderedChildren = children;
      var mountImages = [];
      var index = 0;
      for (var name in children) {
        if (children.hasOwnProperty(name)) {
          var child = children[name];
          // Inlined for performance, see `ReactInstanceHandles.createReactID`.
          var rootID = this._rootNodeID + name;
          var mountImage = ReactReconciler.mountComponent(
            child,
            rootID,
            transaction,
            context
          );
          child._mountIndex = index;
          mountImages.push(mountImage);
          index++;
        }
      }
      return mountImages;
    },

    /**
     * Replaces any rendered children with a text content string.
     *
     * @param {string} nextContent String of content.
     * @internal
     */
    updateTextContent: function(nextContent) {
      updateDepth++;
      var errorThrown = true;
      try {
        var prevChildren = this._renderedChildren;
        // Remove any rendered children.
        ReactChildReconciler.unmountChildren(prevChildren);
        // TODO: The setTextContent operation should be enough
        for (var name in prevChildren) {
          if (prevChildren.hasOwnProperty(name)) {
            this._unmountChildByName(prevChildren[name], name);
          }
        }
        // Set new text content.
        this.setTextContent(nextContent);
        errorThrown = false;
      } finally {
        updateDepth--;
        if (!updateDepth) {
          if (errorThrown) {
            clearQueue();
          } else {
            processQueue();
          }
        }
      }
    },

    /**
     * Updates the rendered children with new children.
     *
     * @param {?object} nextNestedChildren Nested child maps.
     * @param {ReactReconcileTransaction} transaction
     * @internal
     */
    updateChildren: function(nextNestedChildren, transaction, context) {
      updateDepth++;
      var errorThrown = true;
      try {
        this._updateChildren(nextNestedChildren, transaction, context);
        errorThrown = false;
      } finally {
        updateDepth--;
        if (!updateDepth) {
          if (errorThrown) {
            clearQueue();
          } else {
            processQueue();
          }
        }

      }
    },

    /**
     * Improve performance by isolating this hot code path from the try/catch
     * block in `updateChildren`.
     *
     * @param {?object} nextNestedChildren Nested child maps.
     * @param {ReactReconcileTransaction} transaction
     * @final
     * @protected
     */
    _updateChildren: function(nextNestedChildren, transaction, context) {
      var prevChildren = this._renderedChildren;
      var nextChildren = ReactChildReconciler.updateChildren(
        prevChildren, nextNestedChildren, transaction, context
      );
      this._renderedChildren = nextChildren;
      if (!nextChildren && !prevChildren) {
        return;
      }
      var name;
      // `nextIndex` will increment for each child in `nextChildren`, but
      // `lastIndex` will be the last index visited in `prevChildren`.
      var lastIndex = 0;
      var nextIndex = 0;
      for (name in nextChildren) {
        if (!nextChildren.hasOwnProperty(name)) {
          continue;
        }
        var prevChild = prevChildren && prevChildren[name];
        var nextChild = nextChildren[name];
        if (prevChild === nextChild) {
          this.moveChild(prevChild, nextIndex, lastIndex);
          lastIndex = Math.max(prevChild._mountIndex, lastIndex);
          prevChild._mountIndex = nextIndex;
        } else {
          if (prevChild) {
            // Update `lastIndex` before `_mountIndex` gets unset by unmounting.
            lastIndex = Math.max(prevChild._mountIndex, lastIndex);
            this._unmountChildByName(prevChild, name);
          }
          // The child must be instantiated before it's mounted.
          this._mountChildByNameAtIndex(
            nextChild, name, nextIndex, transaction, context
          );
        }
        nextIndex++;
      }
      // Remove children that are no longer present.
      for (name in prevChildren) {
        if (prevChildren.hasOwnProperty(name) &&
            !(nextChildren && nextChildren.hasOwnProperty(name))) {
          this._unmountChildByName(prevChildren[name], name);
        }
      }
    },

    /**
     * Unmounts all rendered children. This should be used to clean up children
     * when this component is unmounted.
     *
     * @internal
     */
    unmountChildren: function() {
      var renderedChildren = this._renderedChildren;
      ReactChildReconciler.unmountChildren(renderedChildren);
      this._renderedChildren = null;
    },

    /**
     * Moves a child component to the supplied index.
     *
     * @param {ReactComponent} child Component to move.
     * @param {number} toIndex Destination index of the element.
     * @param {number} lastIndex Last index visited of the siblings of `child`.
     * @protected
     */
    moveChild: function(child, toIndex, lastIndex) {
      // If the index of `child` is less than `lastIndex`, then it needs to
      // be moved. Otherwise, we do not need to move it because a child will be
      // inserted or moved before `child`.
      if (child._mountIndex < lastIndex) {
        enqueueMove(this._rootNodeID, child._mountIndex, toIndex);
      }
    },

    /**
     * Creates a child component.
     *
     * @param {ReactComponent} child Component to create.
     * @param {string} mountImage Markup to insert.
     * @protected
     */
    createChild: function(child, mountImage) {
      enqueueMarkup(this._rootNodeID, mountImage, child._mountIndex);
    },

    /**
     * Removes a child component.
     *
     * @param {ReactComponent} child Child to remove.
     * @protected
     */
    removeChild: function(child) {
      enqueueRemove(this._rootNodeID, child._mountIndex);
    },

    /**
     * Sets this text content string.
     *
     * @param {string} textContent Text content to set.
     * @protected
     */
    setTextContent: function(textContent) {
      enqueueTextContent(this._rootNodeID, textContent);
    },

    /**
     * Mounts a child with the supplied name.
     *
     * NOTE: This is part of `updateChildren` and is here for readability.
     *
     * @param {ReactComponent} child Component to mount.
     * @param {string} name Name of the child.
     * @param {number} index Index at which to insert the child.
     * @param {ReactReconcileTransaction} transaction
     * @private
     */
    _mountChildByNameAtIndex: function(
      child,
      name,
      index,
      transaction,
      context) {
      // Inlined for performance, see `ReactInstanceHandles.createReactID`.
      var rootID = this._rootNodeID + name;
      var mountImage = ReactReconciler.mountComponent(
        child,
        rootID,
        transaction,
        context
      );
      child._mountIndex = index;
      this.createChild(child, mountImage);
    },

    /**
     * Unmounts a rendered child by name.
     *
     * NOTE: This is part of `updateChildren` and is here for readability.
     *
     * @param {ReactComponent} child Component to unmount.
     * @param {string} name Name of the child in `this._renderedChildren`.
     * @private
     */
    _unmountChildByName: function(child, name) {
      this.removeChild(child);
      child._mountIndex = null;
    }

  }

};

module.exports = ReactMultiChild;

},{"./ReactChildReconciler":47,"./ReactComponentEnvironment":52,"./ReactMultiChildUpdateTypes":90,"./ReactReconciler":100}],90:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactMultiChildUpdateTypes
 */

'use strict';

var keyMirror = require("./keyMirror");

/**
 * When a component's children are updated, a series of update configuration
 * objects are created in order to batch and serialize the required changes.
 *
 * Enumerates all the possible types of update configurations.
 *
 * @internal
 */
var ReactMultiChildUpdateTypes = keyMirror({
  INSERT_MARKUP: null,
  MOVE_EXISTING: null,
  REMOVE_NODE: null,
  TEXT_CONTENT: null
});

module.exports = ReactMultiChildUpdateTypes;

},{"./keyMirror":168}],91:[function(require,module,exports){
(function (process){
/**
 * Copyright 2014-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactNativeComponent
 */

'use strict';

var assign = require("./Object.assign");
var invariant = require("./invariant");

var autoGenerateWrapperClass = null;
var genericComponentClass = null;
// This registry keeps track of wrapper classes around native tags
var tagToComponentClass = {};
var textComponentClass = null;

var ReactNativeComponentInjection = {
  // This accepts a class that receives the tag string. This is a catch all
  // that can render any kind of tag.
  injectGenericComponentClass: function(componentClass) {
    genericComponentClass = componentClass;
  },
  // This accepts a text component class that takes the text string to be
  // rendered as props.
  injectTextComponentClass: function(componentClass) {
    textComponentClass = componentClass;
  },
  // This accepts a keyed object with classes as values. Each key represents a
  // tag. That particular tag will use this class instead of the generic one.
  injectComponentClasses: function(componentClasses) {
    assign(tagToComponentClass, componentClasses);
  },
  // Temporary hack since we expect DOM refs to behave like composites,
  // for this release.
  injectAutoWrapper: function(wrapperFactory) {
    autoGenerateWrapperClass = wrapperFactory;
  }
};

/**
 * Get a composite component wrapper class for a specific tag.
 *
 * @param {ReactElement} element The tag for which to get the class.
 * @return {function} The React class constructor function.
 */
function getComponentClassForElement(element) {
  if (typeof element.type === 'function') {
    return element.type;
  }
  var tag = element.type;
  var componentClass = tagToComponentClass[tag];
  if (componentClass == null) {
    tagToComponentClass[tag] = componentClass = autoGenerateWrapperClass(tag);
  }
  return componentClass;
}

/**
 * Get a native internal component class for a specific tag.
 *
 * @param {ReactElement} element The element to create.
 * @return {function} The internal class constructor function.
 */
function createInternalComponent(element) {
  ("production" !== process.env.NODE_ENV ? invariant(
    genericComponentClass,
    'There is no registered component for the tag %s',
    element.type
  ) : invariant(genericComponentClass));
  return new genericComponentClass(element.type, element.props);
}

/**
 * @param {ReactText} text
 * @return {ReactComponent}
 */
function createInstanceForText(text) {
  return new textComponentClass(text);
}

/**
 * @param {ReactComponent} component
 * @return {boolean}
 */
function isTextComponent(component) {
  return component instanceof textComponentClass;
}

var ReactNativeComponent = {
  getComponentClassForElement: getComponentClassForElement,
  createInternalComponent: createInternalComponent,
  createInstanceForText: createInstanceForText,
  isTextComponent: isTextComponent,
  injection: ReactNativeComponentInjection
};

module.exports = ReactNativeComponent;

}).call(this,require("1YiZ5S"))
},{"./Object.assign":40,"./invariant":162,"1YiZ5S":5}],92:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactOwner
 */

'use strict';

var invariant = require("./invariant");

/**
 * ReactOwners are capable of storing references to owned components.
 *
 * All components are capable of //being// referenced by owner components, but
 * only ReactOwner components are capable of //referencing// owned components.
 * The named reference is known as a "ref".
 *
 * Refs are available when mounted and updated during reconciliation.
 *
 *   var MyComponent = React.createClass({
 *     render: function() {
 *       return (
 *         <div onClick={this.handleClick}>
 *           <CustomComponent ref="custom" />
 *         </div>
 *       );
 *     },
 *     handleClick: function() {
 *       this.refs.custom.handleClick();
 *     },
 *     componentDidMount: function() {
 *       this.refs.custom.initialize();
 *     }
 *   });
 *
 * Refs should rarely be used. When refs are used, they should only be done to
 * control data that is not handled by React's data flow.
 *
 * @class ReactOwner
 */
var ReactOwner = {

  /**
   * @param {?object} object
   * @return {boolean} True if `object` is a valid owner.
   * @final
   */
  isValidOwner: function(object) {
    return !!(
      (object &&
      typeof object.attachRef === 'function' && typeof object.detachRef === 'function')
    );
  },

  /**
   * Adds a component by ref to an owner component.
   *
   * @param {ReactComponent} component Component to reference.
   * @param {string} ref Name by which to refer to the component.
   * @param {ReactOwner} owner Component on which to record the ref.
   * @final
   * @internal
   */
  addComponentAsRefTo: function(component, ref, owner) {
    ("production" !== process.env.NODE_ENV ? invariant(
      ReactOwner.isValidOwner(owner),
      'addComponentAsRefTo(...): Only a ReactOwner can have refs. This ' +
      'usually means that you\'re trying to add a ref to a component that ' +
      'doesn\'t have an owner (that is, was not created inside of another ' +
      'component\'s `render` method). Try rendering this component inside of ' +
      'a new top-level component which will hold the ref.'
    ) : invariant(ReactOwner.isValidOwner(owner)));
    owner.attachRef(ref, component);
  },

  /**
   * Removes a component by ref from an owner component.
   *
   * @param {ReactComponent} component Component to dereference.
   * @param {string} ref Name of the ref to remove.
   * @param {ReactOwner} owner Component on which the ref is recorded.
   * @final
   * @internal
   */
  removeComponentAsRefFrom: function(component, ref, owner) {
    ("production" !== process.env.NODE_ENV ? invariant(
      ReactOwner.isValidOwner(owner),
      'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. This ' +
      'usually means that you\'re trying to remove a ref to a component that ' +
      'doesn\'t have an owner (that is, was not created inside of another ' +
      'component\'s `render` method). Try rendering this component inside of ' +
      'a new top-level component which will hold the ref.'
    ) : invariant(ReactOwner.isValidOwner(owner)));
    // Check that `component` is still the current ref because we do not want to
    // detach the ref if another component stole it.
    if (owner.getPublicInstance().refs[ref] === component.getPublicInstance()) {
      owner.detachRef(ref);
    }
  }

};

module.exports = ReactOwner;

}).call(this,require("1YiZ5S"))
},{"./invariant":162,"1YiZ5S":5}],93:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactPerf
 * @typechecks static-only
 */

'use strict';

/**
 * ReactPerf is a general AOP system designed to measure performance. This
 * module only has the hooks: see ReactDefaultPerf for the analysis tool.
 */
var ReactPerf = {
  /**
   * Boolean to enable/disable measurement. Set to false by default to prevent
   * accidental logging and perf loss.
   */
  enableMeasure: false,

  /**
   * Holds onto the measure function in use. By default, don't measure
   * anything, but we'll override this if we inject a measure function.
   */
  storedMeasure: _noMeasure,

  /**
   * @param {object} object
   * @param {string} objectName
   * @param {object<string>} methodNames
   */
  measureMethods: function(object, objectName, methodNames) {
    if ("production" !== process.env.NODE_ENV) {
      for (var key in methodNames) {
        if (!methodNames.hasOwnProperty(key)) {
          continue;
        }
        object[key] = ReactPerf.measure(
          objectName,
          methodNames[key],
          object[key]
        );
      }
    }
  },

  /**
   * Use this to wrap methods you want to measure. Zero overhead in production.
   *
   * @param {string} objName
   * @param {string} fnName
   * @param {function} func
   * @return {function}
   */
  measure: function(objName, fnName, func) {
    if ("production" !== process.env.NODE_ENV) {
      var measuredFunc = null;
      var wrapper = function() {
        if (ReactPerf.enableMeasure) {
          if (!measuredFunc) {
            measuredFunc = ReactPerf.storedMeasure(objName, fnName, func);
          }
          return measuredFunc.apply(this, arguments);
        }
        return func.apply(this, arguments);
      };
      wrapper.displayName = objName + '_' + fnName;
      return wrapper;
    }
    return func;
  },

  injection: {
    /**
     * @param {function} measure
     */
    injectMeasure: function(measure) {
      ReactPerf.storedMeasure = measure;
    }
  }
};

/**
 * Simply passes through the measured function, without measuring it.
 *
 * @param {string} objName
 * @param {string} fnName
 * @param {function} func
 * @return {function}
 */
function _noMeasure(objName, fnName, func) {
  return func;
}

module.exports = ReactPerf;

}).call(this,require("1YiZ5S"))
},{"1YiZ5S":5}],94:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactPropTransferer
 */

'use strict';

var assign = require("./Object.assign");
var emptyFunction = require("./emptyFunction");
var joinClasses = require("./joinClasses");

/**
 * Creates a transfer strategy that will merge prop values using the supplied
 * `mergeStrategy`. If a prop was previously unset, this just sets it.
 *
 * @param {function} mergeStrategy
 * @return {function}
 */
function createTransferStrategy(mergeStrategy) {
  return function(props, key, value) {
    if (!props.hasOwnProperty(key)) {
      props[key] = value;
    } else {
      props[key] = mergeStrategy(props[key], value);
    }
  };
}

var transferStrategyMerge = createTransferStrategy(function(a, b) {
  // `merge` overrides the first object's (`props[key]` above) keys using the
  // second object's (`value`) keys. An object's style's existing `propA` would
  // get overridden. Flip the order here.
  return assign({}, b, a);
});

/**
 * Transfer strategies dictate how props are transferred by `transferPropsTo`.
 * NOTE: if you add any more exceptions to this list you should be sure to
 * update `cloneWithProps()` accordingly.
 */
var TransferStrategies = {
  /**
   * Never transfer `children`.
   */
  children: emptyFunction,
  /**
   * Transfer the `className` prop by merging them.
   */
  className: createTransferStrategy(joinClasses),
  /**
   * Transfer the `style` prop (which is an object) by merging them.
   */
  style: transferStrategyMerge
};

/**
 * Mutates the first argument by transferring the properties from the second
 * argument.
 *
 * @param {object} props
 * @param {object} newProps
 * @return {object}
 */
function transferInto(props, newProps) {
  for (var thisKey in newProps) {
    if (!newProps.hasOwnProperty(thisKey)) {
      continue;
    }

    var transferStrategy = TransferStrategies[thisKey];

    if (transferStrategy && TransferStrategies.hasOwnProperty(thisKey)) {
      transferStrategy(props, thisKey, newProps[thisKey]);
    } else if (!props.hasOwnProperty(thisKey)) {
      props[thisKey] = newProps[thisKey];
    }
  }
  return props;
}

/**
 * ReactPropTransferer are capable of transferring props to another component
 * using a `transferPropsTo` method.
 *
 * @class ReactPropTransferer
 */
var ReactPropTransferer = {

  /**
   * Merge two props objects using TransferStrategies.
   *
   * @param {object} oldProps original props (they take precedence)
   * @param {object} newProps new props to merge in
   * @return {object} a new object containing both sets of props merged.
   */
  mergeProps: function(oldProps, newProps) {
    return transferInto(assign({}, oldProps), newProps);
  }

};

module.exports = ReactPropTransferer;

},{"./Object.assign":40,"./emptyFunction":141,"./joinClasses":167}],95:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactPropTypeLocationNames
 */

'use strict';

var ReactPropTypeLocationNames = {};

if ("production" !== process.env.NODE_ENV) {
  ReactPropTypeLocationNames = {
    prop: 'prop',
    context: 'context',
    childContext: 'child context'
  };
}

module.exports = ReactPropTypeLocationNames;

}).call(this,require("1YiZ5S"))
},{"1YiZ5S":5}],96:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactPropTypeLocations
 */

'use strict';

var keyMirror = require("./keyMirror");

var ReactPropTypeLocations = keyMirror({
  prop: null,
  context: null,
  childContext: null
});

module.exports = ReactPropTypeLocations;

},{"./keyMirror":168}],97:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactPropTypes
 */

'use strict';

var ReactElement = require("./ReactElement");
var ReactFragment = require("./ReactFragment");
var ReactPropTypeLocationNames = require("./ReactPropTypeLocationNames");

var emptyFunction = require("./emptyFunction");

/**
 * Collection of methods that allow declaration and validation of props that are
 * supplied to React components. Example usage:
 *
 *   var Props = require('ReactPropTypes');
 *   var MyArticle = React.createClass({
 *     propTypes: {
 *       // An optional string prop named "description".
 *       description: Props.string,
 *
 *       // A required enum prop named "category".
 *       category: Props.oneOf(['News','Photos']).isRequired,
 *
 *       // A prop named "dialog" that requires an instance of Dialog.
 *       dialog: Props.instanceOf(Dialog).isRequired
 *     },
 *     render: function() { ... }
 *   });
 *
 * A more formal specification of how these methods are used:
 *
 *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
 *   decl := ReactPropTypes.{type}(.isRequired)?
 *
 * Each and every declaration produces a function with the same signature. This
 * allows the creation of custom validation functions. For example:
 *
 *  var MyLink = React.createClass({
 *    propTypes: {
 *      // An optional string or URI prop named "href".
 *      href: function(props, propName, componentName) {
 *        var propValue = props[propName];
 *        if (propValue != null && typeof propValue !== 'string' &&
 *            !(propValue instanceof URI)) {
 *          return new Error(
 *            'Expected a string or an URI for ' + propName + ' in ' +
 *            componentName
 *          );
 *        }
 *      }
 *    },
 *    render: function() {...}
 *  });
 *
 * @internal
 */

var ANONYMOUS = '<<anonymous>>';

var elementTypeChecker = createElementTypeChecker();
var nodeTypeChecker = createNodeChecker();

var ReactPropTypes = {
  array: createPrimitiveTypeChecker('array'),
  bool: createPrimitiveTypeChecker('boolean'),
  func: createPrimitiveTypeChecker('function'),
  number: createPrimitiveTypeChecker('number'),
  object: createPrimitiveTypeChecker('object'),
  string: createPrimitiveTypeChecker('string'),

  any: createAnyTypeChecker(),
  arrayOf: createArrayOfTypeChecker,
  element: elementTypeChecker,
  instanceOf: createInstanceTypeChecker,
  node: nodeTypeChecker,
  objectOf: createObjectOfTypeChecker,
  oneOf: createEnumTypeChecker,
  oneOfType: createUnionTypeChecker,
  shape: createShapeTypeChecker
};

function createChainableTypeChecker(validate) {
  function checkType(isRequired, props, propName, componentName, location) {
    componentName = componentName || ANONYMOUS;
    if (props[propName] == null) {
      var locationName = ReactPropTypeLocationNames[location];
      if (isRequired) {
        return new Error(
          ("Required " + locationName + " `" + propName + "` was not specified in ") +
          ("`" + componentName + "`.")
        );
      }
      return null;
    } else {
      return validate(props, propName, componentName, location);
    }
  }

  var chainedCheckType = checkType.bind(null, false);
  chainedCheckType.isRequired = checkType.bind(null, true);

  return chainedCheckType;
}

function createPrimitiveTypeChecker(expectedType) {
  function validate(props, propName, componentName, location) {
    var propValue = props[propName];
    var propType = getPropType(propValue);
    if (propType !== expectedType) {
      var locationName = ReactPropTypeLocationNames[location];
      // `propValue` being instance of, say, date/regexp, pass the 'object'
      // check, but we can offer a more precise error message here rather than
      // 'of type `object`'.
      var preciseType = getPreciseType(propValue);

      return new Error(
        ("Invalid " + locationName + " `" + propName + "` of type `" + preciseType + "` ") +
        ("supplied to `" + componentName + "`, expected `" + expectedType + "`.")
      );
    }
    return null;
  }
  return createChainableTypeChecker(validate);
}

function createAnyTypeChecker() {
  return createChainableTypeChecker(emptyFunction.thatReturns(null));
}

function createArrayOfTypeChecker(typeChecker) {
  function validate(props, propName, componentName, location) {
    var propValue = props[propName];
    if (!Array.isArray(propValue)) {
      var locationName = ReactPropTypeLocationNames[location];
      var propType = getPropType(propValue);
      return new Error(
        ("Invalid " + locationName + " `" + propName + "` of type ") +
        ("`" + propType + "` supplied to `" + componentName + "`, expected an array.")
      );
    }
    for (var i = 0; i < propValue.length; i++) {
      var error = typeChecker(propValue, i, componentName, location);
      if (error instanceof Error) {
        return error;
      }
    }
    return null;
  }
  return createChainableTypeChecker(validate);
}

function createElementTypeChecker() {
  function validate(props, propName, componentName, location) {
    if (!ReactElement.isValidElement(props[propName])) {
      var locationName = ReactPropTypeLocationNames[location];
      return new Error(
        ("Invalid " + locationName + " `" + propName + "` supplied to ") +
        ("`" + componentName + "`, expected a ReactElement.")
      );
    }
    return null;
  }
  return createChainableTypeChecker(validate);
}

function createInstanceTypeChecker(expectedClass) {
  function validate(props, propName, componentName, location) {
    if (!(props[propName] instanceof expectedClass)) {
      var locationName = ReactPropTypeLocationNames[location];
      var expectedClassName = expectedClass.name || ANONYMOUS;
      return new Error(
        ("Invalid " + locationName + " `" + propName + "` supplied to ") +
        ("`" + componentName + "`, expected instance of `" + expectedClassName + "`.")
      );
    }
    return null;
  }
  return createChainableTypeChecker(validate);
}

function createEnumTypeChecker(expectedValues) {
  function validate(props, propName, componentName, location) {
    var propValue = props[propName];
    for (var i = 0; i < expectedValues.length; i++) {
      if (propValue === expectedValues[i]) {
        return null;
      }
    }

    var locationName = ReactPropTypeLocationNames[location];
    var valuesString = JSON.stringify(expectedValues);
    return new Error(
      ("Invalid " + locationName + " `" + propName + "` of value `" + propValue + "` ") +
      ("supplied to `" + componentName + "`, expected one of " + valuesString + ".")
    );
  }
  return createChainableTypeChecker(validate);
}

function createObjectOfTypeChecker(typeChecker) {
  function validate(props, propName, componentName, location) {
    var propValue = props[propName];
    var propType = getPropType(propValue);
    if (propType !== 'object') {
      var locationName = ReactPropTypeLocationNames[location];
      return new Error(
        ("Invalid " + locationName + " `" + propName + "` of type ") +
        ("`" + propType + "` supplied to `" + componentName + "`, expected an object.")
      );
    }
    for (var key in propValue) {
      if (propValue.hasOwnProperty(key)) {
        var error = typeChecker(propValue, key, componentName, location);
        if (error instanceof Error) {
          return error;
        }
      }
    }
    return null;
  }
  return createChainableTypeChecker(validate);
}

function createUnionTypeChecker(arrayOfTypeCheckers) {
  function validate(props, propName, componentName, location) {
    for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
      var checker = arrayOfTypeCheckers[i];
      if (checker(props, propName, componentName, location) == null) {
        return null;
      }
    }

    var locationName = ReactPropTypeLocationNames[location];
    return new Error(
      ("Invalid " + locationName + " `" + propName + "` supplied to ") +
      ("`" + componentName + "`.")
    );
  }
  return createChainableTypeChecker(validate);
}

function createNodeChecker() {
  function validate(props, propName, componentName, location) {
    if (!isNode(props[propName])) {
      var locationName = ReactPropTypeLocationNames[location];
      return new Error(
        ("Invalid " + locationName + " `" + propName + "` supplied to ") +
        ("`" + componentName + "`, expected a ReactNode.")
      );
    }
    return null;
  }
  return createChainableTypeChecker(validate);
}

function createShapeTypeChecker(shapeTypes) {
  function validate(props, propName, componentName, location) {
    var propValue = props[propName];
    var propType = getPropType(propValue);
    if (propType !== 'object') {
      var locationName = ReactPropTypeLocationNames[location];
      return new Error(
        ("Invalid " + locationName + " `" + propName + "` of type `" + propType + "` ") +
        ("supplied to `" + componentName + "`, expected `object`.")
      );
    }
    for (var key in shapeTypes) {
      var checker = shapeTypes[key];
      if (!checker) {
        continue;
      }
      var error = checker(propValue, key, componentName, location);
      if (error) {
        return error;
      }
    }
    return null;
  }
  return createChainableTypeChecker(validate);
}

function isNode(propValue) {
  switch (typeof propValue) {
    case 'number':
    case 'string':
    case 'undefined':
      return true;
    case 'boolean':
      return !propValue;
    case 'object':
      if (Array.isArray(propValue)) {
        return propValue.every(isNode);
      }
      if (propValue === null || ReactElement.isValidElement(propValue)) {
        return true;
      }
      propValue = ReactFragment.extractIfFragment(propValue);
      for (var k in propValue) {
        if (!isNode(propValue[k])) {
          return false;
        }
      }
      return true;
    default:
      return false;
  }
}

// Equivalent of `typeof` but with special handling for array and regexp.
function getPropType(propValue) {
  var propType = typeof propValue;
  if (Array.isArray(propValue)) {
    return 'array';
  }
  if (propValue instanceof RegExp) {
    // Old webkits (at least until Android 4.0) return 'function' rather than
    // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
    // passes PropTypes.object.
    return 'object';
  }
  return propType;
}

// This handles more types than `getPropType`. Only used for error messages.
// See `createPrimitiveTypeChecker`.
function getPreciseType(propValue) {
  var propType = getPropType(propValue);
  if (propType === 'object') {
    if (propValue instanceof Date) {
      return 'date';
    } else if (propValue instanceof RegExp) {
      return 'regexp';
    }
  }
  return propType;
}

module.exports = ReactPropTypes;

},{"./ReactElement":74,"./ReactFragment":80,"./ReactPropTypeLocationNames":95,"./emptyFunction":141}],98:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactPutListenerQueue
 */

'use strict';

var PooledClass = require("./PooledClass");
var ReactBrowserEventEmitter = require("./ReactBrowserEventEmitter");

var assign = require("./Object.assign");

function ReactPutListenerQueue() {
  this.listenersToPut = [];
}

assign(ReactPutListenerQueue.prototype, {
  enqueuePutListener: function(rootNodeID, propKey, propValue) {
    this.listenersToPut.push({
      rootNodeID: rootNodeID,
      propKey: propKey,
      propValue: propValue
    });
  },

  putListeners: function() {
    for (var i = 0; i < this.listenersToPut.length; i++) {
      var listenerToPut = this.listenersToPut[i];
      ReactBrowserEventEmitter.putListener(
        listenerToPut.rootNodeID,
        listenerToPut.propKey,
        listenerToPut.propValue
      );
    }
  },

  reset: function() {
    this.listenersToPut.length = 0;
  },

  destructor: function() {
    this.reset();
  }
});

PooledClass.addPoolingTo(ReactPutListenerQueue);

module.exports = ReactPutListenerQueue;

},{"./Object.assign":40,"./PooledClass":41,"./ReactBrowserEventEmitter":44}],99:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactReconcileTransaction
 * @typechecks static-only
 */

'use strict';

var CallbackQueue = require("./CallbackQueue");
var PooledClass = require("./PooledClass");
var ReactBrowserEventEmitter = require("./ReactBrowserEventEmitter");
var ReactInputSelection = require("./ReactInputSelection");
var ReactPutListenerQueue = require("./ReactPutListenerQueue");
var Transaction = require("./Transaction");

var assign = require("./Object.assign");

/**
 * Ensures that, when possible, the selection range (currently selected text
 * input) is not disturbed by performing the transaction.
 */
var SELECTION_RESTORATION = {
  /**
   * @return {Selection} Selection information.
   */
  initialize: ReactInputSelection.getSelectionInformation,
  /**
   * @param {Selection} sel Selection information returned from `initialize`.
   */
  close: ReactInputSelection.restoreSelection
};

/**
 * Suppresses events (blur/focus) that could be inadvertently dispatched due to
 * high level DOM manipulations (like temporarily removing a text input from the
 * DOM).
 */
var EVENT_SUPPRESSION = {
  /**
   * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before
   * the reconciliation.
   */
  initialize: function() {
    var currentlyEnabled = ReactBrowserEventEmitter.isEnabled();
    ReactBrowserEventEmitter.setEnabled(false);
    return currentlyEnabled;
  },

  /**
   * @param {boolean} previouslyEnabled Enabled status of
   *   `ReactBrowserEventEmitter` before the reconciliation occured. `close`
   *   restores the previous value.
   */
  close: function(previouslyEnabled) {
    ReactBrowserEventEmitter.setEnabled(previouslyEnabled);
  }
};

/**
 * Provides a queue for collecting `componentDidMount` and
 * `componentDidUpdate` callbacks during the the transaction.
 */
var ON_DOM_READY_QUEUEING = {
  /**
   * Initializes the internal `onDOMReady` queue.
   */
  initialize: function() {
    this.reactMountReady.reset();
  },

  /**
   * After DOM is flushed, invoke all registered `onDOMReady` callbacks.
   */
  close: function() {
    this.reactMountReady.notifyAll();
  }
};

var PUT_LISTENER_QUEUEING = {
  initialize: function() {
    this.putListenerQueue.reset();
  },

  close: function() {
    this.putListenerQueue.putListeners();
  }
};

/**
 * Executed within the scope of the `Transaction` instance. Consider these as
 * being member methods, but with an implied ordering while being isolated from
 * each other.
 */
var TRANSACTION_WRAPPERS = [
  PUT_LISTENER_QUEUEING,
  SELECTION_RESTORATION,
  EVENT_SUPPRESSION,
  ON_DOM_READY_QUEUEING
];

/**
 * Currently:
 * - The order that these are listed in the transaction is critical:
 * - Suppresses events.
 * - Restores selection range.
 *
 * Future:
 * - Restore document/overflow scroll positions that were unintentionally
 *   modified via DOM insertions above the top viewport boundary.
 * - Implement/integrate with customized constraint based layout system and keep
 *   track of which dimensions must be remeasured.
 *
 * @class ReactReconcileTransaction
 */
function ReactReconcileTransaction() {
  this.reinitializeTransaction();
  // Only server-side rendering really needs this option (see
  // `ReactServerRendering`), but server-side uses
  // `ReactServerRenderingTransaction` instead. This option is here so that it's
  // accessible and defaults to false when `ReactDOMComponent` and
  // `ReactTextComponent` checks it in `mountComponent`.`
  this.renderToStaticMarkup = false;
  this.reactMountReady = CallbackQueue.getPooled(null);
  this.putListenerQueue = ReactPutListenerQueue.getPooled();
}

var Mixin = {
  /**
   * @see Transaction
   * @abstract
   * @final
   * @return {array<object>} List of operation wrap proceedures.
   *   TODO: convert to array<TransactionWrapper>
   */
  getTransactionWrappers: function() {
    return TRANSACTION_WRAPPERS;
  },

  /**
   * @return {object} The queue to collect `onDOMReady` callbacks with.
   */
  getReactMountReady: function() {
    return this.reactMountReady;
  },

  getPutListenerQueue: function() {
    return this.putListenerQueue;
  },

  /**
   * `PooledClass` looks for this, and will invoke this before allowing this
   * instance to be resused.
   */
  destructor: function() {
    CallbackQueue.release(this.reactMountReady);
    this.reactMountReady = null;

    ReactPutListenerQueue.release(this.putListenerQueue);
    this.putListenerQueue = null;
  }
};


assign(ReactReconcileTransaction.prototype, Transaction.Mixin, Mixin);

PooledClass.addPoolingTo(ReactReconcileTransaction);

module.exports = ReactReconcileTransaction;

},{"./CallbackQueue":18,"./Object.assign":40,"./PooledClass":41,"./ReactBrowserEventEmitter":44,"./ReactInputSelection":82,"./ReactPutListenerQueue":98,"./Transaction":128}],100:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactReconciler
 */

'use strict';

var ReactRef = require("./ReactRef");
var ReactElementValidator = require("./ReactElementValidator");

/**
 * Helper to call ReactRef.attachRefs with this composite component, split out
 * to avoid allocations in the transaction mount-ready queue.
 */
function attachRefs() {
  ReactRef.attachRefs(this, this._currentElement);
}

var ReactReconciler = {

  /**
   * Initializes the component, renders markup, and registers event listeners.
   *
   * @param {ReactComponent} internalInstance
   * @param {string} rootID DOM ID of the root node.
   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction
   * @return {?string} Rendered markup to be inserted into the DOM.
   * @final
   * @internal
   */
  mountComponent: function(internalInstance, rootID, transaction, context) {
    var markup = internalInstance.mountComponent(rootID, transaction, context);
    if ("production" !== process.env.NODE_ENV) {
      ReactElementValidator.checkAndWarnForMutatedProps(
        internalInstance._currentElement
      );
    }
    transaction.getReactMountReady().enqueue(attachRefs, internalInstance);
    return markup;
  },

  /**
   * Releases any resources allocated by `mountComponent`.
   *
   * @final
   * @internal
   */
  unmountComponent: function(internalInstance) {
    ReactRef.detachRefs(internalInstance, internalInstance._currentElement);
    internalInstance.unmountComponent();
  },

  /**
   * Update a component using a new element.
   *
   * @param {ReactComponent} internalInstance
   * @param {ReactElement} nextElement
   * @param {ReactReconcileTransaction} transaction
   * @param {object} context
   * @internal
   */
  receiveComponent: function(
    internalInstance, nextElement, transaction, context
  ) {
    var prevElement = internalInstance._currentElement;

    if (nextElement === prevElement && nextElement._owner != null) {
      // Since elements are immutable after the owner is rendered,
      // we can do a cheap identity compare here to determine if this is a
      // superfluous reconcile. It's possible for state to be mutable but such
      // change should trigger an update of the owner which would recreate
      // the element. We explicitly check for the existence of an owner since
      // it's possible for an element created outside a composite to be
      // deeply mutated and reused.
      return;
    }

    if ("production" !== process.env.NODE_ENV) {
      ReactElementValidator.checkAndWarnForMutatedProps(nextElement);
    }

    var refsChanged = ReactRef.shouldUpdateRefs(
      prevElement,
      nextElement
    );

    if (refsChanged) {
      ReactRef.detachRefs(internalInstance, prevElement);
    }

    internalInstance.receiveComponent(nextElement, transaction, context);

    if (refsChanged) {
      transaction.getReactMountReady().enqueue(attachRefs, internalInstance);
    }
  },

  /**
   * Flush any dirty changes in a component.
   *
   * @param {ReactComponent} internalInstance
   * @param {ReactReconcileTransaction} transaction
   * @internal
   */
  performUpdateIfNecessary: function(
    internalInstance,
    transaction
  ) {
    internalInstance.performUpdateIfNecessary(transaction);
  }

};

module.exports = ReactReconciler;

}).call(this,require("1YiZ5S"))
},{"./ReactElementValidator":75,"./ReactRef":101,"1YiZ5S":5}],101:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactRef
 */

'use strict';

var ReactOwner = require("./ReactOwner");

var ReactRef = {};

function attachRef(ref, component, owner) {
  if (typeof ref === 'function') {
    ref(component.getPublicInstance());
  } else {
    // Legacy ref
    ReactOwner.addComponentAsRefTo(component, ref, owner);
  }
}

function detachRef(ref, component, owner) {
  if (typeof ref === 'function') {
    ref(null);
  } else {
    // Legacy ref
    ReactOwner.removeComponentAsRefFrom(component, ref, owner);
  }
}

ReactRef.attachRefs = function(instance, element) {
  var ref = element.ref;
  if (ref != null) {
    attachRef(ref, instance, element._owner);
  }
};

ReactRef.shouldUpdateRefs = function(prevElement, nextElement) {
  // If either the owner or a `ref` has changed, make sure the newest owner
  // has stored a reference to `this`, and the previous owner (if different)
  // has forgotten the reference to `this`. We use the element instead
  // of the public this.props because the post processing cannot determine
  // a ref. The ref conceptually lives on the element.

  // TODO: Should this even be possible? The owner cannot change because
  // it's forbidden by shouldUpdateReactComponent. The ref can change
  // if you swap the keys of but not the refs. Reconsider where this check
  // is made. It probably belongs where the key checking and
  // instantiateReactComponent is done.

  return (
    nextElement._owner !== prevElement._owner ||
    nextElement.ref !== prevElement.ref
  );
};

ReactRef.detachRefs = function(instance, element) {
  var ref = element.ref;
  if (ref != null) {
    detachRef(ref, instance, element._owner);
  }
};

module.exports = ReactRef;

},{"./ReactOwner":92}],102:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactRootIndex
 * @typechecks
 */

'use strict';

var ReactRootIndexInjection = {
  /**
   * @param {function} _createReactRootIndex
   */
  injectCreateReactRootIndex: function(_createReactRootIndex) {
    ReactRootIndex.createReactRootIndex = _createReactRootIndex;
  }
};

var ReactRootIndex = {
  createReactRootIndex: null,
  injection: ReactRootIndexInjection
};

module.exports = ReactRootIndex;

},{}],103:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @typechecks static-only
 * @providesModule ReactServerRendering
 */
'use strict';

var ReactElement = require("./ReactElement");
var ReactInstanceHandles = require("./ReactInstanceHandles");
var ReactMarkupChecksum = require("./ReactMarkupChecksum");
var ReactServerRenderingTransaction =
  require("./ReactServerRenderingTransaction");

var emptyObject = require("./emptyObject");
var instantiateReactComponent = require("./instantiateReactComponent");
var invariant = require("./invariant");

/**
 * @param {ReactElement} element
 * @return {string} the HTML markup
 */
function renderToString(element) {
  ("production" !== process.env.NODE_ENV ? invariant(
    ReactElement.isValidElement(element),
    'renderToString(): You must pass a valid ReactElement.'
  ) : invariant(ReactElement.isValidElement(element)));

  var transaction;
  try {
    var id = ReactInstanceHandles.createReactRootID();
    transaction = ReactServerRenderingTransaction.getPooled(false);

    return transaction.perform(function() {
      var componentInstance = instantiateReactComponent(element, null);
      var markup =
        componentInstance.mountComponent(id, transaction, emptyObject);
      return ReactMarkupChecksum.addChecksumToMarkup(markup);
    }, null);
  } finally {
    ReactServerRenderingTransaction.release(transaction);
  }
}

/**
 * @param {ReactElement} element
 * @return {string} the HTML markup, without the extra React ID and checksum
 * (for generating static pages)
 */
function renderToStaticMarkup(element) {
  ("production" !== process.env.NODE_ENV ? invariant(
    ReactElement.isValidElement(element),
    'renderToStaticMarkup(): You must pass a valid ReactElement.'
  ) : invariant(ReactElement.isValidElement(element)));

  var transaction;
  try {
    var id = ReactInstanceHandles.createReactRootID();
    transaction = ReactServerRenderingTransaction.getPooled(true);

    return transaction.perform(function() {
      var componentInstance = instantiateReactComponent(element, null);
      return componentInstance.mountComponent(id, transaction, emptyObject);
    }, null);
  } finally {
    ReactServerRenderingTransaction.release(transaction);
  }
}

module.exports = {
  renderToString: renderToString,
  renderToStaticMarkup: renderToStaticMarkup
};

}).call(this,require("1YiZ5S"))
},{"./ReactElement":74,"./ReactInstanceHandles":83,"./ReactMarkupChecksum":87,"./ReactServerRenderingTransaction":104,"./emptyObject":142,"./instantiateReactComponent":161,"./invariant":162,"1YiZ5S":5}],104:[function(require,module,exports){
/**
 * Copyright 2014-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactServerRenderingTransaction
 * @typechecks
 */

'use strict';

var PooledClass = require("./PooledClass");
var CallbackQueue = require("./CallbackQueue");
var ReactPutListenerQueue = require("./ReactPutListenerQueue");
var Transaction = require("./Transaction");

var assign = require("./Object.assign");
var emptyFunction = require("./emptyFunction");

/**
 * Provides a `CallbackQueue` queue for collecting `onDOMReady` callbacks
 * during the performing of the transaction.
 */
var ON_DOM_READY_QUEUEING = {
  /**
   * Initializes the internal `onDOMReady` queue.
   */
  initialize: function() {
    this.reactMountReady.reset();
  },

  close: emptyFunction
};

var PUT_LISTENER_QUEUEING = {
  initialize: function() {
    this.putListenerQueue.reset();
  },

  close: emptyFunction
};

/**
 * Executed within the scope of the `Transaction` instance. Consider these as
 * being member methods, but with an implied ordering while being isolated from
 * each other.
 */
var TRANSACTION_WRAPPERS = [
  PUT_LISTENER_QUEUEING,
  ON_DOM_READY_QUEUEING
];

/**
 * @class ReactServerRenderingTransaction
 * @param {boolean} renderToStaticMarkup
 */
function ReactServerRenderingTransaction(renderToStaticMarkup) {
  this.reinitializeTransaction();
  this.renderToStaticMarkup = renderToStaticMarkup;
  this.reactMountReady = CallbackQueue.getPooled(null);
  this.putListenerQueue = ReactPutListenerQueue.getPooled();
}

var Mixin = {
  /**
   * @see Transaction
   * @abstract
   * @final
   * @return {array} Empty list of operation wrap proceedures.
   */
  getTransactionWrappers: function() {
    return TRANSACTION_WRAPPERS;
  },

  /**
   * @return {object} The queue to collect `onDOMReady` callbacks with.
   */
  getReactMountReady: function() {
    return this.reactMountReady;
  },

  getPutListenerQueue: function() {
    return this.putListenerQueue;
  },

  /**
   * `PooledClass` looks for this, and will invoke this before allowing this
   * instance to be resused.
   */
  destructor: function() {
    CallbackQueue.release(this.reactMountReady);
    this.reactMountReady = null;

    ReactPutListenerQueue.release(this.putListenerQueue);
    this.putListenerQueue = null;
  }
};


assign(
  ReactServerRenderingTransaction.prototype,
  Transaction.Mixin,
  Mixin
);

PooledClass.addPoolingTo(ReactServerRenderingTransaction);

module.exports = ReactServerRenderingTransaction;

},{"./CallbackQueue":18,"./Object.assign":40,"./PooledClass":41,"./ReactPutListenerQueue":98,"./Transaction":128,"./emptyFunction":141}],105:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactStateSetters
 */

'use strict';

var ReactStateSetters = {
  /**
   * Returns a function that calls the provided function, and uses the result
   * of that to set the component's state.
   *
   * @param {ReactCompositeComponent} component
   * @param {function} funcReturningState Returned callback uses this to
   *                                      determine how to update state.
   * @return {function} callback that when invoked uses funcReturningState to
   *                    determined the object literal to setState.
   */
  createStateSetter: function(component, funcReturningState) {
    return function(a, b, c, d, e, f) {
      var partialState = funcReturningState.call(component, a, b, c, d, e, f);
      if (partialState) {
        component.setState(partialState);
      }
    };
  },

  /**
   * Returns a single-argument callback that can be used to update a single
   * key in the component's state.
   *
   * Note: this is memoized function, which makes it inexpensive to call.
   *
   * @param {ReactCompositeComponent} component
   * @param {string} key The key in the state that you should update.
   * @return {function} callback of 1 argument which calls setState() with
   *                    the provided keyName and callback argument.
   */
  createStateKeySetter: function(component, key) {
    // Memoize the setters.
    var cache = component.__keySetters || (component.__keySetters = {});
    return cache[key] || (cache[key] = createStateKeySetter(component, key));
  }
};

function createStateKeySetter(component, key) {
  // Partial state is allocated outside of the function closure so it can be
  // reused with every call, avoiding memory allocation when this function
  // is called.
  var partialState = {};
  return function stateKeySetter(value) {
    partialState[key] = value;
    component.setState(partialState);
  };
}

ReactStateSetters.Mixin = {
  /**
   * Returns a function that calls the provided function, and uses the result
   * of that to set the component's state.
   *
   * For example, these statements are equivalent:
   *
   *   this.setState({x: 1});
   *   this.createStateSetter(function(xValue) {
   *     return {x: xValue};
   *   })(1);
   *
   * @param {function} funcReturningState Returned callback uses this to
   *                                      determine how to update state.
   * @return {function} callback that when invoked uses funcReturningState to
   *                    determined the object literal to setState.
   */
  createStateSetter: function(funcReturningState) {
    return ReactStateSetters.createStateSetter(this, funcReturningState);
  },

  /**
   * Returns a single-argument callback that can be used to update a single
   * key in the component's state.
   *
   * For example, these statements are equivalent:
   *
   *   this.setState({x: 1});
   *   this.createStateKeySetter('x')(1);
   *
   * Note: this is memoized function, which makes it inexpensive to call.
   *
   * @param {string} key The key in the state that you should update.
   * @return {function} callback of 1 argument which calls setState() with
   *                    the provided keyName and callback argument.
   */
  createStateKeySetter: function(key) {
    return ReactStateSetters.createStateKeySetter(this, key);
  }
};

module.exports = ReactStateSetters;

},{}],106:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactTestUtils
 */

'use strict';

var EventConstants = require("./EventConstants");
var EventPluginHub = require("./EventPluginHub");
var EventPropagators = require("./EventPropagators");
var React = require("./React");
var ReactElement = require("./ReactElement");
var ReactEmptyComponent = require("./ReactEmptyComponent");
var ReactBrowserEventEmitter = require("./ReactBrowserEventEmitter");
var ReactCompositeComponent = require("./ReactCompositeComponent");
var ReactInstanceHandles = require("./ReactInstanceHandles");
var ReactInstanceMap = require("./ReactInstanceMap");
var ReactMount = require("./ReactMount");
var ReactUpdates = require("./ReactUpdates");
var SyntheticEvent = require("./SyntheticEvent");

var assign = require("./Object.assign");
var emptyObject = require("./emptyObject");

var topLevelTypes = EventConstants.topLevelTypes;

function Event(suffix) {}

/**
 * @class ReactTestUtils
 */

/**
 * Todo: Support the entire DOM.scry query syntax. For now, these simple
 * utilities will suffice for testing purposes.
 * @lends ReactTestUtils
 */
var ReactTestUtils = {
  renderIntoDocument: function(instance) {
    var div = document.createElement('div');
    // None of our tests actually require attaching the container to the
    // DOM, and doing so creates a mess that we rely on test isolation to
    // clean up, so we're going to stop honoring the name of this method
    // (and probably rename it eventually) if no problems arise.
    // document.documentElement.appendChild(div);
    return React.render(instance, div);
  },

  isElement: function(element) {
    return ReactElement.isValidElement(element);
  },

  isElementOfType: function(inst, convenienceConstructor) {
    return (
      ReactElement.isValidElement(inst) &&
      inst.type === convenienceConstructor
    );
  },

  isDOMComponent: function(inst) {
    // TODO: Fix this heuristic. It's just here because composites can currently
    // pretend to be DOM components.
    return !!(inst && inst.tagName && inst.getDOMNode);
  },

  isDOMComponentElement: function(inst) {
    return !!(inst &&
              ReactElement.isValidElement(inst) &&
              !!inst.tagName);
  },

  isCompositeComponent: function(inst) {
    return typeof inst.render === 'function' &&
           typeof inst.setState === 'function';
  },

  isCompositeComponentWithType: function(inst, type) {
    return !!(ReactTestUtils.isCompositeComponent(inst) &&
             (inst.constructor === type));
  },

  isCompositeComponentElement: function(inst) {
    if (!ReactElement.isValidElement(inst)) {
      return false;
    }
    // We check the prototype of the type that will get mounted, not the
    // instance itself. This is a future proof way of duck typing.
    var prototype = inst.type.prototype;
    return (
      typeof prototype.render === 'function' &&
      typeof prototype.setState === 'function'
    );
  },

  isCompositeComponentElementWithType: function(inst, type) {
    return !!(ReactTestUtils.isCompositeComponentElement(inst) &&
             (inst.constructor === type));
  },

  getRenderedChildOfCompositeComponent: function(inst) {
    if (!ReactTestUtils.isCompositeComponent(inst)) {
      return null;
    }
    var internalInstance = ReactInstanceMap.get(inst);
    return internalInstance._renderedComponent.getPublicInstance();
  },

  findAllInRenderedTree: function(inst, test) {
    if (!inst) {
      return [];
    }
    var ret = test(inst) ? [inst] : [];
    if (ReactTestUtils.isDOMComponent(inst)) {
      var internalInstance = ReactInstanceMap.get(inst);
      var renderedChildren = internalInstance
        ._renderedComponent
        ._renderedChildren;
      var key;
      for (key in renderedChildren) {
        if (!renderedChildren.hasOwnProperty(key)) {
          continue;
        }
        if (!renderedChildren[key].getPublicInstance) {
          continue;
        }
        ret = ret.concat(
          ReactTestUtils.findAllInRenderedTree(
            renderedChildren[key].getPublicInstance(),
            test
          )
        );
      }
    } else if (ReactTestUtils.isCompositeComponent(inst)) {
      ret = ret.concat(
        ReactTestUtils.findAllInRenderedTree(
          ReactTestUtils.getRenderedChildOfCompositeComponent(inst),
          test
        )
      );
    }
    return ret;
  },

  /**
   * Finds all instance of components in the rendered tree that are DOM
   * components with the class name matching `className`.
   * @return an array of all the matches.
   */
  scryRenderedDOMComponentsWithClass: function(root, className) {
    return ReactTestUtils.findAllInRenderedTree(root, function(inst) {
      var instClassName = inst.props.className;
      return ReactTestUtils.isDOMComponent(inst) && (
        (instClassName && (' ' + instClassName + ' ').indexOf(' ' + className + ' ') !== -1)
      );
    });
  },

  /**
   * Like scryRenderedDOMComponentsWithClass but expects there to be one result,
   * and returns that one result, or throws exception if there is any other
   * number of matches besides one.
   * @return {!ReactDOMComponent} The one match.
   */
  findRenderedDOMComponentWithClass: function(root, className) {
    var all =
      ReactTestUtils.scryRenderedDOMComponentsWithClass(root, className);
    if (all.length !== 1) {
      throw new Error('Did not find exactly one match ' +
        '(found: ' + all.length + ') for class:' + className
      );
    }
    return all[0];
  },


  /**
   * Finds all instance of components in the rendered tree that are DOM
   * components with the tag name matching `tagName`.
   * @return an array of all the matches.
   */
  scryRenderedDOMComponentsWithTag: function(root, tagName) {
    return ReactTestUtils.findAllInRenderedTree(root, function(inst) {
      return ReactTestUtils.isDOMComponent(inst) &&
            inst.tagName === tagName.toUpperCase();
    });
  },

  /**
   * Like scryRenderedDOMComponentsWithTag but expects there to be one result,
   * and returns that one result, or throws exception if there is any other
   * number of matches besides one.
   * @return {!ReactDOMComponent} The one match.
   */
  findRenderedDOMComponentWithTag: function(root, tagName) {
    var all = ReactTestUtils.scryRenderedDOMComponentsWithTag(root, tagName);
    if (all.length !== 1) {
      throw new Error('Did not find exactly one match for tag:' + tagName);
    }
    return all[0];
  },


  /**
   * Finds all instances of components with type equal to `componentType`.
   * @return an array of all the matches.
   */
  scryRenderedComponentsWithType: function(root, componentType) {
    return ReactTestUtils.findAllInRenderedTree(root, function(inst) {
      return ReactTestUtils.isCompositeComponentWithType(
        inst,
        componentType
      );
    });
  },

  /**
   * Same as `scryRenderedComponentsWithType` but expects there to be one result
   * and returns that one result, or throws exception if there is any other
   * number of matches besides one.
   * @return {!ReactComponent} The one match.
   */
  findRenderedComponentWithType: function(root, componentType) {
    var all = ReactTestUtils.scryRenderedComponentsWithType(
      root,
      componentType
    );
    if (all.length !== 1) {
      throw new Error(
        'Did not find exactly one match for componentType:' + componentType
      );
    }
    return all[0];
  },

  /**
   * Pass a mocked component module to this method to augment it with
   * useful methods that allow it to be used as a dummy React component.
   * Instead of rendering as usual, the component will become a simple
   * <div> containing any provided children.
   *
   * @param {object} module the mock function object exported from a
   *                        module that defines the component to be mocked
   * @param {?string} mockTagName optional dummy root tag name to return
   *                              from render method (overrides
   *                              module.mockTagName if provided)
   * @return {object} the ReactTestUtils object (for chaining)
   */
  mockComponent: function(module, mockTagName) {
    mockTagName = mockTagName || module.mockTagName || "div";

    module.prototype.render.mockImplementation(function() {
      return React.createElement(
        mockTagName,
        null,
        this.props.children
      );
    });

    return this;
  },

  /**
   * Simulates a top level event being dispatched from a raw event that occured
   * on an `Element` node.
   * @param topLevelType {Object} A type from `EventConstants.topLevelTypes`
   * @param {!Element} node The dom to simulate an event occurring on.
   * @param {?Event} fakeNativeEvent Fake native event to use in SyntheticEvent.
   */
  simulateNativeEventOnNode: function(topLevelType, node, fakeNativeEvent) {
    fakeNativeEvent.target = node;
    ReactBrowserEventEmitter.ReactEventListener.dispatchEvent(
      topLevelType,
      fakeNativeEvent
    );
  },

  /**
   * Simulates a top level event being dispatched from a raw event that occured
   * on the `ReactDOMComponent` `comp`.
   * @param topLevelType {Object} A type from `EventConstants.topLevelTypes`.
   * @param comp {!ReactDOMComponent}
   * @param {?Event} fakeNativeEvent Fake native event to use in SyntheticEvent.
   */
  simulateNativeEventOnDOMComponent: function(
      topLevelType,
      comp,
      fakeNativeEvent) {
    ReactTestUtils.simulateNativeEventOnNode(
      topLevelType,
      comp.getDOMNode(),
      fakeNativeEvent
    );
  },

  nativeTouchData: function(x, y) {
    return {
      touches: [
        {pageX: x, pageY: y}
      ]
    };
  },

  createRenderer: function() {
    return new ReactShallowRenderer();
  },

  Simulate: null,
  SimulateNative: {}
};

/**
 * @class ReactShallowRenderer
 */
var ReactShallowRenderer = function() {
  this._instance = null;
};

ReactShallowRenderer.prototype.getRenderOutput = function() {
  return (
    (this._instance && this._instance._renderedComponent &&
     this._instance._renderedComponent._renderedOutput)
    || null
  );
};

var NoopInternalComponent = function(element) {
  this._renderedOutput = element;
  this._currentElement = element === null || element === false ?
    ReactEmptyComponent.emptyElement :
    element;
};

NoopInternalComponent.prototype = {

  mountComponent: function() {
  },

  receiveComponent: function(element) {
    this._renderedOutput = element;
    this._currentElement = element === null || element === false ?
      ReactEmptyComponent.emptyElement :
      element;
  },

  unmountComponent: function() {
  }

};

var ShallowComponentWrapper = function() { };
assign(
  ShallowComponentWrapper.prototype,
  ReactCompositeComponent.Mixin, {
    _instantiateReactComponent: function(element) {
      return new NoopInternalComponent(element);
    },
    _replaceNodeWithMarkupByID: function() {},
    _renderValidatedComponent:
      ReactCompositeComponent.Mixin.
        _renderValidatedComponentWithoutOwnerOrContext
  }
);

ReactShallowRenderer.prototype.render = function(element, context) {
  if (!context) {
    context = emptyObject;
  }
  var transaction = ReactUpdates.ReactReconcileTransaction.getPooled();
  this._render(element, transaction, context);
  ReactUpdates.ReactReconcileTransaction.release(transaction);
};

ReactShallowRenderer.prototype.unmount = function() {
  if (this._instance) {
    this._instance.unmountComponent();
  }
};

ReactShallowRenderer.prototype._render = function(element, transaction, context) {
  if (!this._instance) {
    var rootID = ReactInstanceHandles.createReactRootID();
    var instance = new ShallowComponentWrapper(element.type);
    instance.construct(element);

    instance.mountComponent(rootID, transaction, context);

    this._instance = instance;
  } else {
    this._instance.receiveComponent(element, transaction, context);
  }
};

/**
 * Exports:
 *
 * - `ReactTestUtils.Simulate.click(Element/ReactDOMComponent)`
 * - `ReactTestUtils.Simulate.mouseMove(Element/ReactDOMComponent)`
 * - `ReactTestUtils.Simulate.change(Element/ReactDOMComponent)`
 * - ... (All keys from event plugin `eventTypes` objects)
 */
function makeSimulator(eventType) {
  return function(domComponentOrNode, eventData) {
    var node;
    if (ReactTestUtils.isDOMComponent(domComponentOrNode)) {
      node = domComponentOrNode.getDOMNode();
    } else if (domComponentOrNode.tagName) {
      node = domComponentOrNode;
    }

    var fakeNativeEvent = new Event();
    fakeNativeEvent.target = node;
    // We don't use SyntheticEvent.getPooled in order to not have to worry about
    // properly destroying any properties assigned from `eventData` upon release
    var event = new SyntheticEvent(
      ReactBrowserEventEmitter.eventNameDispatchConfigs[eventType],
      ReactMount.getID(node),
      fakeNativeEvent
    );
    assign(event, eventData);
    EventPropagators.accumulateTwoPhaseDispatches(event);

    ReactUpdates.batchedUpdates(function() {
      EventPluginHub.enqueueEvents(event);
      EventPluginHub.processEventQueue();
    });
  };
}

function buildSimulators() {
  ReactTestUtils.Simulate = {};

  var eventType;
  for (eventType in ReactBrowserEventEmitter.eventNameDispatchConfigs) {
    /**
     * @param {!Element || ReactDOMComponent} domComponentOrNode
     * @param {?object} eventData Fake event data to use in SyntheticEvent.
     */
    ReactTestUtils.Simulate[eventType] = makeSimulator(eventType);
  }
}

// Rebuild ReactTestUtils.Simulate whenever event plugins are injected
var oldInjectEventPluginOrder = EventPluginHub.injection.injectEventPluginOrder;
EventPluginHub.injection.injectEventPluginOrder = function() {
  oldInjectEventPluginOrder.apply(this, arguments);
  buildSimulators();
};
var oldInjectEventPlugins = EventPluginHub.injection.injectEventPluginsByName;
EventPluginHub.injection.injectEventPluginsByName = function() {
  oldInjectEventPlugins.apply(this, arguments);
  buildSimulators();
};

buildSimulators();

/**
 * Exports:
 *
 * - `ReactTestUtils.SimulateNative.click(Element/ReactDOMComponent)`
 * - `ReactTestUtils.SimulateNative.mouseMove(Element/ReactDOMComponent)`
 * - `ReactTestUtils.SimulateNative.mouseIn/ReactDOMComponent)`
 * - `ReactTestUtils.SimulateNative.mouseOut(Element/ReactDOMComponent)`
 * - ... (All keys from `EventConstants.topLevelTypes`)
 *
 * Note: Top level event types are a subset of the entire set of handler types
 * (which include a broader set of "synthetic" events). For example, onDragDone
 * is a synthetic event. Except when testing an event plugin or React's event
 * handling code specifically, you probably want to use ReactTestUtils.Simulate
 * to dispatch synthetic events.
 */

function makeNativeSimulator(eventType) {
  return function(domComponentOrNode, nativeEventData) {
    var fakeNativeEvent = new Event(eventType);
    assign(fakeNativeEvent, nativeEventData);
    if (ReactTestUtils.isDOMComponent(domComponentOrNode)) {
      ReactTestUtils.simulateNativeEventOnDOMComponent(
        eventType,
        domComponentOrNode,
        fakeNativeEvent
      );
    } else if (!!domComponentOrNode.tagName) {
      // Will allow on actual dom nodes.
      ReactTestUtils.simulateNativeEventOnNode(
        eventType,
        domComponentOrNode,
        fakeNativeEvent
      );
    }
  };
}

var eventType;
for (eventType in topLevelTypes) {
  // Event type is stored as 'topClick' - we transform that to 'click'
  var convenienceName = eventType.indexOf('top') === 0 ?
    eventType.charAt(3).toLowerCase() + eventType.substr(4) : eventType;
  /**
   * @param {!Element || ReactDOMComponent} domComponentOrNode
   * @param {?Event} nativeEventData Fake native event to use in SyntheticEvent.
   */
  ReactTestUtils.SimulateNative[convenienceName] =
    makeNativeSimulator(eventType);
}

module.exports = ReactTestUtils;

},{"./EventConstants":27,"./EventPluginHub":29,"./EventPropagators":32,"./Object.assign":40,"./React":42,"./ReactBrowserEventEmitter":44,"./ReactCompositeComponent":54,"./ReactElement":74,"./ReactEmptyComponent":76,"./ReactInstanceHandles":83,"./ReactInstanceMap":84,"./ReactMount":88,"./ReactUpdates":111,"./SyntheticEvent":120,"./emptyObject":142}],107:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @typechecks static-only
 * @providesModule ReactTransitionChildMapping
 */

'use strict';

var ReactChildren = require("./ReactChildren");
var ReactFragment = require("./ReactFragment");

var ReactTransitionChildMapping = {
  /**
   * Given `this.props.children`, return an object mapping key to child. Just
   * simple syntactic sugar around ReactChildren.map().
   *
   * @param {*} children `this.props.children`
   * @return {object} Mapping of key to child
   */
  getChildMapping: function(children) {
    if (!children) {
      return children;
    }
    return ReactFragment.extract(ReactChildren.map(children, function(child) {
      return child;
    }));
  },

  /**
   * When you're adding or removing children some may be added or removed in the
   * same render pass. We want to show *both* since we want to simultaneously
   * animate elements in and out. This function takes a previous set of keys
   * and a new set of keys and merges them with its best guess of the correct
   * ordering. In the future we may expose some of the utilities in
   * ReactMultiChild to make this easy, but for now React itself does not
   * directly have this concept of the union of prevChildren and nextChildren
   * so we implement it here.
   *
   * @param {object} prev prev children as returned from
   * `ReactTransitionChildMapping.getChildMapping()`.
   * @param {object} next next children as returned from
   * `ReactTransitionChildMapping.getChildMapping()`.
   * @return {object} a key set that contains all keys in `prev` and all keys
   * in `next` in a reasonable order.
   */
  mergeChildMappings: function(prev, next) {
    prev = prev || {};
    next = next || {};

    function getValueForKey(key) {
      if (next.hasOwnProperty(key)) {
        return next[key];
      } else {
        return prev[key];
      }
    }

    // For each key of `next`, the list of keys to insert before that key in
    // the combined list
    var nextKeysPending = {};

    var pendingKeys = [];
    for (var prevKey in prev) {
      if (next.hasOwnProperty(prevKey)) {
        if (pendingKeys.length) {
          nextKeysPending[prevKey] = pendingKeys;
          pendingKeys = [];
        }
      } else {
        pendingKeys.push(prevKey);
      }
    }

    var i;
    var childMapping = {};
    for (var nextKey in next) {
      if (nextKeysPending.hasOwnProperty(nextKey)) {
        for (i = 0; i < nextKeysPending[nextKey].length; i++) {
          var pendingNextKey = nextKeysPending[nextKey][i];
          childMapping[nextKeysPending[nextKey][i]] = getValueForKey(
            pendingNextKey
          );
        }
      }
      childMapping[nextKey] = getValueForKey(nextKey);
    }

    // Finally, add the keys which didn't appear before any key in `next`
    for (i = 0; i < pendingKeys.length; i++) {
      childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);
    }

    return childMapping;
  }
};

module.exports = ReactTransitionChildMapping;

},{"./ReactChildren":48,"./ReactFragment":80}],108:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactTransitionEvents
 */

'use strict';

var ExecutionEnvironment = require("./ExecutionEnvironment");

/**
 * EVENT_NAME_MAP is used to determine which event fired when a
 * transition/animation ends, based on the style property used to
 * define that event.
 */
var EVENT_NAME_MAP = {
  transitionend: {
    'transition': 'transitionend',
    'WebkitTransition': 'webkitTransitionEnd',
    'MozTransition': 'mozTransitionEnd',
    'OTransition': 'oTransitionEnd',
    'msTransition': 'MSTransitionEnd'
  },

  animationend: {
    'animation': 'animationend',
    'WebkitAnimation': 'webkitAnimationEnd',
    'MozAnimation': 'mozAnimationEnd',
    'OAnimation': 'oAnimationEnd',
    'msAnimation': 'MSAnimationEnd'
  }
};

var endEvents = [];

function detectEvents() {
  var testEl = document.createElement('div');
  var style = testEl.style;

  // On some platforms, in particular some releases of Android 4.x,
  // the un-prefixed "animation" and "transition" properties are defined on the
  // style object but the events that fire will still be prefixed, so we need
  // to check if the un-prefixed events are useable, and if not remove them
  // from the map
  if (!('AnimationEvent' in window)) {
    delete EVENT_NAME_MAP.animationend.animation;
  }

  if (!('TransitionEvent' in window)) {
    delete EVENT_NAME_MAP.transitionend.transition;
  }

  for (var baseEventName in EVENT_NAME_MAP) {
    var baseEvents = EVENT_NAME_MAP[baseEventName];
    for (var styleName in baseEvents) {
      if (styleName in style) {
        endEvents.push(baseEvents[styleName]);
        break;
      }
    }
  }
}

if (ExecutionEnvironment.canUseDOM) {
  detectEvents();
}

// We use the raw {add|remove}EventListener() call because EventListener
// does not know how to remove event listeners and we really should
// clean up. Also, these events are not triggered in older browsers
// so we should be A-OK here.

function addEventListener(node, eventName, eventListener) {
  node.addEventListener(eventName, eventListener, false);
}

function removeEventListener(node, eventName, eventListener) {
  node.removeEventListener(eventName, eventListener, false);
}

var ReactTransitionEvents = {
  addEndEventListener: function(node, eventListener) {
    if (endEvents.length === 0) {
      // If CSS transitions are not supported, trigger an "end animation"
      // event immediately.
      window.setTimeout(eventListener, 0);
      return;
    }
    endEvents.forEach(function(endEvent) {
      addEventListener(node, endEvent, eventListener);
    });
  },

  removeEndEventListener: function(node, eventListener) {
    if (endEvents.length === 0) {
      return;
    }
    endEvents.forEach(function(endEvent) {
      removeEventListener(node, endEvent, eventListener);
    });
  }
};

module.exports = ReactTransitionEvents;

},{"./ExecutionEnvironment":33}],109:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactTransitionGroup
 */

'use strict';

var React = require("./React");
var ReactTransitionChildMapping = require("./ReactTransitionChildMapping");

var assign = require("./Object.assign");
var cloneWithProps = require("./cloneWithProps");
var emptyFunction = require("./emptyFunction");

var ReactTransitionGroup = React.createClass({
  displayName: 'ReactTransitionGroup',

  propTypes: {
    component: React.PropTypes.any,
    childFactory: React.PropTypes.func
  },

  getDefaultProps: function() {
    return {
      component: 'span',
      childFactory: emptyFunction.thatReturnsArgument
    };
  },

  getInitialState: function() {
    return {
      children: ReactTransitionChildMapping.getChildMapping(this.props.children)
    };
  },

  componentWillMount: function() {
    this.currentlyTransitioningKeys = {};
    this.keysToEnter = [];
    this.keysToLeave = [];
  },

  componentDidMount: function() {
    var initialChildMapping = this.state.children;
    for (var key in initialChildMapping) {
      if (initialChildMapping[key]) {
        this.performAppear(key);
      }
    }
  },

  componentWillReceiveProps: function(nextProps) {
    var nextChildMapping = ReactTransitionChildMapping.getChildMapping(
      nextProps.children
    );
    var prevChildMapping = this.state.children;

    this.setState({
      children: ReactTransitionChildMapping.mergeChildMappings(
        prevChildMapping,
        nextChildMapping
      )
    });

    var key;

    for (key in nextChildMapping) {
      var hasPrev = prevChildMapping && prevChildMapping.hasOwnProperty(key);
      if (nextChildMapping[key] && !hasPrev &&
          !this.currentlyTransitioningKeys[key]) {
        this.keysToEnter.push(key);
      }
    }

    for (key in prevChildMapping) {
      var hasNext = nextChildMapping && nextChildMapping.hasOwnProperty(key);
      if (prevChildMapping[key] && !hasNext &&
          !this.currentlyTransitioningKeys[key]) {
        this.keysToLeave.push(key);
      }
    }

    // If we want to someday check for reordering, we could do it here.
  },

  componentDidUpdate: function() {
    var keysToEnter = this.keysToEnter;
    this.keysToEnter = [];
    keysToEnter.forEach(this.performEnter);

    var keysToLeave = this.keysToLeave;
    this.keysToLeave = [];
    keysToLeave.forEach(this.performLeave);
  },

  performAppear: function(key) {
    this.currentlyTransitioningKeys[key] = true;

    var component = this.refs[key];

    if (component.componentWillAppear) {
      component.componentWillAppear(
        this._handleDoneAppearing.bind(this, key)
      );
    } else {
      this._handleDoneAppearing(key);
    }
  },

  _handleDoneAppearing: function(key) {
    var component = this.refs[key];
    if (component.componentDidAppear) {
      component.componentDidAppear();
    }

    delete this.currentlyTransitioningKeys[key];

    var currentChildMapping = ReactTransitionChildMapping.getChildMapping(
      this.props.children
    );

    if (!currentChildMapping || !currentChildMapping.hasOwnProperty(key)) {
      // This was removed before it had fully appeared. Remove it.
      this.performLeave(key);
    }
  },

  performEnter: function(key) {
    this.currentlyTransitioningKeys[key] = true;

    var component = this.refs[key];

    if (component.componentWillEnter) {
      component.componentWillEnter(
        this._handleDoneEntering.bind(this, key)
      );
    } else {
      this._handleDoneEntering(key);
    }
  },

  _handleDoneEntering: function(key) {
    var component = this.refs[key];
    if (component.componentDidEnter) {
      component.componentDidEnter();
    }

    delete this.currentlyTransitioningKeys[key];

    var currentChildMapping = ReactTransitionChildMapping.getChildMapping(
      this.props.children
    );

    if (!currentChildMapping || !currentChildMapping.hasOwnProperty(key)) {
      // This was removed before it had fully entered. Remove it.
      this.performLeave(key);
    }
  },

  performLeave: function(key) {
    this.currentlyTransitioningKeys[key] = true;

    var component = this.refs[key];
    if (component.componentWillLeave) {
      component.componentWillLeave(this._handleDoneLeaving.bind(this, key));
    } else {
      // Note that this is somewhat dangerous b/c it calls setState()
      // again, effectively mutating the component before all the work
      // is done.
      this._handleDoneLeaving(key);
    }
  },

  _handleDoneLeaving: function(key) {
    var component = this.refs[key];

    if (component.componentDidLeave) {
      component.componentDidLeave();
    }

    delete this.currentlyTransitioningKeys[key];

    var currentChildMapping = ReactTransitionChildMapping.getChildMapping(
      this.props.children
    );

    if (currentChildMapping && currentChildMapping.hasOwnProperty(key)) {
      // This entered again before it fully left. Add it again.
      this.performEnter(key);
    } else {
      var newChildren = assign({}, this.state.children);
      delete newChildren[key];
      this.setState({children: newChildren});
    }
  },

  render: function() {
    // TODO: we could get rid of the need for the wrapper node
    // by cloning a single child
    var childrenToRender = [];
    for (var key in this.state.children) {
      var child = this.state.children[key];
      if (child) {
        // You may need to apply reactive updates to a child as it is leaving.
        // The normal React way to do it won't work since the child will have
        // already been removed. In case you need this behavior you can provide
        // a childFactory function to wrap every child, even the ones that are
        // leaving.
        childrenToRender.push(cloneWithProps(
          this.props.childFactory(child),
          {ref: key, key: key}
        ));
      }
    }
    return React.createElement(
      this.props.component,
      this.props,
      childrenToRender
    );
  }
});

module.exports = ReactTransitionGroup;

},{"./Object.assign":40,"./React":42,"./ReactTransitionChildMapping":107,"./cloneWithProps":134,"./emptyFunction":141}],110:[function(require,module,exports){
(function (process){
/**
 * Copyright 2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactUpdateQueue
 */

'use strict';

var ReactLifeCycle = require("./ReactLifeCycle");
var ReactCurrentOwner = require("./ReactCurrentOwner");
var ReactElement = require("./ReactElement");
var ReactInstanceMap = require("./ReactInstanceMap");
var ReactUpdates = require("./ReactUpdates");

var assign = require("./Object.assign");
var invariant = require("./invariant");
var warning = require("./warning");

function enqueueUpdate(internalInstance) {
  if (internalInstance !== ReactLifeCycle.currentlyMountingInstance) {
    // If we're in a componentWillMount handler, don't enqueue a rerender
    // because ReactUpdates assumes we're in a browser context (which is
    // wrong for server rendering) and we're about to do a render anyway.
    // See bug in #1740.
    ReactUpdates.enqueueUpdate(internalInstance);
  }
}

function getInternalInstanceReadyForUpdate(publicInstance, callerName) {
  ("production" !== process.env.NODE_ENV ? invariant(
    ReactCurrentOwner.current == null,
    '%s(...): Cannot update during an existing state transition ' +
    '(such as within `render`). Render methods should be a pure function ' +
    'of props and state.',
    callerName
  ) : invariant(ReactCurrentOwner.current == null));

  var internalInstance = ReactInstanceMap.get(publicInstance);
  if (!internalInstance) {
    if ("production" !== process.env.NODE_ENV) {
      // Only warn when we have a callerName. Otherwise we should be silent.
      // We're probably calling from enqueueCallback. We don't want to warn
      // there because we already warned for the corresponding lifecycle method.
      ("production" !== process.env.NODE_ENV ? warning(
        !callerName,
        '%s(...): Can only update a mounted or mounting component. ' +
        'This usually means you called %s() on an unmounted ' +
        'component. This is a no-op.',
        callerName,
        callerName
      ) : null);
    }
    return null;
  }

  if (internalInstance === ReactLifeCycle.currentlyUnmountingInstance) {
    return null;
  }

  return internalInstance;
}

/**
 * ReactUpdateQueue allows for state updates to be scheduled into a later
 * reconciliation step.
 */
var ReactUpdateQueue = {

  /**
   * Enqueue a callback that will be executed after all the pending updates
   * have processed.
   *
   * @param {ReactClass} publicInstance The instance to use as `this` context.
   * @param {?function} callback Called after state is updated.
   * @internal
   */
  enqueueCallback: function(publicInstance, callback) {
    ("production" !== process.env.NODE_ENV ? invariant(
      typeof callback === 'function',
      'enqueueCallback(...): You called `setProps`, `replaceProps`, ' +
      '`setState`, `replaceState`, or `forceUpdate` with a callback that ' +
      'isn\'t callable.'
    ) : invariant(typeof callback === 'function'));
    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance);

    // Previously we would throw an error if we didn't have an internal
    // instance. Since we want to make it a no-op instead, we mirror the same
    // behavior we have in other enqueue* methods.
    // We also need to ignore callbacks in componentWillMount. See
    // enqueueUpdates.
    if (!internalInstance ||
        internalInstance === ReactLifeCycle.currentlyMountingInstance) {
      return null;
    }

    if (internalInstance._pendingCallbacks) {
      internalInstance._pendingCallbacks.push(callback);
    } else {
      internalInstance._pendingCallbacks = [callback];
    }
    // TODO: The callback here is ignored when setState is called from
    // componentWillMount. Either fix it or disallow doing so completely in
    // favor of getInitialState. Alternatively, we can disallow
    // componentWillMount during server-side rendering.
    enqueueUpdate(internalInstance);
  },

  enqueueCallbackInternal: function(internalInstance, callback) {
    ("production" !== process.env.NODE_ENV ? invariant(
      typeof callback === 'function',
      'enqueueCallback(...): You called `setProps`, `replaceProps`, ' +
      '`setState`, `replaceState`, or `forceUpdate` with a callback that ' +
      'isn\'t callable.'
    ) : invariant(typeof callback === 'function'));
    if (internalInstance._pendingCallbacks) {
      internalInstance._pendingCallbacks.push(callback);
    } else {
      internalInstance._pendingCallbacks = [callback];
    }
    enqueueUpdate(internalInstance);
  },

  /**
   * Forces an update. This should only be invoked when it is known with
   * certainty that we are **not** in a DOM transaction.
   *
   * You may want to call this when you know that some deeper aspect of the
   * component's state has changed but `setState` was not called.
   *
   * This will not invoke `shouldUpdateComponent`, but it will invoke
   * `componentWillUpdate` and `componentDidUpdate`.
   *
   * @param {ReactClass} publicInstance The instance that should rerender.
   * @internal
   */
  enqueueForceUpdate: function(publicInstance) {
    var internalInstance = getInternalInstanceReadyForUpdate(
      publicInstance,
      'forceUpdate'
    );

    if (!internalInstance) {
      return;
    }

    internalInstance._pendingForceUpdate = true;

    enqueueUpdate(internalInstance);
  },

  /**
   * Replaces all of the state. Always use this or `setState` to mutate state.
   * You should treat `this.state` as immutable.
   *
   * There is no guarantee that `this.state` will be immediately updated, so
   * accessing `this.state` after calling this method may return the old value.
   *
   * @param {ReactClass} publicInstance The instance that should rerender.
   * @param {object} completeState Next state.
   * @internal
   */
  enqueueReplaceState: function(publicInstance, completeState) {
    var internalInstance = getInternalInstanceReadyForUpdate(
      publicInstance,
      'replaceState'
    );

    if (!internalInstance) {
      return;
    }

    internalInstance._pendingStateQueue = [completeState];
    internalInstance._pendingReplaceState = true;

    enqueueUpdate(internalInstance);
  },

  /**
   * Sets a subset of the state. This only exists because _pendingState is
   * internal. This provides a merging strategy that is not available to deep
   * properties which is confusing. TODO: Expose pendingState or don't use it
   * during the merge.
   *
   * @param {ReactClass} publicInstance The instance that should rerender.
   * @param {object} partialState Next partial state to be merged with state.
   * @internal
   */
  enqueueSetState: function(publicInstance, partialState) {
    var internalInstance = getInternalInstanceReadyForUpdate(
      publicInstance,
      'setState'
    );

    if (!internalInstance) {
      return;
    }

    var queue =
      internalInstance._pendingStateQueue ||
      (internalInstance._pendingStateQueue = []);
    queue.push(partialState);

    enqueueUpdate(internalInstance);
  },

  /**
   * Sets a subset of the props.
   *
   * @param {ReactClass} publicInstance The instance that should rerender.
   * @param {object} partialProps Subset of the next props.
   * @internal
   */
  enqueueSetProps: function(publicInstance, partialProps) {
    var internalInstance = getInternalInstanceReadyForUpdate(
      publicInstance,
      'setProps'
    );

    if (!internalInstance) {
      return;
    }

    ("production" !== process.env.NODE_ENV ? invariant(
      internalInstance._isTopLevel,
      'setProps(...): You called `setProps` on a ' +
      'component with a parent. This is an anti-pattern since props will ' +
      'get reactively updated when rendered. Instead, change the owner\'s ' +
      '`render` method to pass the correct value as props to the component ' +
      'where it is created.'
    ) : invariant(internalInstance._isTopLevel));

    // Merge with the pending element if it exists, otherwise with existing
    // element props.
    var element = internalInstance._pendingElement ||
                  internalInstance._currentElement;
    var props = assign({}, element.props, partialProps);
    internalInstance._pendingElement = ReactElement.cloneAndReplaceProps(
      element,
      props
    );

    enqueueUpdate(internalInstance);
  },

  /**
   * Replaces all of the props.
   *
   * @param {ReactClass} publicInstance The instance that should rerender.
   * @param {object} props New props.
   * @internal
   */
  enqueueReplaceProps: function(publicInstance, props) {
    var internalInstance = getInternalInstanceReadyForUpdate(
      publicInstance,
      'replaceProps'
    );

    if (!internalInstance) {
      return;
    }

    ("production" !== process.env.NODE_ENV ? invariant(
      internalInstance._isTopLevel,
      'replaceProps(...): You called `replaceProps` on a ' +
      'component with a parent. This is an anti-pattern since props will ' +
      'get reactively updated when rendered. Instead, change the owner\'s ' +
      '`render` method to pass the correct value as props to the component ' +
      'where it is created.'
    ) : invariant(internalInstance._isTopLevel));

    // Merge with the pending element if it exists, otherwise with existing
    // element props.
    var element = internalInstance._pendingElement ||
                  internalInstance._currentElement;
    internalInstance._pendingElement = ReactElement.cloneAndReplaceProps(
      element,
      props
    );

    enqueueUpdate(internalInstance);
  },

  enqueueElementInternal: function(internalInstance, newElement) {
    internalInstance._pendingElement = newElement;
    enqueueUpdate(internalInstance);
  }

};

module.exports = ReactUpdateQueue;

}).call(this,require("1YiZ5S"))
},{"./Object.assign":40,"./ReactCurrentOwner":56,"./ReactElement":74,"./ReactInstanceMap":84,"./ReactLifeCycle":85,"./ReactUpdates":111,"./invariant":162,"./warning":183,"1YiZ5S":5}],111:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactUpdates
 */

'use strict';

var CallbackQueue = require("./CallbackQueue");
var PooledClass = require("./PooledClass");
var ReactCurrentOwner = require("./ReactCurrentOwner");
var ReactPerf = require("./ReactPerf");
var ReactReconciler = require("./ReactReconciler");
var Transaction = require("./Transaction");

var assign = require("./Object.assign");
var invariant = require("./invariant");
var warning = require("./warning");

var dirtyComponents = [];
var asapCallbackQueue = CallbackQueue.getPooled();
var asapEnqueued = false;

var batchingStrategy = null;

function ensureInjected() {
  ("production" !== process.env.NODE_ENV ? invariant(
    ReactUpdates.ReactReconcileTransaction && batchingStrategy,
    'ReactUpdates: must inject a reconcile transaction class and batching ' +
    'strategy'
  ) : invariant(ReactUpdates.ReactReconcileTransaction && batchingStrategy));
}

var NESTED_UPDATES = {
  initialize: function() {
    this.dirtyComponentsLength = dirtyComponents.length;
  },
  close: function() {
    if (this.dirtyComponentsLength !== dirtyComponents.length) {
      // Additional updates were enqueued by componentDidUpdate handlers or
      // similar; before our own UPDATE_QUEUEING wrapper closes, we want to run
      // these new updates so that if A's componentDidUpdate calls setState on
      // B, B will update before the callback A's updater provided when calling
      // setState.
      dirtyComponents.splice(0, this.dirtyComponentsLength);
      flushBatchedUpdates();
    } else {
      dirtyComponents.length = 0;
    }
  }
};

var UPDATE_QUEUEING = {
  initialize: function() {
    this.callbackQueue.reset();
  },
  close: function() {
    this.callbackQueue.notifyAll();
  }
};

var TRANSACTION_WRAPPERS = [NESTED_UPDATES, UPDATE_QUEUEING];

function ReactUpdatesFlushTransaction() {
  this.reinitializeTransaction();
  this.dirtyComponentsLength = null;
  this.callbackQueue = CallbackQueue.getPooled();
  this.reconcileTransaction =
    ReactUpdates.ReactReconcileTransaction.getPooled();
}

assign(
  ReactUpdatesFlushTransaction.prototype,
  Transaction.Mixin, {
  getTransactionWrappers: function() {
    return TRANSACTION_WRAPPERS;
  },

  destructor: function() {
    this.dirtyComponentsLength = null;
    CallbackQueue.release(this.callbackQueue);
    this.callbackQueue = null;
    ReactUpdates.ReactReconcileTransaction.release(this.reconcileTransaction);
    this.reconcileTransaction = null;
  },

  perform: function(method, scope, a) {
    // Essentially calls `this.reconcileTransaction.perform(method, scope, a)`
    // with this transaction's wrappers around it.
    return Transaction.Mixin.perform.call(
      this,
      this.reconcileTransaction.perform,
      this.reconcileTransaction,
      method,
      scope,
      a
    );
  }
});

PooledClass.addPoolingTo(ReactUpdatesFlushTransaction);

function batchedUpdates(callback, a, b, c, d) {
  ensureInjected();
  batchingStrategy.batchedUpdates(callback, a, b, c, d);
}

/**
 * Array comparator for ReactComponents by mount ordering.
 *
 * @param {ReactComponent} c1 first component you're comparing
 * @param {ReactComponent} c2 second component you're comparing
 * @return {number} Return value usable by Array.prototype.sort().
 */
function mountOrderComparator(c1, c2) {
  return c1._mountOrder - c2._mountOrder;
}

function runBatchedUpdates(transaction) {
  var len = transaction.dirtyComponentsLength;
  ("production" !== process.env.NODE_ENV ? invariant(
    len === dirtyComponents.length,
    'Expected flush transaction\'s stored dirty-components length (%s) to ' +
    'match dirty-components array length (%s).',
    len,
    dirtyComponents.length
  ) : invariant(len === dirtyComponents.length));

  // Since reconciling a component higher in the owner hierarchy usually (not
  // always -- see shouldComponentUpdate()) will reconcile children, reconcile
  // them before their children by sorting the array.
  dirtyComponents.sort(mountOrderComparator);

  for (var i = 0; i < len; i++) {
    // If a component is unmounted before pending changes apply, it will still
    // be here, but we assume that it has cleared its _pendingCallbacks and
    // that performUpdateIfNecessary is a noop.
    var component = dirtyComponents[i];

    // If performUpdateIfNecessary happens to enqueue any new updates, we
    // shouldn't execute the callbacks until the next render happens, so
    // stash the callbacks first
    var callbacks = component._pendingCallbacks;
    component._pendingCallbacks = null;

    ReactReconciler.performUpdateIfNecessary(
      component,
      transaction.reconcileTransaction
    );

    if (callbacks) {
      for (var j = 0; j < callbacks.length; j++) {
        transaction.callbackQueue.enqueue(
          callbacks[j],
          component.getPublicInstance()
        );
      }
    }
  }
}

var flushBatchedUpdates = function() {
  // ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents
  // array and perform any updates enqueued by mount-ready handlers (i.e.,
  // componentDidUpdate) but we need to check here too in order to catch
  // updates enqueued by setState callbacks and asap calls.
  while (dirtyComponents.length || asapEnqueued) {
    if (dirtyComponents.length) {
      var transaction = ReactUpdatesFlushTransaction.getPooled();
      transaction.perform(runBatchedUpdates, null, transaction);
      ReactUpdatesFlushTransaction.release(transaction);
    }

    if (asapEnqueued) {
      asapEnqueued = false;
      var queue = asapCallbackQueue;
      asapCallbackQueue = CallbackQueue.getPooled();
      queue.notifyAll();
      CallbackQueue.release(queue);
    }
  }
};
flushBatchedUpdates = ReactPerf.measure(
  'ReactUpdates',
  'flushBatchedUpdates',
  flushBatchedUpdates
);

/**
 * Mark a component as needing a rerender, adding an optional callback to a
 * list of functions which will be executed once the rerender occurs.
 */
function enqueueUpdate(component) {
  ensureInjected();

  // Various parts of our code (such as ReactCompositeComponent's
  // _renderValidatedComponent) assume that calls to render aren't nested;
  // verify that that's the case. (This is called by each top-level update
  // function, like setProps, setState, forceUpdate, etc.; creation and
  // destruction of top-level components is guarded in ReactMount.)
  ("production" !== process.env.NODE_ENV ? warning(
    ReactCurrentOwner.current == null,
    'enqueueUpdate(): Render methods should be a pure function of props ' +
    'and state; triggering nested component updates from render is not ' +
    'allowed. If necessary, trigger nested updates in ' +
    'componentDidUpdate.'
  ) : null);

  if (!batchingStrategy.isBatchingUpdates) {
    batchingStrategy.batchedUpdates(enqueueUpdate, component);
    return;
  }

  dirtyComponents.push(component);
}

/**
 * Enqueue a callback to be run at the end of the current batching cycle. Throws
 * if no updates are currently being performed.
 */
function asap(callback, context) {
  ("production" !== process.env.NODE_ENV ? invariant(
    batchingStrategy.isBatchingUpdates,
    'ReactUpdates.asap: Can\'t enqueue an asap callback in a context where' +
    'updates are not being batched.'
  ) : invariant(batchingStrategy.isBatchingUpdates));
  asapCallbackQueue.enqueue(callback, context);
  asapEnqueued = true;
}

var ReactUpdatesInjection = {
  injectReconcileTransaction: function(ReconcileTransaction) {
    ("production" !== process.env.NODE_ENV ? invariant(
      ReconcileTransaction,
      'ReactUpdates: must provide a reconcile transaction class'
    ) : invariant(ReconcileTransaction));
    ReactUpdates.ReactReconcileTransaction = ReconcileTransaction;
  },

  injectBatchingStrategy: function(_batchingStrategy) {
    ("production" !== process.env.NODE_ENV ? invariant(
      _batchingStrategy,
      'ReactUpdates: must provide a batching strategy'
    ) : invariant(_batchingStrategy));
    ("production" !== process.env.NODE_ENV ? invariant(
      typeof _batchingStrategy.batchedUpdates === 'function',
      'ReactUpdates: must provide a batchedUpdates() function'
    ) : invariant(typeof _batchingStrategy.batchedUpdates === 'function'));
    ("production" !== process.env.NODE_ENV ? invariant(
      typeof _batchingStrategy.isBatchingUpdates === 'boolean',
      'ReactUpdates: must provide an isBatchingUpdates boolean attribute'
    ) : invariant(typeof _batchingStrategy.isBatchingUpdates === 'boolean'));
    batchingStrategy = _batchingStrategy;
  }
};

var ReactUpdates = {
  /**
   * React references `ReactReconcileTransaction` using this property in order
   * to allow dependency injection.
   *
   * @internal
   */
  ReactReconcileTransaction: null,

  batchedUpdates: batchedUpdates,
  enqueueUpdate: enqueueUpdate,
  flushBatchedUpdates: flushBatchedUpdates,
  injection: ReactUpdatesInjection,
  asap: asap
};

module.exports = ReactUpdates;

}).call(this,require("1YiZ5S"))
},{"./CallbackQueue":18,"./Object.assign":40,"./PooledClass":41,"./ReactCurrentOwner":56,"./ReactPerf":93,"./ReactReconciler":100,"./Transaction":128,"./invariant":162,"./warning":183,"1YiZ5S":5}],112:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ReactWithAddons
 */

/**
 * This module exists purely in the open source project, and is meant as a way
 * to create a separate standalone build of React. This build has "addons", or
 * functionality we've built and think might be useful but doesn't have a good
 * place to live inside React core.
 */

'use strict';

var LinkedStateMixin = require("./LinkedStateMixin");
var React = require("./React");
var ReactComponentWithPureRenderMixin =
  require("./ReactComponentWithPureRenderMixin");
var ReactCSSTransitionGroup = require("./ReactCSSTransitionGroup");
var ReactFragment = require("./ReactFragment");
var ReactTransitionGroup = require("./ReactTransitionGroup");
var ReactUpdates = require("./ReactUpdates");

var cx = require("./cx");
var cloneWithProps = require("./cloneWithProps");
var update = require("./update");

React.addons = {
  CSSTransitionGroup: ReactCSSTransitionGroup,
  LinkedStateMixin: LinkedStateMixin,
  PureRenderMixin: ReactComponentWithPureRenderMixin,
  TransitionGroup: ReactTransitionGroup,

  batchedUpdates: ReactUpdates.batchedUpdates,
  classSet: cx,
  cloneWithProps: cloneWithProps,
  createFragment: ReactFragment.create,
  update: update
};

if ("production" !== process.env.NODE_ENV) {
  React.addons.Perf = require("./ReactDefaultPerf");
  React.addons.TestUtils = require("./ReactTestUtils");
}

module.exports = React;

}).call(this,require("1YiZ5S"))
},{"./LinkedStateMixin":36,"./React":42,"./ReactCSSTransitionGroup":45,"./ReactComponentWithPureRenderMixin":53,"./ReactDefaultPerf":72,"./ReactFragment":80,"./ReactTestUtils":106,"./ReactTransitionGroup":109,"./ReactUpdates":111,"./cloneWithProps":134,"./cx":139,"./update":182,"1YiZ5S":5}],113:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule SVGDOMPropertyConfig
 */

/*jslint bitwise: true*/

'use strict';

var DOMProperty = require("./DOMProperty");

var MUST_USE_ATTRIBUTE = DOMProperty.injection.MUST_USE_ATTRIBUTE;

var SVGDOMPropertyConfig = {
  Properties: {
    clipPath: MUST_USE_ATTRIBUTE,
    cx: MUST_USE_ATTRIBUTE,
    cy: MUST_USE_ATTRIBUTE,
    d: MUST_USE_ATTRIBUTE,
    dx: MUST_USE_ATTRIBUTE,
    dy: MUST_USE_ATTRIBUTE,
    fill: MUST_USE_ATTRIBUTE,
    fillOpacity: MUST_USE_ATTRIBUTE,
    fontFamily: MUST_USE_ATTRIBUTE,
    fontSize: MUST_USE_ATTRIBUTE,
    fx: MUST_USE_ATTRIBUTE,
    fy: MUST_USE_ATTRIBUTE,
    gradientTransform: MUST_USE_ATTRIBUTE,
    gradientUnits: MUST_USE_ATTRIBUTE,
    markerEnd: MUST_USE_ATTRIBUTE,
    markerMid: MUST_USE_ATTRIBUTE,
    markerStart: MUST_USE_ATTRIBUTE,
    offset: MUST_USE_ATTRIBUTE,
    opacity: MUST_USE_ATTRIBUTE,
    patternContentUnits: MUST_USE_ATTRIBUTE,
    patternUnits: MUST_USE_ATTRIBUTE,
    points: MUST_USE_ATTRIBUTE,
    preserveAspectRatio: MUST_USE_ATTRIBUTE,
    r: MUST_USE_ATTRIBUTE,
    rx: MUST_USE_ATTRIBUTE,
    ry: MUST_USE_ATTRIBUTE,
    spreadMethod: MUST_USE_ATTRIBUTE,
    stopColor: MUST_USE_ATTRIBUTE,
    stopOpacity: MUST_USE_ATTRIBUTE,
    stroke: MUST_USE_ATTRIBUTE,
    strokeDasharray: MUST_USE_ATTRIBUTE,
    strokeLinecap: MUST_USE_ATTRIBUTE,
    strokeOpacity: MUST_USE_ATTRIBUTE,
    strokeWidth: MUST_USE_ATTRIBUTE,
    textAnchor: MUST_USE_ATTRIBUTE,
    transform: MUST_USE_ATTRIBUTE,
    version: MUST_USE_ATTRIBUTE,
    viewBox: MUST_USE_ATTRIBUTE,
    x1: MUST_USE_ATTRIBUTE,
    x2: MUST_USE_ATTRIBUTE,
    x: MUST_USE_ATTRIBUTE,
    y1: MUST_USE_ATTRIBUTE,
    y2: MUST_USE_ATTRIBUTE,
    y: MUST_USE_ATTRIBUTE
  },
  DOMAttributeNames: {
    clipPath: 'clip-path',
    fillOpacity: 'fill-opacity',
    fontFamily: 'font-family',
    fontSize: 'font-size',
    gradientTransform: 'gradientTransform',
    gradientUnits: 'gradientUnits',
    markerEnd: 'marker-end',
    markerMid: 'marker-mid',
    markerStart: 'marker-start',
    patternContentUnits: 'patternContentUnits',
    patternUnits: 'patternUnits',
    preserveAspectRatio: 'preserveAspectRatio',
    spreadMethod: 'spreadMethod',
    stopColor: 'stop-color',
    stopOpacity: 'stop-opacity',
    strokeDasharray: 'stroke-dasharray',
    strokeLinecap: 'stroke-linecap',
    strokeOpacity: 'stroke-opacity',
    strokeWidth: 'stroke-width',
    textAnchor: 'text-anchor',
    viewBox: 'viewBox'
  }
};

module.exports = SVGDOMPropertyConfig;

},{"./DOMProperty":22}],114:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule SelectEventPlugin
 */

'use strict';

var EventConstants = require("./EventConstants");
var EventPropagators = require("./EventPropagators");
var ReactInputSelection = require("./ReactInputSelection");
var SyntheticEvent = require("./SyntheticEvent");

var getActiveElement = require("./getActiveElement");
var isTextInputElement = require("./isTextInputElement");
var keyOf = require("./keyOf");
var shallowEqual = require("./shallowEqual");

var topLevelTypes = EventConstants.topLevelTypes;

var eventTypes = {
  select: {
    phasedRegistrationNames: {
      bubbled: keyOf({onSelect: null}),
      captured: keyOf({onSelectCapture: null})
    },
    dependencies: [
      topLevelTypes.topBlur,
      topLevelTypes.topContextMenu,
      topLevelTypes.topFocus,
      topLevelTypes.topKeyDown,
      topLevelTypes.topMouseDown,
      topLevelTypes.topMouseUp,
      topLevelTypes.topSelectionChange
    ]
  }
};

var activeElement = null;
var activeElementID = null;
var lastSelection = null;
var mouseDown = false;

/**
 * Get an object which is a unique representation of the current selection.
 *
 * The return value will not be consistent across nodes or browsers, but
 * two identical selections on the same node will return identical objects.
 *
 * @param {DOMElement} node
 * @param {object}
 */
function getSelection(node) {
  if ('selectionStart' in node &&
      ReactInputSelection.hasSelectionCapabilities(node)) {
    return {
      start: node.selectionStart,
      end: node.selectionEnd
    };
  } else if (window.getSelection) {
    var selection = window.getSelection();
    return {
      anchorNode: selection.anchorNode,
      anchorOffset: selection.anchorOffset,
      focusNode: selection.focusNode,
      focusOffset: selection.focusOffset
    };
  } else if (document.selection) {
    var range = document.selection.createRange();
    return {
      parentElement: range.parentElement(),
      text: range.text,
      top: range.boundingTop,
      left: range.boundingLeft
    };
  }
}

/**
 * Poll selection to see whether it's changed.
 *
 * @param {object} nativeEvent
 * @return {?SyntheticEvent}
 */
function constructSelectEvent(nativeEvent) {
  // Ensure we have the right element, and that the user is not dragging a
  // selection (this matches native `select` event behavior). In HTML5, select
  // fires only on input and textarea thus if there's no focused element we
  // won't dispatch.
  if (mouseDown ||
      activeElement == null ||
      activeElement !== getActiveElement()) {
    return null;
  }

  // Only fire when selection has actually changed.
  var currentSelection = getSelection(activeElement);
  if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {
    lastSelection = currentSelection;

    var syntheticEvent = SyntheticEvent.getPooled(
      eventTypes.select,
      activeElementID,
      nativeEvent
    );

    syntheticEvent.type = 'select';
    syntheticEvent.target = activeElement;

    EventPropagators.accumulateTwoPhaseDispatches(syntheticEvent);

    return syntheticEvent;
  }
}

/**
 * This plugin creates an `onSelect` event that normalizes select events
 * across form elements.
 *
 * Supported elements are:
 * - input (see `isTextInputElement`)
 * - textarea
 * - contentEditable
 *
 * This differs from native browser implementations in the following ways:
 * - Fires on contentEditable fields as well as inputs.
 * - Fires for collapsed selection.
 * - Fires after user input.
 */
var SelectEventPlugin = {

  eventTypes: eventTypes,

  /**
   * @param {string} topLevelType Record from `EventConstants`.
   * @param {DOMEventTarget} topLevelTarget The listening component root node.
   * @param {string} topLevelTargetID ID of `topLevelTarget`.
   * @param {object} nativeEvent Native browser event.
   * @return {*} An accumulation of synthetic events.
   * @see {EventPluginHub.extractEvents}
   */
  extractEvents: function(
      topLevelType,
      topLevelTarget,
      topLevelTargetID,
      nativeEvent) {

    switch (topLevelType) {
      // Track the input node that has focus.
      case topLevelTypes.topFocus:
        if (isTextInputElement(topLevelTarget) ||
            topLevelTarget.contentEditable === 'true') {
          activeElement = topLevelTarget;
          activeElementID = topLevelTargetID;
          lastSelection = null;
        }
        break;
      case topLevelTypes.topBlur:
        activeElement = null;
        activeElementID = null;
        lastSelection = null;
        break;

      // Don't fire the event while the user is dragging. This matches the
      // semantics of the native select event.
      case topLevelTypes.topMouseDown:
        mouseDown = true;
        break;
      case topLevelTypes.topContextMenu:
      case topLevelTypes.topMouseUp:
        mouseDown = false;
        return constructSelectEvent(nativeEvent);

      // Chrome and IE fire non-standard event when selection is changed (and
      // sometimes when it hasn't).
      // Firefox doesn't support selectionchange, so check selection status
      // after each key entry. The selection changes after keydown and before
      // keyup, but we check on keydown as well in the case of holding down a
      // key, when multiple keydown events are fired but only one keyup is.
      case topLevelTypes.topSelectionChange:
      case topLevelTypes.topKeyDown:
      case topLevelTypes.topKeyUp:
        return constructSelectEvent(nativeEvent);
    }
  }
};

module.exports = SelectEventPlugin;

},{"./EventConstants":27,"./EventPropagators":32,"./ReactInputSelection":82,"./SyntheticEvent":120,"./getActiveElement":148,"./isTextInputElement":165,"./keyOf":169,"./shallowEqual":178}],115:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ServerReactRootIndex
 * @typechecks
 */

'use strict';

/**
 * Size of the reactRoot ID space. We generate random numbers for React root
 * IDs and if there's a collision the events and DOM update system will
 * get confused. In the future we need a way to generate GUIDs but for
 * now this will work on a smaller scale.
 */
var GLOBAL_MOUNT_POINT_MAX = Math.pow(2, 53);

var ServerReactRootIndex = {
  createReactRootIndex: function() {
    return Math.ceil(Math.random() * GLOBAL_MOUNT_POINT_MAX);
  }
};

module.exports = ServerReactRootIndex;

},{}],116:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule SimpleEventPlugin
 */

'use strict';

var EventConstants = require("./EventConstants");
var EventPluginUtils = require("./EventPluginUtils");
var EventPropagators = require("./EventPropagators");
var SyntheticClipboardEvent = require("./SyntheticClipboardEvent");
var SyntheticEvent = require("./SyntheticEvent");
var SyntheticFocusEvent = require("./SyntheticFocusEvent");
var SyntheticKeyboardEvent = require("./SyntheticKeyboardEvent");
var SyntheticMouseEvent = require("./SyntheticMouseEvent");
var SyntheticDragEvent = require("./SyntheticDragEvent");
var SyntheticTouchEvent = require("./SyntheticTouchEvent");
var SyntheticUIEvent = require("./SyntheticUIEvent");
var SyntheticWheelEvent = require("./SyntheticWheelEvent");

var getEventCharCode = require("./getEventCharCode");

var invariant = require("./invariant");
var keyOf = require("./keyOf");
var warning = require("./warning");

var topLevelTypes = EventConstants.topLevelTypes;

var eventTypes = {
  blur: {
    phasedRegistrationNames: {
      bubbled: keyOf({onBlur: true}),
      captured: keyOf({onBlurCapture: true})
    }
  },
  click: {
    phasedRegistrationNames: {
      bubbled: keyOf({onClick: true}),
      captured: keyOf({onClickCapture: true})
    }
  },
  contextMenu: {
    phasedRegistrationNames: {
      bubbled: keyOf({onContextMenu: true}),
      captured: keyOf({onContextMenuCapture: true})
    }
  },
  copy: {
    phasedRegistrationNames: {
      bubbled: keyOf({onCopy: true}),
      captured: keyOf({onCopyCapture: true})
    }
  },
  cut: {
    phasedRegistrationNames: {
      bubbled: keyOf({onCut: true}),
      captured: keyOf({onCutCapture: true})
    }
  },
  doubleClick: {
    phasedRegistrationNames: {
      bubbled: keyOf({onDoubleClick: true}),
      captured: keyOf({onDoubleClickCapture: true})
    }
  },
  drag: {
    phasedRegistrationNames: {
      bubbled: keyOf({onDrag: true}),
      captured: keyOf({onDragCapture: true})
    }
  },
  dragEnd: {
    phasedRegistrationNames: {
      bubbled: keyOf({onDragEnd: true}),
      captured: keyOf({onDragEndCapture: true})
    }
  },
  dragEnter: {
    phasedRegistrationNames: {
      bubbled: keyOf({onDragEnter: true}),
      captured: keyOf({onDragEnterCapture: true})
    }
  },
  dragExit: {
    phasedRegistrationNames: {
      bubbled: keyOf({onDragExit: true}),
      captured: keyOf({onDragExitCapture: true})
    }
  },
  dragLeave: {
    phasedRegistrationNames: {
      bubbled: keyOf({onDragLeave: true}),
      captured: keyOf({onDragLeaveCapture: true})
    }
  },
  dragOver: {
    phasedRegistrationNames: {
      bubbled: keyOf({onDragOver: true}),
      captured: keyOf({onDragOverCapture: true})
    }
  },
  dragStart: {
    phasedRegistrationNames: {
      bubbled: keyOf({onDragStart: true}),
      captured: keyOf({onDragStartCapture: true})
    }
  },
  drop: {
    phasedRegistrationNames: {
      bubbled: keyOf({onDrop: true}),
      captured: keyOf({onDropCapture: true})
    }
  },
  focus: {
    phasedRegistrationNames: {
      bubbled: keyOf({onFocus: true}),
      captured: keyOf({onFocusCapture: true})
    }
  },
  input: {
    phasedRegistrationNames: {
      bubbled: keyOf({onInput: true}),
      captured: keyOf({onInputCapture: true})
    }
  },
  keyDown: {
    phasedRegistrationNames: {
      bubbled: keyOf({onKeyDown: true}),
      captured: keyOf({onKeyDownCapture: true})
    }
  },
  keyPress: {
    phasedRegistrationNames: {
      bubbled: keyOf({onKeyPress: true}),
      captured: keyOf({onKeyPressCapture: true})
    }
  },
  keyUp: {
    phasedRegistrationNames: {
      bubbled: keyOf({onKeyUp: true}),
      captured: keyOf({onKeyUpCapture: true})
    }
  },
  load: {
    phasedRegistrationNames: {
      bubbled: keyOf({onLoad: true}),
      captured: keyOf({onLoadCapture: true})
    }
  },
  error: {
    phasedRegistrationNames: {
      bubbled: keyOf({onError: true}),
      captured: keyOf({onErrorCapture: true})
    }
  },
  // Note: We do not allow listening to mouseOver events. Instead, use the
  // onMouseEnter/onMouseLeave created by `EnterLeaveEventPlugin`.
  mouseDown: {
    phasedRegistrationNames: {
      bubbled: keyOf({onMouseDown: true}),
      captured: keyOf({onMouseDownCapture: true})
    }
  },
  mouseMove: {
    phasedRegistrationNames: {
      bubbled: keyOf({onMouseMove: true}),
      captured: keyOf({onMouseMoveCapture: true})
    }
  },
  mouseOut: {
    phasedRegistrationNames: {
      bubbled: keyOf({onMouseOut: true}),
      captured: keyOf({onMouseOutCapture: true})
    }
  },
  mouseOver: {
    phasedRegistrationNames: {
      bubbled: keyOf({onMouseOver: true}),
      captured: keyOf({onMouseOverCapture: true})
    }
  },
  mouseUp: {
    phasedRegistrationNames: {
      bubbled: keyOf({onMouseUp: true}),
      captured: keyOf({onMouseUpCapture: true})
    }
  },
  paste: {
    phasedRegistrationNames: {
      bubbled: keyOf({onPaste: true}),
      captured: keyOf({onPasteCapture: true})
    }
  },
  reset: {
    phasedRegistrationNames: {
      bubbled: keyOf({onReset: true}),
      captured: keyOf({onResetCapture: true})
    }
  },
  scroll: {
    phasedRegistrationNames: {
      bubbled: keyOf({onScroll: true}),
      captured: keyOf({onScrollCapture: true})
    }
  },
  submit: {
    phasedRegistrationNames: {
      bubbled: keyOf({onSubmit: true}),
      captured: keyOf({onSubmitCapture: true})
    }
  },
  touchCancel: {
    phasedRegistrationNames: {
      bubbled: keyOf({onTouchCancel: true}),
      captured: keyOf({onTouchCancelCapture: true})
    }
  },
  touchEnd: {
    phasedRegistrationNames: {
      bubbled: keyOf({onTouchEnd: true}),
      captured: keyOf({onTouchEndCapture: true})
    }
  },
  touchMove: {
    phasedRegistrationNames: {
      bubbled: keyOf({onTouchMove: true}),
      captured: keyOf({onTouchMoveCapture: true})
    }
  },
  touchStart: {
    phasedRegistrationNames: {
      bubbled: keyOf({onTouchStart: true}),
      captured: keyOf({onTouchStartCapture: true})
    }
  },
  wheel: {
    phasedRegistrationNames: {
      bubbled: keyOf({onWheel: true}),
      captured: keyOf({onWheelCapture: true})
    }
  }
};

var topLevelEventsToDispatchConfig = {
  topBlur:        eventTypes.blur,
  topClick:       eventTypes.click,
  topContextMenu: eventTypes.contextMenu,
  topCopy:        eventTypes.copy,
  topCut:         eventTypes.cut,
  topDoubleClick: eventTypes.doubleClick,
  topDrag:        eventTypes.drag,
  topDragEnd:     eventTypes.dragEnd,
  topDragEnter:   eventTypes.dragEnter,
  topDragExit:    eventTypes.dragExit,
  topDragLeave:   eventTypes.dragLeave,
  topDragOver:    eventTypes.dragOver,
  topDragStart:   eventTypes.dragStart,
  topDrop:        eventTypes.drop,
  topError:       eventTypes.error,
  topFocus:       eventTypes.focus,
  topInput:       eventTypes.input,
  topKeyDown:     eventTypes.keyDown,
  topKeyPress:    eventTypes.keyPress,
  topKeyUp:       eventTypes.keyUp,
  topLoad:        eventTypes.load,
  topMouseDown:   eventTypes.mouseDown,
  topMouseMove:   eventTypes.mouseMove,
  topMouseOut:    eventTypes.mouseOut,
  topMouseOver:   eventTypes.mouseOver,
  topMouseUp:     eventTypes.mouseUp,
  topPaste:       eventTypes.paste,
  topReset:       eventTypes.reset,
  topScroll:      eventTypes.scroll,
  topSubmit:      eventTypes.submit,
  topTouchCancel: eventTypes.touchCancel,
  topTouchEnd:    eventTypes.touchEnd,
  topTouchMove:   eventTypes.touchMove,
  topTouchStart:  eventTypes.touchStart,
  topWheel:       eventTypes.wheel
};

for (var type in topLevelEventsToDispatchConfig) {
  topLevelEventsToDispatchConfig[type].dependencies = [type];
}

var SimpleEventPlugin = {

  eventTypes: eventTypes,

  /**
   * Same as the default implementation, except cancels the event when return
   * value is false. This behavior will be disabled in a future release.
   *
   * @param {object} Event to be dispatched.
   * @param {function} Application-level callback.
   * @param {string} domID DOM ID to pass to the callback.
   */
  executeDispatch: function(event, listener, domID) {
    var returnValue = EventPluginUtils.executeDispatch(event, listener, domID);

    ("production" !== process.env.NODE_ENV ? warning(
      typeof returnValue !== 'boolean',
      'Returning `false` from an event handler is deprecated and will be ' +
      'ignored in a future release. Instead, manually call ' +
      'e.stopPropagation() or e.preventDefault(), as appropriate.'
    ) : null);

    if (returnValue === false) {
      event.stopPropagation();
      event.preventDefault();
    }
  },

  /**
   * @param {string} topLevelType Record from `EventConstants`.
   * @param {DOMEventTarget} topLevelTarget The listening component root node.
   * @param {string} topLevelTargetID ID of `topLevelTarget`.
   * @param {object} nativeEvent Native browser event.
   * @return {*} An accumulation of synthetic events.
   * @see {EventPluginHub.extractEvents}
   */
  extractEvents: function(
      topLevelType,
      topLevelTarget,
      topLevelTargetID,
      nativeEvent) {
    var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];
    if (!dispatchConfig) {
      return null;
    }
    var EventConstructor;
    switch (topLevelType) {
      case topLevelTypes.topInput:
      case topLevelTypes.topLoad:
      case topLevelTypes.topError:
      case topLevelTypes.topReset:
      case topLevelTypes.topSubmit:
        // HTML Events
        // @see http://www.w3.org/TR/html5/index.html#events-0
        EventConstructor = SyntheticEvent;
        break;
      case topLevelTypes.topKeyPress:
        // FireFox creates a keypress event for function keys too. This removes
        // the unwanted keypress events. Enter is however both printable and
        // non-printable. One would expect Tab to be as well (but it isn't).
        if (getEventCharCode(nativeEvent) === 0) {
          return null;
        }
        /* falls through */
      case topLevelTypes.topKeyDown:
      case topLevelTypes.topKeyUp:
        EventConstructor = SyntheticKeyboardEvent;
        break;
      case topLevelTypes.topBlur:
      case topLevelTypes.topFocus:
        EventConstructor = SyntheticFocusEvent;
        break;
      case topLevelTypes.topClick:
        // Firefox creates a click event on right mouse clicks. This removes the
        // unwanted click events.
        if (nativeEvent.button === 2) {
          return null;
        }
        /* falls through */
      case topLevelTypes.topContextMenu:
      case topLevelTypes.topDoubleClick:
      case topLevelTypes.topMouseDown:
      case topLevelTypes.topMouseMove:
      case topLevelTypes.topMouseOut:
      case topLevelTypes.topMouseOver:
      case topLevelTypes.topMouseUp:
        EventConstructor = SyntheticMouseEvent;
        break;
      case topLevelTypes.topDrag:
      case topLevelTypes.topDragEnd:
      case topLevelTypes.topDragEnter:
      case topLevelTypes.topDragExit:
      case topLevelTypes.topDragLeave:
      case topLevelTypes.topDragOver:
      case topLevelTypes.topDragStart:
      case topLevelTypes.topDrop:
        EventConstructor = SyntheticDragEvent;
        break;
      case topLevelTypes.topTouchCancel:
      case topLevelTypes.topTouchEnd:
      case topLevelTypes.topTouchMove:
      case topLevelTypes.topTouchStart:
        EventConstructor = SyntheticTouchEvent;
        break;
      case topLevelTypes.topScroll:
        EventConstructor = SyntheticUIEvent;
        break;
      case topLevelTypes.topWheel:
        EventConstructor = SyntheticWheelEvent;
        break;
      case topLevelTypes.topCopy:
      case topLevelTypes.topCut:
      case topLevelTypes.topPaste:
        EventConstructor = SyntheticClipboardEvent;
        break;
    }
    ("production" !== process.env.NODE_ENV ? invariant(
      EventConstructor,
      'SimpleEventPlugin: Unhandled event type, `%s`.',
      topLevelType
    ) : invariant(EventConstructor));
    var event = EventConstructor.getPooled(
      dispatchConfig,
      topLevelTargetID,
      nativeEvent
    );
    EventPropagators.accumulateTwoPhaseDispatches(event);
    return event;
  }

};

module.exports = SimpleEventPlugin;

}).call(this,require("1YiZ5S"))
},{"./EventConstants":27,"./EventPluginUtils":31,"./EventPropagators":32,"./SyntheticClipboardEvent":117,"./SyntheticDragEvent":119,"./SyntheticEvent":120,"./SyntheticFocusEvent":121,"./SyntheticKeyboardEvent":123,"./SyntheticMouseEvent":124,"./SyntheticTouchEvent":125,"./SyntheticUIEvent":126,"./SyntheticWheelEvent":127,"./getEventCharCode":149,"./invariant":162,"./keyOf":169,"./warning":183,"1YiZ5S":5}],117:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule SyntheticClipboardEvent
 * @typechecks static-only
 */

'use strict';

var SyntheticEvent = require("./SyntheticEvent");

/**
 * @interface Event
 * @see http://www.w3.org/TR/clipboard-apis/
 */
var ClipboardEventInterface = {
  clipboardData: function(event) {
    return (
      'clipboardData' in event ?
        event.clipboardData :
        window.clipboardData
    );
  }
};

/**
 * @param {object} dispatchConfig Configuration used to dispatch this event.
 * @param {string} dispatchMarker Marker identifying the event target.
 * @param {object} nativeEvent Native browser event.
 * @extends {SyntheticUIEvent}
 */
function SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent) {
  SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);
}

SyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);

module.exports = SyntheticClipboardEvent;

},{"./SyntheticEvent":120}],118:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule SyntheticCompositionEvent
 * @typechecks static-only
 */

'use strict';

var SyntheticEvent = require("./SyntheticEvent");

/**
 * @interface Event
 * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents
 */
var CompositionEventInterface = {
  data: null
};

/**
 * @param {object} dispatchConfig Configuration used to dispatch this event.
 * @param {string} dispatchMarker Marker identifying the event target.
 * @param {object} nativeEvent Native browser event.
 * @extends {SyntheticUIEvent}
 */
function SyntheticCompositionEvent(
  dispatchConfig,
  dispatchMarker,
  nativeEvent) {
  SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);
}

SyntheticEvent.augmentClass(
  SyntheticCompositionEvent,
  CompositionEventInterface
);

module.exports = SyntheticCompositionEvent;

},{"./SyntheticEvent":120}],119:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule SyntheticDragEvent
 * @typechecks static-only
 */

'use strict';

var SyntheticMouseEvent = require("./SyntheticMouseEvent");

/**
 * @interface DragEvent
 * @see http://www.w3.org/TR/DOM-Level-3-Events/
 */
var DragEventInterface = {
  dataTransfer: null
};

/**
 * @param {object} dispatchConfig Configuration used to dispatch this event.
 * @param {string} dispatchMarker Marker identifying the event target.
 * @param {object} nativeEvent Native browser event.
 * @extends {SyntheticUIEvent}
 */
function SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent) {
  SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);
}

SyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);

module.exports = SyntheticDragEvent;

},{"./SyntheticMouseEvent":124}],120:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule SyntheticEvent
 * @typechecks static-only
 */

'use strict';

var PooledClass = require("./PooledClass");

var assign = require("./Object.assign");
var emptyFunction = require("./emptyFunction");
var getEventTarget = require("./getEventTarget");

/**
 * @interface Event
 * @see http://www.w3.org/TR/DOM-Level-3-Events/
 */
var EventInterface = {
  type: null,
  target: getEventTarget,
  // currentTarget is set when dispatching; no use in copying it here
  currentTarget: emptyFunction.thatReturnsNull,
  eventPhase: null,
  bubbles: null,
  cancelable: null,
  timeStamp: function(event) {
    return event.timeStamp || Date.now();
  },
  defaultPrevented: null,
  isTrusted: null
};

/**
 * Synthetic events are dispatched by event plugins, typically in response to a
 * top-level event delegation handler.
 *
 * These systems should generally use pooling to reduce the frequency of garbage
 * collection. The system should check `isPersistent` to determine whether the
 * event should be released into the pool after being dispatched. Users that
 * need a persisted event should invoke `persist`.
 *
 * Synthetic events (and subclasses) implement the DOM Level 3 Events API by
 * normalizing browser quirks. Subclasses do not necessarily have to implement a
 * DOM interface; custom application-specific events can also subclass this.
 *
 * @param {object} dispatchConfig Configuration used to dispatch this event.
 * @param {string} dispatchMarker Marker identifying the event target.
 * @param {object} nativeEvent Native browser event.
 */
function SyntheticEvent(dispatchConfig, dispatchMarker, nativeEvent) {
  this.dispatchConfig = dispatchConfig;
  this.dispatchMarker = dispatchMarker;
  this.nativeEvent = nativeEvent;

  var Interface = this.constructor.Interface;
  for (var propName in Interface) {
    if (!Interface.hasOwnProperty(propName)) {
      continue;
    }
    var normalize = Interface[propName];
    if (normalize) {
      this[propName] = normalize(nativeEvent);
    } else {
      this[propName] = nativeEvent[propName];
    }
  }

  var defaultPrevented = nativeEvent.defaultPrevented != null ?
    nativeEvent.defaultPrevented :
    nativeEvent.returnValue === false;
  if (defaultPrevented) {
    this.isDefaultPrevented = emptyFunction.thatReturnsTrue;
  } else {
    this.isDefaultPrevented = emptyFunction.thatReturnsFalse;
  }
  this.isPropagationStopped = emptyFunction.thatReturnsFalse;
}

assign(SyntheticEvent.prototype, {

  preventDefault: function() {
    this.defaultPrevented = true;
    var event = this.nativeEvent;
    if (event.preventDefault) {
      event.preventDefault();
    } else {
      event.returnValue = false;
    }
    this.isDefaultPrevented = emptyFunction.thatReturnsTrue;
  },

  stopPropagation: function() {
    var event = this.nativeEvent;
    if (event.stopPropagation) {
      event.stopPropagation();
    } else {
      event.cancelBubble = true;
    }
    this.isPropagationStopped = emptyFunction.thatReturnsTrue;
  },

  /**
   * We release all dispatched `SyntheticEvent`s after each event loop, adding
   * them back into the pool. This allows a way to hold onto a reference that
   * won't be added back into the pool.
   */
  persist: function() {
    this.isPersistent = emptyFunction.thatReturnsTrue;
  },

  /**
   * Checks if this event should be released back into the pool.
   *
   * @return {boolean} True if this should not be released, false otherwise.
   */
  isPersistent: emptyFunction.thatReturnsFalse,

  /**
   * `PooledClass` looks for `destructor` on each instance it releases.
   */
  destructor: function() {
    var Interface = this.constructor.Interface;
    for (var propName in Interface) {
      this[propName] = null;
    }
    this.dispatchConfig = null;
    this.dispatchMarker = null;
    this.nativeEvent = null;
  }

});

SyntheticEvent.Interface = EventInterface;

/**
 * Helper to reduce boilerplate when creating subclasses.
 *
 * @param {function} Class
 * @param {?object} Interface
 */
SyntheticEvent.augmentClass = function(Class, Interface) {
  var Super = this;

  var prototype = Object.create(Super.prototype);
  assign(prototype, Class.prototype);
  Class.prototype = prototype;
  Class.prototype.constructor = Class;

  Class.Interface = assign({}, Super.Interface, Interface);
  Class.augmentClass = Super.augmentClass;

  PooledClass.addPoolingTo(Class, PooledClass.threeArgumentPooler);
};

PooledClass.addPoolingTo(SyntheticEvent, PooledClass.threeArgumentPooler);

module.exports = SyntheticEvent;

},{"./Object.assign":40,"./PooledClass":41,"./emptyFunction":141,"./getEventTarget":152}],121:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule SyntheticFocusEvent
 * @typechecks static-only
 */

'use strict';

var SyntheticUIEvent = require("./SyntheticUIEvent");

/**
 * @interface FocusEvent
 * @see http://www.w3.org/TR/DOM-Level-3-Events/
 */
var FocusEventInterface = {
  relatedTarget: null
};

/**
 * @param {object} dispatchConfig Configuration used to dispatch this event.
 * @param {string} dispatchMarker Marker identifying the event target.
 * @param {object} nativeEvent Native browser event.
 * @extends {SyntheticUIEvent}
 */
function SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent) {
  SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);
}

SyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);

module.exports = SyntheticFocusEvent;

},{"./SyntheticUIEvent":126}],122:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule SyntheticInputEvent
 * @typechecks static-only
 */

'use strict';

var SyntheticEvent = require("./SyntheticEvent");

/**
 * @interface Event
 * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105
 *      /#events-inputevents
 */
var InputEventInterface = {
  data: null
};

/**
 * @param {object} dispatchConfig Configuration used to dispatch this event.
 * @param {string} dispatchMarker Marker identifying the event target.
 * @param {object} nativeEvent Native browser event.
 * @extends {SyntheticUIEvent}
 */
function SyntheticInputEvent(
  dispatchConfig,
  dispatchMarker,
  nativeEvent) {
  SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);
}

SyntheticEvent.augmentClass(
  SyntheticInputEvent,
  InputEventInterface
);

module.exports = SyntheticInputEvent;

},{"./SyntheticEvent":120}],123:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule SyntheticKeyboardEvent
 * @typechecks static-only
 */

'use strict';

var SyntheticUIEvent = require("./SyntheticUIEvent");

var getEventCharCode = require("./getEventCharCode");
var getEventKey = require("./getEventKey");
var getEventModifierState = require("./getEventModifierState");

/**
 * @interface KeyboardEvent
 * @see http://www.w3.org/TR/DOM-Level-3-Events/
 */
var KeyboardEventInterface = {
  key: getEventKey,
  location: null,
  ctrlKey: null,
  shiftKey: null,
  altKey: null,
  metaKey: null,
  repeat: null,
  locale: null,
  getModifierState: getEventModifierState,
  // Legacy Interface
  charCode: function(event) {
    // `charCode` is the result of a KeyPress event and represents the value of
    // the actual printable character.

    // KeyPress is deprecated, but its replacement is not yet final and not
    // implemented in any major browser. Only KeyPress has charCode.
    if (event.type === 'keypress') {
      return getEventCharCode(event);
    }
    return 0;
  },
  keyCode: function(event) {
    // `keyCode` is the result of a KeyDown/Up event and represents the value of
    // physical keyboard key.

    // The actual meaning of the value depends on the users' keyboard layout
    // which cannot be detected. Assuming that it is a US keyboard layout
    // provides a surprisingly accurate mapping for US and European users.
    // Due to this, it is left to the user to implement at this time.
    if (event.type === 'keydown' || event.type === 'keyup') {
      return event.keyCode;
    }
    return 0;
  },
  which: function(event) {
    // `which` is an alias for either `keyCode` or `charCode` depending on the
    // type of the event.
    if (event.type === 'keypress') {
      return getEventCharCode(event);
    }
    if (event.type === 'keydown' || event.type === 'keyup') {
      return event.keyCode;
    }
    return 0;
  }
};

/**
 * @param {object} dispatchConfig Configuration used to dispatch this event.
 * @param {string} dispatchMarker Marker identifying the event target.
 * @param {object} nativeEvent Native browser event.
 * @extends {SyntheticUIEvent}
 */
function SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent) {
  SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);
}

SyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);

module.exports = SyntheticKeyboardEvent;

},{"./SyntheticUIEvent":126,"./getEventCharCode":149,"./getEventKey":150,"./getEventModifierState":151}],124:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule SyntheticMouseEvent
 * @typechecks static-only
 */

'use strict';

var SyntheticUIEvent = require("./SyntheticUIEvent");
var ViewportMetrics = require("./ViewportMetrics");

var getEventModifierState = require("./getEventModifierState");

/**
 * @interface MouseEvent
 * @see http://www.w3.org/TR/DOM-Level-3-Events/
 */
var MouseEventInterface = {
  screenX: null,
  screenY: null,
  clientX: null,
  clientY: null,
  ctrlKey: null,
  shiftKey: null,
  altKey: null,
  metaKey: null,
  getModifierState: getEventModifierState,
  button: function(event) {
    // Webkit, Firefox, IE9+
    // which:  1 2 3
    // button: 0 1 2 (standard)
    var button = event.button;
    if ('which' in event) {
      return button;
    }
    // IE<9
    // which:  undefined
    // button: 0 0 0
    // button: 1 4 2 (onmouseup)
    return button === 2 ? 2 : button === 4 ? 1 : 0;
  },
  buttons: null,
  relatedTarget: function(event) {
    return event.relatedTarget || (
      ((event.fromElement === event.srcElement ? event.toElement : event.fromElement))
    );
  },
  // "Proprietary" Interface.
  pageX: function(event) {
    return 'pageX' in event ?
      event.pageX :
      event.clientX + ViewportMetrics.currentScrollLeft;
  },
  pageY: function(event) {
    return 'pageY' in event ?
      event.pageY :
      event.clientY + ViewportMetrics.currentScrollTop;
  }
};

/**
 * @param {object} dispatchConfig Configuration used to dispatch this event.
 * @param {string} dispatchMarker Marker identifying the event target.
 * @param {object} nativeEvent Native browser event.
 * @extends {SyntheticUIEvent}
 */
function SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent) {
  SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);
}

SyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);

module.exports = SyntheticMouseEvent;

},{"./SyntheticUIEvent":126,"./ViewportMetrics":129,"./getEventModifierState":151}],125:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule SyntheticTouchEvent
 * @typechecks static-only
 */

'use strict';

var SyntheticUIEvent = require("./SyntheticUIEvent");

var getEventModifierState = require("./getEventModifierState");

/**
 * @interface TouchEvent
 * @see http://www.w3.org/TR/touch-events/
 */
var TouchEventInterface = {
  touches: null,
  targetTouches: null,
  changedTouches: null,
  altKey: null,
  metaKey: null,
  ctrlKey: null,
  shiftKey: null,
  getModifierState: getEventModifierState
};

/**
 * @param {object} dispatchConfig Configuration used to dispatch this event.
 * @param {string} dispatchMarker Marker identifying the event target.
 * @param {object} nativeEvent Native browser event.
 * @extends {SyntheticUIEvent}
 */
function SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent) {
  SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);
}

SyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);

module.exports = SyntheticTouchEvent;

},{"./SyntheticUIEvent":126,"./getEventModifierState":151}],126:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule SyntheticUIEvent
 * @typechecks static-only
 */

'use strict';

var SyntheticEvent = require("./SyntheticEvent");

var getEventTarget = require("./getEventTarget");

/**
 * @interface UIEvent
 * @see http://www.w3.org/TR/DOM-Level-3-Events/
 */
var UIEventInterface = {
  view: function(event) {
    if (event.view) {
      return event.view;
    }

    var target = getEventTarget(event);
    if (target != null && target.window === target) {
      // target is a window object
      return target;
    }

    var doc = target.ownerDocument;
    // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.
    if (doc) {
      return doc.defaultView || doc.parentWindow;
    } else {
      return window;
    }
  },
  detail: function(event) {
    return event.detail || 0;
  }
};

/**
 * @param {object} dispatchConfig Configuration used to dispatch this event.
 * @param {string} dispatchMarker Marker identifying the event target.
 * @param {object} nativeEvent Native browser event.
 * @extends {SyntheticEvent}
 */
function SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent) {
  SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);
}

SyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);

module.exports = SyntheticUIEvent;

},{"./SyntheticEvent":120,"./getEventTarget":152}],127:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule SyntheticWheelEvent
 * @typechecks static-only
 */

'use strict';

var SyntheticMouseEvent = require("./SyntheticMouseEvent");

/**
 * @interface WheelEvent
 * @see http://www.w3.org/TR/DOM-Level-3-Events/
 */
var WheelEventInterface = {
  deltaX: function(event) {
    return (
      'deltaX' in event ? event.deltaX :
      // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).
      'wheelDeltaX' in event ? -event.wheelDeltaX : 0
    );
  },
  deltaY: function(event) {
    return (
      'deltaY' in event ? event.deltaY :
      // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).
      'wheelDeltaY' in event ? -event.wheelDeltaY :
      // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).
      'wheelDelta' in event ? -event.wheelDelta : 0
    );
  },
  deltaZ: null,

  // Browsers without "deltaMode" is reporting in raw wheel delta where one
  // notch on the scroll is always +/- 120, roughly equivalent to pixels.
  // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or
  // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.
  deltaMode: null
};

/**
 * @param {object} dispatchConfig Configuration used to dispatch this event.
 * @param {string} dispatchMarker Marker identifying the event target.
 * @param {object} nativeEvent Native browser event.
 * @extends {SyntheticMouseEvent}
 */
function SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent) {
  SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent);
}

SyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);

module.exports = SyntheticWheelEvent;

},{"./SyntheticMouseEvent":124}],128:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule Transaction
 */

'use strict';

var invariant = require("./invariant");

/**
 * `Transaction` creates a black box that is able to wrap any method such that
 * certain invariants are maintained before and after the method is invoked
 * (Even if an exception is thrown while invoking the wrapped method). Whoever
 * instantiates a transaction can provide enforcers of the invariants at
 * creation time. The `Transaction` class itself will supply one additional
 * automatic invariant for you - the invariant that any transaction instance
 * should not be run while it is already being run. You would typically create a
 * single instance of a `Transaction` for reuse multiple times, that potentially
 * is used to wrap several different methods. Wrappers are extremely simple -
 * they only require implementing two methods.
 *
 * <pre>
 *                       wrappers (injected at creation time)
 *                                      +        +
 *                                      |        |
 *                    +-----------------|--------|--------------+
 *                    |                 v        |              |
 *                    |      +---------------+   |              |
 *                    |   +--|    wrapper1   |---|----+         |
 *                    |   |  +---------------+   v    |         |
 *                    |   |          +-------------+  |         |
 *                    |   |     +----|   wrapper2  |--------+   |
 *                    |   |     |    +-------------+  |     |   |
 *                    |   |     |                     |     |   |
 *                    |   v     v                     v     v   | wrapper
 *                    | +---+ +---+   +---------+   +---+ +---+ | invariants
 * perform(anyMethod) | |   | |   |   |         |   |   | |   | | maintained
 * +----------------->|-|---|-|---|-->|anyMethod|---|---|-|---|-|-------->
 *                    | |   | |   |   |         |   |   | |   | |
 *                    | |   | |   |   |         |   |   | |   | |
 *                    | |   | |   |   |         |   |   | |   | |
 *                    | +---+ +---+   +---------+   +---+ +---+ |
 *                    |  initialize                    close    |
 *                    +-----------------------------------------+
 * </pre>
 *
 * Use cases:
 * - Preserving the input selection ranges before/after reconciliation.
 *   Restoring selection even in the event of an unexpected error.
 * - Deactivating events while rearranging the DOM, preventing blurs/focuses,
 *   while guaranteeing that afterwards, the event system is reactivated.
 * - Flushing a queue of collected DOM mutations to the main UI thread after a
 *   reconciliation takes place in a worker thread.
 * - Invoking any collected `componentDidUpdate` callbacks after rendering new
 *   content.
 * - (Future use case): Wrapping particular flushes of the `ReactWorker` queue
 *   to preserve the `scrollTop` (an automatic scroll aware DOM).
 * - (Future use case): Layout calculations before and after DOM updates.
 *
 * Transactional plugin API:
 * - A module that has an `initialize` method that returns any precomputation.
 * - and a `close` method that accepts the precomputation. `close` is invoked
 *   when the wrapped process is completed, or has failed.
 *
 * @param {Array<TransactionalWrapper>} transactionWrapper Wrapper modules
 * that implement `initialize` and `close`.
 * @return {Transaction} Single transaction for reuse in thread.
 *
 * @class Transaction
 */
var Mixin = {
  /**
   * Sets up this instance so that it is prepared for collecting metrics. Does
   * so such that this setup method may be used on an instance that is already
   * initialized, in a way that does not consume additional memory upon reuse.
   * That can be useful if you decide to make your subclass of this mixin a
   * "PooledClass".
   */
  reinitializeTransaction: function() {
    this.transactionWrappers = this.getTransactionWrappers();
    if (!this.wrapperInitData) {
      this.wrapperInitData = [];
    } else {
      this.wrapperInitData.length = 0;
    }
    this._isInTransaction = false;
  },

  _isInTransaction: false,

  /**
   * @abstract
   * @return {Array<TransactionWrapper>} Array of transaction wrappers.
   */
  getTransactionWrappers: null,

  isInTransaction: function() {
    return !!this._isInTransaction;
  },

  /**
   * Executes the function within a safety window. Use this for the top level
   * methods that result in large amounts of computation/mutations that would
   * need to be safety checked.
   *
   * @param {function} method Member of scope to call.
   * @param {Object} scope Scope to invoke from.
   * @param {Object?=} args... Arguments to pass to the method (optional).
   *                           Helps prevent need to bind in many cases.
   * @return Return value from `method`.
   */
  perform: function(method, scope, a, b, c, d, e, f) {
    ("production" !== process.env.NODE_ENV ? invariant(
      !this.isInTransaction(),
      'Transaction.perform(...): Cannot initialize a transaction when there ' +
      'is already an outstanding transaction.'
    ) : invariant(!this.isInTransaction()));
    var errorThrown;
    var ret;
    try {
      this._isInTransaction = true;
      // Catching errors makes debugging more difficult, so we start with
      // errorThrown set to true before setting it to false after calling
      // close -- if it's still set to true in the finally block, it means
      // one of these calls threw.
      errorThrown = true;
      this.initializeAll(0);
      ret = method.call(scope, a, b, c, d, e, f);
      errorThrown = false;
    } finally {
      try {
        if (errorThrown) {
          // If `method` throws, prefer to show that stack trace over any thrown
          // by invoking `closeAll`.
          try {
            this.closeAll(0);
          } catch (err) {
          }
        } else {
          // Since `method` didn't throw, we don't want to silence the exception
          // here.
          this.closeAll(0);
        }
      } finally {
        this._isInTransaction = false;
      }
    }
    return ret;
  },

  initializeAll: function(startIndex) {
    var transactionWrappers = this.transactionWrappers;
    for (var i = startIndex; i < transactionWrappers.length; i++) {
      var wrapper = transactionWrappers[i];
      try {
        // Catching errors makes debugging more difficult, so we start with the
        // OBSERVED_ERROR state before overwriting it with the real return value
        // of initialize -- if it's still set to OBSERVED_ERROR in the finally
        // block, it means wrapper.initialize threw.
        this.wrapperInitData[i] = Transaction.OBSERVED_ERROR;
        this.wrapperInitData[i] = wrapper.initialize ?
          wrapper.initialize.call(this) :
          null;
      } finally {
        if (this.wrapperInitData[i] === Transaction.OBSERVED_ERROR) {
          // The initializer for wrapper i threw an error; initialize the
          // remaining wrappers but silence any exceptions from them to ensure
          // that the first error is the one to bubble up.
          try {
            this.initializeAll(i + 1);
          } catch (err) {
          }
        }
      }
    }
  },

  /**
   * Invokes each of `this.transactionWrappers.close[i]` functions, passing into
   * them the respective return values of `this.transactionWrappers.init[i]`
   * (`close`rs that correspond to initializers that failed will not be
   * invoked).
   */
  closeAll: function(startIndex) {
    ("production" !== process.env.NODE_ENV ? invariant(
      this.isInTransaction(),
      'Transaction.closeAll(): Cannot close transaction when none are open.'
    ) : invariant(this.isInTransaction()));
    var transactionWrappers = this.transactionWrappers;
    for (var i = startIndex; i < transactionWrappers.length; i++) {
      var wrapper = transactionWrappers[i];
      var initData = this.wrapperInitData[i];
      var errorThrown;
      try {
        // Catching errors makes debugging more difficult, so we start with
        // errorThrown set to true before setting it to false after calling
        // close -- if it's still set to true in the finally block, it means
        // wrapper.close threw.
        errorThrown = true;
        if (initData !== Transaction.OBSERVED_ERROR && wrapper.close) {
          wrapper.close.call(this, initData);
        }
        errorThrown = false;
      } finally {
        if (errorThrown) {
          // The closer for wrapper i threw an error; close the remaining
          // wrappers but silence any exceptions from them to ensure that the
          // first error is the one to bubble up.
          try {
            this.closeAll(i + 1);
          } catch (e) {
          }
        }
      }
    }
    this.wrapperInitData.length = 0;
  }
};

var Transaction = {

  Mixin: Mixin,

  /**
   * Token to look for to determine if an error occured.
   */
  OBSERVED_ERROR: {}

};

module.exports = Transaction;

}).call(this,require("1YiZ5S"))
},{"./invariant":162,"1YiZ5S":5}],129:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule ViewportMetrics
 */

'use strict';

var ViewportMetrics = {

  currentScrollLeft: 0,

  currentScrollTop: 0,

  refreshScrollValues: function(scrollPosition) {
    ViewportMetrics.currentScrollLeft = scrollPosition.x;
    ViewportMetrics.currentScrollTop = scrollPosition.y;
  }

};

module.exports = ViewportMetrics;

},{}],130:[function(require,module,exports){
(function (process){
/**
 * Copyright 2014-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule accumulateInto
 */

'use strict';

var invariant = require("./invariant");

/**
 *
 * Accumulates items that must not be null or undefined into the first one. This
 * is used to conserve memory by avoiding array allocations, and thus sacrifices
 * API cleanness. Since `current` can be null before being passed in and not
 * null after this function, make sure to assign it back to `current`:
 *
 * `a = accumulateInto(a, b);`
 *
 * This API should be sparingly used. Try `accumulate` for something cleaner.
 *
 * @return {*|array<*>} An accumulation of items.
 */

function accumulateInto(current, next) {
  ("production" !== process.env.NODE_ENV ? invariant(
    next != null,
    'accumulateInto(...): Accumulated items must not be null or undefined.'
  ) : invariant(next != null));
  if (current == null) {
    return next;
  }

  // Both are not empty. Warning: Never call x.concat(y) when you are not
  // certain that x is an Array (x could be a string with concat method).
  var currentIsArray = Array.isArray(current);
  var nextIsArray = Array.isArray(next);

  if (currentIsArray && nextIsArray) {
    current.push.apply(current, next);
    return current;
  }

  if (currentIsArray) {
    current.push(next);
    return current;
  }

  if (nextIsArray) {
    // A bit too dangerous to mutate `next`.
    return [current].concat(next);
  }

  return [current, next];
}

module.exports = accumulateInto;

}).call(this,require("1YiZ5S"))
},{"./invariant":162,"1YiZ5S":5}],131:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule adler32
 */

/* jslint bitwise:true */

'use strict';

var MOD = 65521;

// This is a clean-room implementation of adler32 designed for detecting
// if markup is not what we expect it to be. It does not need to be
// cryptographically strong, only reasonably good at detecting if markup
// generated on the server is different than that on the client.
function adler32(data) {
  var a = 1;
  var b = 0;
  for (var i = 0; i < data.length; i++) {
    a = (a + data.charCodeAt(i)) % MOD;
    b = (b + a) % MOD;
  }
  return a | (b << 16);
}

module.exports = adler32;

},{}],132:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule camelize
 * @typechecks
 */

var _hyphenPattern = /-(.)/g;

/**
 * Camelcases a hyphenated string, for example:
 *
 *   > camelize('background-color')
 *   < "backgroundColor"
 *
 * @param {string} string
 * @return {string}
 */
function camelize(string) {
  return string.replace(_hyphenPattern, function(_, character) {
    return character.toUpperCase();
  });
}

module.exports = camelize;

},{}],133:[function(require,module,exports){
/**
 * Copyright 2014-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule camelizeStyleName
 * @typechecks
 */

"use strict";

var camelize = require("./camelize");

var msPattern = /^-ms-/;

/**
 * Camelcases a hyphenated CSS property name, for example:
 *
 *   > camelizeStyleName('background-color')
 *   < "backgroundColor"
 *   > camelizeStyleName('-moz-transition')
 *   < "MozTransition"
 *   > camelizeStyleName('-ms-transition')
 *   < "msTransition"
 *
 * As Andi Smith suggests
 * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix
 * is converted to lowercase `ms`.
 *
 * @param {string} string
 * @return {string}
 */
function camelizeStyleName(string) {
  return camelize(string.replace(msPattern, 'ms-'));
}

module.exports = camelizeStyleName;

},{"./camelize":132}],134:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @typechecks static-only
 * @providesModule cloneWithProps
 */

'use strict';

var ReactElement = require("./ReactElement");
var ReactPropTransferer = require("./ReactPropTransferer");

var keyOf = require("./keyOf");
var warning = require("./warning");

var CHILDREN_PROP = keyOf({children: null});

/**
 * Sometimes you want to change the props of a child passed to you. Usually
 * this is to add a CSS class.
 *
 * @param {ReactElement} child child element you'd like to clone
 * @param {object} props props you'd like to modify. className and style will be
 * merged automatically.
 * @return {ReactElement} a clone of child with props merged in.
 */
function cloneWithProps(child, props) {
  if ("production" !== process.env.NODE_ENV) {
    ("production" !== process.env.NODE_ENV ? warning(
      !child.ref,
      'You are calling cloneWithProps() on a child with a ref. This is ' +
      'dangerous because you\'re creating a new child which will not be ' +
      'added as a ref to its parent.'
    ) : null);
  }

  var newProps = ReactPropTransferer.mergeProps(props, child.props);

  // Use `child.props.children` if it is provided.
  if (!newProps.hasOwnProperty(CHILDREN_PROP) &&
      child.props.hasOwnProperty(CHILDREN_PROP)) {
    newProps.children = child.props.children;
  }

  // The current API doesn't retain _owner and _context, which is why this
  // doesn't use ReactElement.cloneAndReplaceProps.
  return ReactElement.createElement(child.type, newProps);
}

module.exports = cloneWithProps;

}).call(this,require("1YiZ5S"))
},{"./ReactElement":74,"./ReactPropTransferer":94,"./keyOf":169,"./warning":183,"1YiZ5S":5}],135:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule containsNode
 * @typechecks
 */

var isTextNode = require("./isTextNode");

/*jslint bitwise:true */

/**
 * Checks if a given DOM node contains or is another DOM node.
 *
 * @param {?DOMNode} outerNode Outer DOM node.
 * @param {?DOMNode} innerNode Inner DOM node.
 * @return {boolean} True if `outerNode` contains or is `innerNode`.
 */
function containsNode(outerNode, innerNode) {
  if (!outerNode || !innerNode) {
    return false;
  } else if (outerNode === innerNode) {
    return true;
  } else if (isTextNode(outerNode)) {
    return false;
  } else if (isTextNode(innerNode)) {
    return containsNode(outerNode, innerNode.parentNode);
  } else if (outerNode.contains) {
    return outerNode.contains(innerNode);
  } else if (outerNode.compareDocumentPosition) {
    return !!(outerNode.compareDocumentPosition(innerNode) & 16);
  } else {
    return false;
  }
}

module.exports = containsNode;

},{"./isTextNode":166}],136:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule createArrayFromMixed
 * @typechecks
 */

var toArray = require("./toArray");

/**
 * Perform a heuristic test to determine if an object is "array-like".
 *
 *   A monk asked Joshu, a Zen master, "Has a dog Buddha nature?"
 *   Joshu replied: "Mu."
 *
 * This function determines if its argument has "array nature": it returns
 * true if the argument is an actual array, an `arguments' object, or an
 * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).
 *
 * It will return false for other array-like objects like Filelist.
 *
 * @param {*} obj
 * @return {boolean}
 */
function hasArrayNature(obj) {
  return (
    // not null/false
    !!obj &&
    // arrays are objects, NodeLists are functions in Safari
    (typeof obj == 'object' || typeof obj == 'function') &&
    // quacks like an array
    ('length' in obj) &&
    // not window
    !('setInterval' in obj) &&
    // no DOM node should be considered an array-like
    // a 'select' element has 'length' and 'item' properties on IE8
    (typeof obj.nodeType != 'number') &&
    (
      // a real array
      (// HTMLCollection/NodeList
      (Array.isArray(obj) ||
      // arguments
      ('callee' in obj) || 'item' in obj))
    )
  );
}

/**
 * Ensure that the argument is an array by wrapping it in an array if it is not.
 * Creates a copy of the argument if it is already an array.
 *
 * This is mostly useful idiomatically:
 *
 *   var createArrayFromMixed = require('createArrayFromMixed');
 *
 *   function takesOneOrMoreThings(things) {
 *     things = createArrayFromMixed(things);
 *     ...
 *   }
 *
 * This allows you to treat `things' as an array, but accept scalars in the API.
 *
 * If you need to convert an array-like object, like `arguments`, into an array
 * use toArray instead.
 *
 * @param {*} obj
 * @return {array}
 */
function createArrayFromMixed(obj) {
  if (!hasArrayNature(obj)) {
    return [obj];
  } else if (Array.isArray(obj)) {
    return obj.slice();
  } else {
    return toArray(obj);
  }
}

module.exports = createArrayFromMixed;

},{"./toArray":180}],137:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule createFullPageComponent
 * @typechecks
 */

'use strict';

// Defeat circular references by requiring this directly.
var ReactClass = require("./ReactClass");
var ReactElement = require("./ReactElement");

var invariant = require("./invariant");

/**
 * Create a component that will throw an exception when unmounted.
 *
 * Components like <html> <head> and <body> can't be removed or added
 * easily in a cross-browser way, however it's valuable to be able to
 * take advantage of React's reconciliation for styling and <title>
 * management. So we just document it and throw in dangerous cases.
 *
 * @param {string} tag The tag to wrap
 * @return {function} convenience constructor of new component
 */
function createFullPageComponent(tag) {
  var elementFactory = ReactElement.createFactory(tag);

  var FullPageComponent = ReactClass.createClass({
    tagName: tag.toUpperCase(),
    displayName: 'ReactFullPageComponent' + tag,

    componentWillUnmount: function() {
      ("production" !== process.env.NODE_ENV ? invariant(
        false,
        '%s tried to unmount. Because of cross-browser quirks it is ' +
        'impossible to unmount some top-level components (eg <html>, <head>, ' +
        'and <body>) reliably and efficiently. To fix this, have a single ' +
        'top-level component that never unmounts render these elements.',
        this.constructor.displayName
      ) : invariant(false));
    },

    render: function() {
      return elementFactory(this.props);
    }
  });

  return FullPageComponent;
}

module.exports = createFullPageComponent;

}).call(this,require("1YiZ5S"))
},{"./ReactClass":49,"./ReactElement":74,"./invariant":162,"1YiZ5S":5}],138:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule createNodesFromMarkup
 * @typechecks
 */

/*jslint evil: true, sub: true */

var ExecutionEnvironment = require("./ExecutionEnvironment");

var createArrayFromMixed = require("./createArrayFromMixed");
var getMarkupWrap = require("./getMarkupWrap");
var invariant = require("./invariant");

/**
 * Dummy container used to render all markup.
 */
var dummyNode =
  ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;

/**
 * Pattern used by `getNodeName`.
 */
var nodeNamePattern = /^\s*<(\w+)/;

/**
 * Extracts the `nodeName` of the first element in a string of markup.
 *
 * @param {string} markup String of markup.
 * @return {?string} Node name of the supplied markup.
 */
function getNodeName(markup) {
  var nodeNameMatch = markup.match(nodeNamePattern);
  return nodeNameMatch && nodeNameMatch[1].toLowerCase();
}

/**
 * Creates an array containing the nodes rendered from the supplied markup. The
 * optionally supplied `handleScript` function will be invoked once for each
 * <script> element that is rendered. If no `handleScript` function is supplied,
 * an exception is thrown if any <script> elements are rendered.
 *
 * @param {string} markup A string of valid HTML markup.
 * @param {?function} handleScript Invoked once for each rendered <script>.
 * @return {array<DOMElement|DOMTextNode>} An array of rendered nodes.
 */
function createNodesFromMarkup(markup, handleScript) {
  var node = dummyNode;
  ("production" !== process.env.NODE_ENV ? invariant(!!dummyNode, 'createNodesFromMarkup dummy not initialized') : invariant(!!dummyNode));
  var nodeName = getNodeName(markup);

  var wrap = nodeName && getMarkupWrap(nodeName);
  if (wrap) {
    node.innerHTML = wrap[1] + markup + wrap[2];

    var wrapDepth = wrap[0];
    while (wrapDepth--) {
      node = node.lastChild;
    }
  } else {
    node.innerHTML = markup;
  }

  var scripts = node.getElementsByTagName('script');
  if (scripts.length) {
    ("production" !== process.env.NODE_ENV ? invariant(
      handleScript,
      'createNodesFromMarkup(...): Unexpected <script> element rendered.'
    ) : invariant(handleScript));
    createArrayFromMixed(scripts).forEach(handleScript);
  }

  var nodes = createArrayFromMixed(node.childNodes);
  while (node.lastChild) {
    node.removeChild(node.lastChild);
  }
  return nodes;
}

module.exports = createNodesFromMarkup;

}).call(this,require("1YiZ5S"))
},{"./ExecutionEnvironment":33,"./createArrayFromMixed":136,"./getMarkupWrap":154,"./invariant":162,"1YiZ5S":5}],139:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule cx
 */

/**
 * This function is used to mark string literals representing CSS class names
 * so that they can be transformed statically. This allows for modularization
 * and minification of CSS class names.
 *
 * In static_upstream, this function is actually implemented, but it should
 * eventually be replaced with something more descriptive, and the transform
 * that is used in the main stack should be ported for use elsewhere.
 *
 * @param string|object className to modularize, or an object of key/values.
 *                      In the object case, the values are conditions that
 *                      determine if the className keys should be included.
 * @param [string ...]  Variable list of classNames in the string case.
 * @return string       Renderable space-separated CSS className.
 */

'use strict';
var warning = require("./warning");

var warned = false;

function cx(classNames) {
  if ("production" !== process.env.NODE_ENV) {
    ("production" !== process.env.NODE_ENV ? warning(
      warned,
      'React.addons.classSet will be deprecated in a future version. See ' +
      'http://fb.me/react-addons-classset'
    ) : null);
    warned = true;
  }

  if (typeof classNames == 'object') {
    return Object.keys(classNames).filter(function(className) {
      return classNames[className];
    }).join(' ');
  } else {
    return Array.prototype.join.call(arguments, ' ');
  }
}

module.exports = cx;

}).call(this,require("1YiZ5S"))
},{"./warning":183,"1YiZ5S":5}],140:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule dangerousStyleValue
 * @typechecks static-only
 */

'use strict';

var CSSProperty = require("./CSSProperty");

var isUnitlessNumber = CSSProperty.isUnitlessNumber;

/**
 * Convert a value into the proper css writable value. The style name `name`
 * should be logical (no hyphens), as specified
 * in `CSSProperty.isUnitlessNumber`.
 *
 * @param {string} name CSS property name such as `topMargin`.
 * @param {*} value CSS property value such as `10px`.
 * @return {string} Normalized style value with dimensions applied.
 */
function dangerousStyleValue(name, value) {
  // Note that we've removed escapeTextForBrowser() calls here since the
  // whole string will be escaped when the attribute is injected into
  // the markup. If you provide unsafe user data here they can inject
  // arbitrary CSS which may be problematic (I couldn't repro this):
  // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
  // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/
  // This is not an XSS hole but instead a potential CSS injection issue
  // which has lead to a greater discussion about how we're going to
  // trust URLs moving forward. See #2115901

  var isEmpty = value == null || typeof value === 'boolean' || value === '';
  if (isEmpty) {
    return '';
  }

  var isNonNumeric = isNaN(value);
  if (isNonNumeric || value === 0 ||
      isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) {
    return '' + value; // cast to string
  }

  if (typeof value === 'string') {
    value = value.trim();
  }
  return value + 'px';
}

module.exports = dangerousStyleValue;

},{"./CSSProperty":16}],141:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule emptyFunction
 */

function makeEmptyFunction(arg) {
  return function() {
    return arg;
  };
}

/**
 * This function accepts and discards inputs; it has no side effects. This is
 * primarily useful idiomatically for overridable function endpoints which
 * always need to be callable, since JS lacks a null-call idiom ala Cocoa.
 */
function emptyFunction() {}

emptyFunction.thatReturns = makeEmptyFunction;
emptyFunction.thatReturnsFalse = makeEmptyFunction(false);
emptyFunction.thatReturnsTrue = makeEmptyFunction(true);
emptyFunction.thatReturnsNull = makeEmptyFunction(null);
emptyFunction.thatReturnsThis = function() { return this; };
emptyFunction.thatReturnsArgument = function(arg) { return arg; };

module.exports = emptyFunction;

},{}],142:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule emptyObject
 */

"use strict";

var emptyObject = {};

if ("production" !== process.env.NODE_ENV) {
  Object.freeze(emptyObject);
}

module.exports = emptyObject;

}).call(this,require("1YiZ5S"))
},{"1YiZ5S":5}],143:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule escapeTextContentForBrowser
 */

'use strict';

var ESCAPE_LOOKUP = {
  '&': '&amp;',
  '>': '&gt;',
  '<': '&lt;',
  '"': '&quot;',
  '\'': '&#x27;'
};

var ESCAPE_REGEX = /[&><"']/g;

function escaper(match) {
  return ESCAPE_LOOKUP[match];
}

/**
 * Escapes text to prevent scripting attacks.
 *
 * @param {*} text Text value to escape.
 * @return {string} An escaped string.
 */
function escapeTextContentForBrowser(text) {
  return ('' + text).replace(ESCAPE_REGEX, escaper);
}

module.exports = escapeTextContentForBrowser;

},{}],144:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule findDOMNode
 * @typechecks static-only
 */

'use strict';

var ReactCurrentOwner = require("./ReactCurrentOwner");
var ReactInstanceMap = require("./ReactInstanceMap");
var ReactMount = require("./ReactMount");

var invariant = require("./invariant");
var isNode = require("./isNode");
var warning = require("./warning");

/**
 * Returns the DOM node rendered by this element.
 *
 * @param {ReactComponent|DOMElement} componentOrElement
 * @return {DOMElement} The root node of this element.
 */
function findDOMNode(componentOrElement) {
  if ("production" !== process.env.NODE_ENV) {
    var owner = ReactCurrentOwner.current;
    if (owner !== null) {
      ("production" !== process.env.NODE_ENV ? warning(
        owner._warnedAboutRefsInRender,
        '%s is accessing getDOMNode or findDOMNode inside its render(). ' +
        'render() should be a pure function of props and state. It should ' +
        'never access something that requires stale data from the previous ' +
        'render, such as refs. Move this logic to componentDidMount and ' +
        'componentDidUpdate instead.',
        owner.getName() || 'A component'
      ) : null);
      owner._warnedAboutRefsInRender = true;
    }
  }
  if (componentOrElement == null) {
    return null;
  }
  if (isNode(componentOrElement)) {
    return componentOrElement;
  }
  if (ReactInstanceMap.has(componentOrElement)) {
    return ReactMount.getNodeFromInstance(componentOrElement);
  }
  ("production" !== process.env.NODE_ENV ? invariant(
    componentOrElement.render == null ||
    typeof componentOrElement.render !== 'function',
    'Component (with keys: %s) contains `render` method ' +
    'but is not mounted in the DOM',
    Object.keys(componentOrElement)
  ) : invariant(componentOrElement.render == null ||
  typeof componentOrElement.render !== 'function'));
  ("production" !== process.env.NODE_ENV ? invariant(
    false,
    'Element appears to be neither ReactComponent nor DOMNode (keys: %s)',
    Object.keys(componentOrElement)
  ) : invariant(false));
}

module.exports = findDOMNode;

}).call(this,require("1YiZ5S"))
},{"./ReactCurrentOwner":56,"./ReactInstanceMap":84,"./ReactMount":88,"./invariant":162,"./isNode":164,"./warning":183,"1YiZ5S":5}],145:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule flattenChildren
 */

'use strict';

var traverseAllChildren = require("./traverseAllChildren");
var warning = require("./warning");

/**
 * @param {function} traverseContext Context passed through traversal.
 * @param {?ReactComponent} child React child component.
 * @param {!string} name String name of key path to child.
 */
function flattenSingleChildIntoContext(traverseContext, child, name) {
  // We found a component instance.
  var result = traverseContext;
  var keyUnique = !result.hasOwnProperty(name);
  if ("production" !== process.env.NODE_ENV) {
    ("production" !== process.env.NODE_ENV ? warning(
      keyUnique,
      'flattenChildren(...): Encountered two children with the same key, ' +
      '`%s`. Child keys must be unique; when two children share a key, only ' +
      'the first child will be used.',
      name
    ) : null);
  }
  if (keyUnique && child != null) {
    result[name] = child;
  }
}

/**
 * Flattens children that are typically specified as `props.children`. Any null
 * children will not be included in the resulting object.
 * @return {!object} flattened children keyed by name.
 */
function flattenChildren(children) {
  if (children == null) {
    return children;
  }
  var result = {};
  traverseAllChildren(children, flattenSingleChildIntoContext, result);
  return result;
}

module.exports = flattenChildren;

}).call(this,require("1YiZ5S"))
},{"./traverseAllChildren":181,"./warning":183,"1YiZ5S":5}],146:[function(require,module,exports){
/**
 * Copyright 2014-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule focusNode
 */

"use strict";

/**
 * @param {DOMElement} node input/textarea to focus
 */
function focusNode(node) {
  // IE8 can throw "Can't move focus to the control because it is invisible,
  // not enabled, or of a type that does not accept the focus." for all kinds of
  // reasons that are too expensive and fragile to test.
  try {
    node.focus();
  } catch(e) {
  }
}

module.exports = focusNode;

},{}],147:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule forEachAccumulated
 */

'use strict';

/**
 * @param {array} an "accumulation" of items which is either an Array or
 * a single item. Useful when paired with the `accumulate` module. This is a
 * simple utility that allows us to reason about a collection of items, but
 * handling the case when there is exactly one item (and we do not need to
 * allocate an array).
 */
var forEachAccumulated = function(arr, cb, scope) {
  if (Array.isArray(arr)) {
    arr.forEach(cb, scope);
  } else if (arr) {
    cb.call(scope, arr);
  }
};

module.exports = forEachAccumulated;

},{}],148:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule getActiveElement
 * @typechecks
 */

/**
 * Same as document.activeElement but wraps in a try-catch block. In IE it is
 * not safe to call document.activeElement if there is nothing focused.
 *
 * The activeElement will be null only if the document body is not yet defined.
 */
function getActiveElement() /*?DOMElement*/ {
  try {
    return document.activeElement || document.body;
  } catch (e) {
    return document.body;
  }
}

module.exports = getActiveElement;

},{}],149:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule getEventCharCode
 * @typechecks static-only
 */

'use strict';

/**
 * `charCode` represents the actual "character code" and is safe to use with
 * `String.fromCharCode`. As such, only keys that correspond to printable
 * characters produce a valid `charCode`, the only exception to this is Enter.
 * The Tab-key is considered non-printable and does not have a `charCode`,
 * presumably because it does not produce a tab-character in browsers.
 *
 * @param {object} nativeEvent Native browser event.
 * @return {string} Normalized `charCode` property.
 */
function getEventCharCode(nativeEvent) {
  var charCode;
  var keyCode = nativeEvent.keyCode;

  if ('charCode' in nativeEvent) {
    charCode = nativeEvent.charCode;

    // FF does not set `charCode` for the Enter-key, check against `keyCode`.
    if (charCode === 0 && keyCode === 13) {
      charCode = 13;
    }
  } else {
    // IE8 does not implement `charCode`, but `keyCode` has the correct value.
    charCode = keyCode;
  }

  // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.
  // Must not discard the (non-)printable Enter-key.
  if (charCode >= 32 || charCode === 13) {
    return charCode;
  }

  return 0;
}

module.exports = getEventCharCode;

},{}],150:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule getEventKey
 * @typechecks static-only
 */

'use strict';

var getEventCharCode = require("./getEventCharCode");

/**
 * Normalization of deprecated HTML5 `key` values
 * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names
 */
var normalizeKey = {
  'Esc': 'Escape',
  'Spacebar': ' ',
  'Left': 'ArrowLeft',
  'Up': 'ArrowUp',
  'Right': 'ArrowRight',
  'Down': 'ArrowDown',
  'Del': 'Delete',
  'Win': 'OS',
  'Menu': 'ContextMenu',
  'Apps': 'ContextMenu',
  'Scroll': 'ScrollLock',
  'MozPrintableKey': 'Unidentified'
};

/**
 * Translation from legacy `keyCode` to HTML5 `key`
 * Only special keys supported, all others depend on keyboard layout or browser
 * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names
 */
var translateToKey = {
  8: 'Backspace',
  9: 'Tab',
  12: 'Clear',
  13: 'Enter',
  16: 'Shift',
  17: 'Control',
  18: 'Alt',
  19: 'Pause',
  20: 'CapsLock',
  27: 'Escape',
  32: ' ',
  33: 'PageUp',
  34: 'PageDown',
  35: 'End',
  36: 'Home',
  37: 'ArrowLeft',
  38: 'ArrowUp',
  39: 'ArrowRight',
  40: 'ArrowDown',
  45: 'Insert',
  46: 'Delete',
  112: 'F1', 113: 'F2', 114: 'F3', 115: 'F4', 116: 'F5', 117: 'F6',
  118: 'F7', 119: 'F8', 120: 'F9', 121: 'F10', 122: 'F11', 123: 'F12',
  144: 'NumLock',
  145: 'ScrollLock',
  224: 'Meta'
};

/**
 * @param {object} nativeEvent Native browser event.
 * @return {string} Normalized `key` property.
 */
function getEventKey(nativeEvent) {
  if (nativeEvent.key) {
    // Normalize inconsistent values reported by browsers due to
    // implementations of a working draft specification.

    // FireFox implements `key` but returns `MozPrintableKey` for all
    // printable characters (normalized to `Unidentified`), ignore it.
    var key = normalizeKey[nativeEvent.key] || nativeEvent.key;
    if (key !== 'Unidentified') {
      return key;
    }
  }

  // Browser does not implement `key`, polyfill as much of it as we can.
  if (nativeEvent.type === 'keypress') {
    var charCode = getEventCharCode(nativeEvent);

    // The enter-key is technically both printable and non-printable and can
    // thus be captured by `keypress`, no other non-printable key should.
    return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);
  }
  if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {
    // While user keyboard layout determines the actual meaning of each
    // `keyCode` value, almost all function keys have a universal value.
    return translateToKey[nativeEvent.keyCode] || 'Unidentified';
  }
  return '';
}

module.exports = getEventKey;

},{"./getEventCharCode":149}],151:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule getEventModifierState
 * @typechecks static-only
 */

'use strict';

/**
 * Translation from modifier key to the associated property in the event.
 * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers
 */

var modifierKeyToProp = {
  'Alt': 'altKey',
  'Control': 'ctrlKey',
  'Meta': 'metaKey',
  'Shift': 'shiftKey'
};

// IE8 does not implement getModifierState so we simply map it to the only
// modifier keys exposed by the event itself, does not support Lock-keys.
// Currently, all major browsers except Chrome seems to support Lock-keys.
function modifierStateGetter(keyArg) {
  /*jshint validthis:true */
  var syntheticEvent = this;
  var nativeEvent = syntheticEvent.nativeEvent;
  if (nativeEvent.getModifierState) {
    return nativeEvent.getModifierState(keyArg);
  }
  var keyProp = modifierKeyToProp[keyArg];
  return keyProp ? !!nativeEvent[keyProp] : false;
}

function getEventModifierState(nativeEvent) {
  return modifierStateGetter;
}

module.exports = getEventModifierState;

},{}],152:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule getEventTarget
 * @typechecks static-only
 */

'use strict';

/**
 * Gets the target node from a native browser event by accounting for
 * inconsistencies in browser DOM APIs.
 *
 * @param {object} nativeEvent Native browser event.
 * @return {DOMEventTarget} Target node.
 */
function getEventTarget(nativeEvent) {
  var target = nativeEvent.target || nativeEvent.srcElement || window;
  // Safari may fire events on text nodes (Node.TEXT_NODE is 3).
  // @see http://www.quirksmode.org/js/events_properties.html
  return target.nodeType === 3 ? target.parentNode : target;
}

module.exports = getEventTarget;

},{}],153:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule getIteratorFn
 * @typechecks static-only
 */

'use strict';

/* global Symbol */
var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.

/**
 * Returns the iterator method function contained on the iterable object.
 *
 * Be sure to invoke the function with the iterable as context:
 *
 *     var iteratorFn = getIteratorFn(myIterable);
 *     if (iteratorFn) {
 *       var iterator = iteratorFn.call(myIterable);
 *       ...
 *     }
 *
 * @param {?object} maybeIterable
 * @return {?function}
 */
function getIteratorFn(maybeIterable) {
  var iteratorFn = maybeIterable && (
    (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL])
  );
  if (typeof iteratorFn === 'function') {
    return iteratorFn;
  }
}

module.exports = getIteratorFn;

},{}],154:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule getMarkupWrap
 */

var ExecutionEnvironment = require("./ExecutionEnvironment");

var invariant = require("./invariant");

/**
 * Dummy container used to detect which wraps are necessary.
 */
var dummyNode =
  ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;

/**
 * Some browsers cannot use `innerHTML` to render certain elements standalone,
 * so we wrap them, render the wrapped nodes, then extract the desired node.
 *
 * In IE8, certain elements cannot render alone, so wrap all elements ('*').
 */
var shouldWrap = {
  // Force wrapping for SVG elements because if they get created inside a <div>,
  // they will be initialized in the wrong namespace (and will not display).
  'circle': true,
  'clipPath': true,
  'defs': true,
  'ellipse': true,
  'g': true,
  'line': true,
  'linearGradient': true,
  'path': true,
  'polygon': true,
  'polyline': true,
  'radialGradient': true,
  'rect': true,
  'stop': true,
  'text': true
};

var selectWrap = [1, '<select multiple="true">', '</select>'];
var tableWrap = [1, '<table>', '</table>'];
var trWrap = [3, '<table><tbody><tr>', '</tr></tbody></table>'];

var svgWrap = [1, '<svg>', '</svg>'];

var markupWrap = {
  '*': [1, '?<div>', '</div>'],

  'area': [1, '<map>', '</map>'],
  'col': [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'],
  'legend': [1, '<fieldset>', '</fieldset>'],
  'param': [1, '<object>', '</object>'],
  'tr': [2, '<table><tbody>', '</tbody></table>'],

  'optgroup': selectWrap,
  'option': selectWrap,

  'caption': tableWrap,
  'colgroup': tableWrap,
  'tbody': tableWrap,
  'tfoot': tableWrap,
  'thead': tableWrap,

  'td': trWrap,
  'th': trWrap,

  'circle': svgWrap,
  'clipPath': svgWrap,
  'defs': svgWrap,
  'ellipse': svgWrap,
  'g': svgWrap,
  'line': svgWrap,
  'linearGradient': svgWrap,
  'path': svgWrap,
  'polygon': svgWrap,
  'polyline': svgWrap,
  'radialGradient': svgWrap,
  'rect': svgWrap,
  'stop': svgWrap,
  'text': svgWrap
};

/**
 * Gets the markup wrap configuration for the supplied `nodeName`.
 *
 * NOTE: This lazily detects which wraps are necessary for the current browser.
 *
 * @param {string} nodeName Lowercase `nodeName`.
 * @return {?array} Markup wrap configuration, if applicable.
 */
function getMarkupWrap(nodeName) {
  ("production" !== process.env.NODE_ENV ? invariant(!!dummyNode, 'Markup wrapping node not initialized') : invariant(!!dummyNode));
  if (!markupWrap.hasOwnProperty(nodeName)) {
    nodeName = '*';
  }
  if (!shouldWrap.hasOwnProperty(nodeName)) {
    if (nodeName === '*') {
      dummyNode.innerHTML = '<link />';
    } else {
      dummyNode.innerHTML = '<' + nodeName + '></' + nodeName + '>';
    }
    shouldWrap[nodeName] = !dummyNode.firstChild;
  }
  return shouldWrap[nodeName] ? markupWrap[nodeName] : null;
}


module.exports = getMarkupWrap;

}).call(this,require("1YiZ5S"))
},{"./ExecutionEnvironment":33,"./invariant":162,"1YiZ5S":5}],155:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule getNodeForCharacterOffset
 */

'use strict';

/**
 * Given any node return the first leaf node without children.
 *
 * @param {DOMElement|DOMTextNode} node
 * @return {DOMElement|DOMTextNode}
 */
function getLeafNode(node) {
  while (node && node.firstChild) {
    node = node.firstChild;
  }
  return node;
}

/**
 * Get the next sibling within a container. This will walk up the
 * DOM if a node's siblings have been exhausted.
 *
 * @param {DOMElement|DOMTextNode} node
 * @return {?DOMElement|DOMTextNode}
 */
function getSiblingNode(node) {
  while (node) {
    if (node.nextSibling) {
      return node.nextSibling;
    }
    node = node.parentNode;
  }
}

/**
 * Get object describing the nodes which contain characters at offset.
 *
 * @param {DOMElement|DOMTextNode} root
 * @param {number} offset
 * @return {?object}
 */
function getNodeForCharacterOffset(root, offset) {
  var node = getLeafNode(root);
  var nodeStart = 0;
  var nodeEnd = 0;

  while (node) {
    if (node.nodeType === 3) {
      nodeEnd = nodeStart + node.textContent.length;

      if (nodeStart <= offset && nodeEnd >= offset) {
        return {
          node: node,
          offset: offset - nodeStart
        };
      }

      nodeStart = nodeEnd;
    }

    node = getLeafNode(getSiblingNode(node));
  }
}

module.exports = getNodeForCharacterOffset;

},{}],156:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule getReactRootElementInContainer
 */

'use strict';

var DOC_NODE_TYPE = 9;

/**
 * @param {DOMElement|DOMDocument} container DOM element that may contain
 *                                           a React component
 * @return {?*} DOM element that may have the reactRoot ID, or null.
 */
function getReactRootElementInContainer(container) {
  if (!container) {
    return null;
  }

  if (container.nodeType === DOC_NODE_TYPE) {
    return container.documentElement;
  } else {
    return container.firstChild;
  }
}

module.exports = getReactRootElementInContainer;

},{}],157:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule getTextContentAccessor
 */

'use strict';

var ExecutionEnvironment = require("./ExecutionEnvironment");

var contentKey = null;

/**
 * Gets the key used to access text content on a DOM node.
 *
 * @return {?string} Key used to access text content.
 * @internal
 */
function getTextContentAccessor() {
  if (!contentKey && ExecutionEnvironment.canUseDOM) {
    // Prefer textContent to innerText because many browsers support both but
    // SVG <text> elements don't support innerText even when <div> does.
    contentKey = 'textContent' in document.documentElement ?
      'textContent' :
      'innerText';
  }
  return contentKey;
}

module.exports = getTextContentAccessor;

},{"./ExecutionEnvironment":33}],158:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule getUnboundedScrollPosition
 * @typechecks
 */

"use strict";

/**
 * Gets the scroll position of the supplied element or window.
 *
 * The return values are unbounded, unlike `getScrollPosition`. This means they
 * may be negative or exceed the element boundaries (which is possible using
 * inertial scrolling).
 *
 * @param {DOMWindow|DOMElement} scrollable
 * @return {object} Map with `x` and `y` keys.
 */
function getUnboundedScrollPosition(scrollable) {
  if (scrollable === window) {
    return {
      x: window.pageXOffset || document.documentElement.scrollLeft,
      y: window.pageYOffset || document.documentElement.scrollTop
    };
  }
  return {
    x: scrollable.scrollLeft,
    y: scrollable.scrollTop
  };
}

module.exports = getUnboundedScrollPosition;

},{}],159:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule hyphenate
 * @typechecks
 */

var _uppercasePattern = /([A-Z])/g;

/**
 * Hyphenates a camelcased string, for example:
 *
 *   > hyphenate('backgroundColor')
 *   < "background-color"
 *
 * For CSS style names, use `hyphenateStyleName` instead which works properly
 * with all vendor prefixes, including `ms`.
 *
 * @param {string} string
 * @return {string}
 */
function hyphenate(string) {
  return string.replace(_uppercasePattern, '-$1').toLowerCase();
}

module.exports = hyphenate;

},{}],160:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule hyphenateStyleName
 * @typechecks
 */

"use strict";

var hyphenate = require("./hyphenate");

var msPattern = /^ms-/;

/**
 * Hyphenates a camelcased CSS property name, for example:
 *
 *   > hyphenateStyleName('backgroundColor')
 *   < "background-color"
 *   > hyphenateStyleName('MozTransition')
 *   < "-moz-transition"
 *   > hyphenateStyleName('msTransition')
 *   < "-ms-transition"
 *
 * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix
 * is converted to `-ms-`.
 *
 * @param {string} string
 * @return {string}
 */
function hyphenateStyleName(string) {
  return hyphenate(string).replace(msPattern, '-ms-');
}

module.exports = hyphenateStyleName;

},{"./hyphenate":159}],161:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule instantiateReactComponent
 * @typechecks static-only
 */

'use strict';

var ReactCompositeComponent = require("./ReactCompositeComponent");
var ReactEmptyComponent = require("./ReactEmptyComponent");
var ReactNativeComponent = require("./ReactNativeComponent");

var assign = require("./Object.assign");
var invariant = require("./invariant");
var warning = require("./warning");

// To avoid a cyclic dependency, we create the final class in this module
var ReactCompositeComponentWrapper = function() { };
assign(
  ReactCompositeComponentWrapper.prototype,
  ReactCompositeComponent.Mixin,
  {
    _instantiateReactComponent: instantiateReactComponent
  }
);

/**
 * Check if the type reference is a known internal type. I.e. not a user
 * provided composite type.
 *
 * @param {function} type
 * @return {boolean} Returns true if this is a valid internal type.
 */
function isInternalComponentType(type) {
  return (
    typeof type === 'function' &&
    typeof type.prototype !== 'undefined' &&
    typeof type.prototype.mountComponent === 'function' &&
    typeof type.prototype.receiveComponent === 'function'
  );
}

/**
 * Given a ReactNode, create an instance that will actually be mounted.
 *
 * @param {ReactNode} node
 * @param {*} parentCompositeType The composite type that resolved this.
 * @return {object} A new instance of the element's constructor.
 * @protected
 */
function instantiateReactComponent(node, parentCompositeType) {
  var instance;

  if (node === null || node === false) {
    node = ReactEmptyComponent.emptyElement;
  }

  if (typeof node === 'object') {
    var element = node;
    if ("production" !== process.env.NODE_ENV) {
      ("production" !== process.env.NODE_ENV ? warning(
        element && (typeof element.type === 'function' ||
                    typeof element.type === 'string'),
        'Only functions or strings can be mounted as React components.'
      ) : null);
    }

    // Special case string values
    if (parentCompositeType === element.type &&
        typeof element.type === 'string') {
      // Avoid recursion if the wrapper renders itself.
      instance = ReactNativeComponent.createInternalComponent(element);
      // All native components are currently wrapped in a composite so we're
      // safe to assume that this is what we should instantiate.
    } else if (isInternalComponentType(element.type)) {
      // This is temporarily available for custom components that are not string
      // represenations. I.e. ART. Once those are updated to use the string
      // representation, we can drop this code path.
      instance = new element.type(element);
    } else {
      instance = new ReactCompositeComponentWrapper();
    }
  } else if (typeof node === 'string' || typeof node === 'number') {
    instance = ReactNativeComponent.createInstanceForText(node);
  } else {
    ("production" !== process.env.NODE_ENV ? invariant(
      false,
      'Encountered invalid React node of type %s',
      typeof node
    ) : invariant(false));
  }

  if ("production" !== process.env.NODE_ENV) {
    ("production" !== process.env.NODE_ENV ? warning(
      typeof instance.construct === 'function' &&
      typeof instance.mountComponent === 'function' &&
      typeof instance.receiveComponent === 'function' &&
      typeof instance.unmountComponent === 'function',
      'Only React Components can be mounted.'
    ) : null);
  }

  // Sets up the instance. This can probably just move into the constructor now.
  instance.construct(node);

  // These two fields are used by the DOM and ART diffing algorithms
  // respectively. Instead of using expandos on components, we should be
  // storing the state needed by the diffing algorithms elsewhere.
  instance._mountIndex = 0;
  instance._mountImage = null;

  if ("production" !== process.env.NODE_ENV) {
    instance._isOwnerNecessary = false;
    instance._warnedAboutRefsInRender = false;
  }

  // Internal instances should fully constructed at this point, so they should
  // not get any new fields added to them at this point.
  if ("production" !== process.env.NODE_ENV) {
    if (Object.preventExtensions) {
      Object.preventExtensions(instance);
    }
  }

  return instance;
}

module.exports = instantiateReactComponent;

}).call(this,require("1YiZ5S"))
},{"./Object.assign":40,"./ReactCompositeComponent":54,"./ReactEmptyComponent":76,"./ReactNativeComponent":91,"./invariant":162,"./warning":183,"1YiZ5S":5}],162:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule invariant
 */

"use strict";

/**
 * Use invariant() to assert state which your program assumes to be true.
 *
 * Provide sprintf-style format (only %s is supported) and arguments
 * to provide information about what broke and what you were
 * expecting.
 *
 * The invariant message will be stripped in production, but the invariant
 * will remain to ensure logic does not differ in production.
 */

var invariant = function(condition, format, a, b, c, d, e, f) {
  if ("production" !== process.env.NODE_ENV) {
    if (format === undefined) {
      throw new Error('invariant requires an error message argument');
    }
  }

  if (!condition) {
    var error;
    if (format === undefined) {
      error = new Error(
        'Minified exception occurred; use the non-minified dev environment ' +
        'for the full error message and additional helpful warnings.'
      );
    } else {
      var args = [a, b, c, d, e, f];
      var argIndex = 0;
      error = new Error(
        'Invariant Violation: ' +
        format.replace(/%s/g, function() { return args[argIndex++]; })
      );
    }

    error.framesToPop = 1; // we don't care about invariant's own frame
    throw error;
  }
};

module.exports = invariant;

}).call(this,require("1YiZ5S"))
},{"1YiZ5S":5}],163:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule isEventSupported
 */

'use strict';

var ExecutionEnvironment = require("./ExecutionEnvironment");

var useHasFeature;
if (ExecutionEnvironment.canUseDOM) {
  useHasFeature =
    document.implementation &&
    document.implementation.hasFeature &&
    // always returns true in newer browsers as per the standard.
    // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature
    document.implementation.hasFeature('', '') !== true;
}

/**
 * Checks if an event is supported in the current execution environment.
 *
 * NOTE: This will not work correctly for non-generic events such as `change`,
 * `reset`, `load`, `error`, and `select`.
 *
 * Borrows from Modernizr.
 *
 * @param {string} eventNameSuffix Event name, e.g. "click".
 * @param {?boolean} capture Check if the capture phase is supported.
 * @return {boolean} True if the event is supported.
 * @internal
 * @license Modernizr 3.0.0pre (Custom Build) | MIT
 */
function isEventSupported(eventNameSuffix, capture) {
  if (!ExecutionEnvironment.canUseDOM ||
      capture && !('addEventListener' in document)) {
    return false;
  }

  var eventName = 'on' + eventNameSuffix;
  var isSupported = eventName in document;

  if (!isSupported) {
    var element = document.createElement('div');
    element.setAttribute(eventName, 'return;');
    isSupported = typeof element[eventName] === 'function';
  }

  if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {
    // This is the only way to test support for the `wheel` event in IE9+.
    isSupported = document.implementation.hasFeature('Events.wheel', '3.0');
  }

  return isSupported;
}

module.exports = isEventSupported;

},{"./ExecutionEnvironment":33}],164:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule isNode
 * @typechecks
 */

/**
 * @param {*} object The object to check.
 * @return {boolean} Whether or not the object is a DOM node.
 */
function isNode(object) {
  return !!(object && (
    ((typeof Node === 'function' ? object instanceof Node : typeof object === 'object' &&
    typeof object.nodeType === 'number' &&
    typeof object.nodeName === 'string'))
  ));
}

module.exports = isNode;

},{}],165:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule isTextInputElement
 */

'use strict';

/**
 * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary
 */
var supportedInputTypes = {
  'color': true,
  'date': true,
  'datetime': true,
  'datetime-local': true,
  'email': true,
  'month': true,
  'number': true,
  'password': true,
  'range': true,
  'search': true,
  'tel': true,
  'text': true,
  'time': true,
  'url': true,
  'week': true
};

function isTextInputElement(elem) {
  return elem && (
    (elem.nodeName === 'INPUT' && supportedInputTypes[elem.type] || elem.nodeName === 'TEXTAREA')
  );
}

module.exports = isTextInputElement;

},{}],166:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule isTextNode
 * @typechecks
 */

var isNode = require("./isNode");

/**
 * @param {*} object The object to check.
 * @return {boolean} Whether or not the object is a DOM text node.
 */
function isTextNode(object) {
  return isNode(object) && object.nodeType == 3;
}

module.exports = isTextNode;

},{"./isNode":164}],167:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule joinClasses
 * @typechecks static-only
 */

'use strict';

/**
 * Combines multiple className strings into one.
 * http://jsperf.com/joinclasses-args-vs-array
 *
 * @param {...?string} classes
 * @return {string}
 */
function joinClasses(className/*, ... */) {
  if (!className) {
    className = '';
  }
  var nextClass;
  var argLength = arguments.length;
  if (argLength > 1) {
    for (var ii = 1; ii < argLength; ii++) {
      nextClass = arguments[ii];
      if (nextClass) {
        className = (className ? className + ' ' : '') + nextClass;
      }
    }
  }
  return className;
}

module.exports = joinClasses;

},{}],168:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule keyMirror
 * @typechecks static-only
 */

'use strict';

var invariant = require("./invariant");

/**
 * Constructs an enumeration with keys equal to their value.
 *
 * For example:
 *
 *   var COLORS = keyMirror({blue: null, red: null});
 *   var myColor = COLORS.blue;
 *   var isColorValid = !!COLORS[myColor];
 *
 * The last line could not be performed if the values of the generated enum were
 * not equal to their keys.
 *
 *   Input:  {key1: val1, key2: val2}
 *   Output: {key1: key1, key2: key2}
 *
 * @param {object} obj
 * @return {object}
 */
var keyMirror = function(obj) {
  var ret = {};
  var key;
  ("production" !== process.env.NODE_ENV ? invariant(
    obj instanceof Object && !Array.isArray(obj),
    'keyMirror(...): Argument must be an object.'
  ) : invariant(obj instanceof Object && !Array.isArray(obj)));
  for (key in obj) {
    if (!obj.hasOwnProperty(key)) {
      continue;
    }
    ret[key] = key;
  }
  return ret;
};

module.exports = keyMirror;

}).call(this,require("1YiZ5S"))
},{"./invariant":162,"1YiZ5S":5}],169:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule keyOf
 */

/**
 * Allows extraction of a minified key. Let's the build system minify keys
 * without loosing the ability to dynamically use key strings as values
 * themselves. Pass in an object with a single key/val pair and it will return
 * you the string key of that single record. Suppose you want to grab the
 * value for a key 'className' inside of an object. Key/val minification may
 * have aliased that key to be 'xa12'. keyOf({className: null}) will return
 * 'xa12' in that case. Resolve keys you want to use once at startup time, then
 * reuse those resolutions.
 */
var keyOf = function(oneKeyObj) {
  var key;
  for (key in oneKeyObj) {
    if (!oneKeyObj.hasOwnProperty(key)) {
      continue;
    }
    return key;
  }
  return null;
};


module.exports = keyOf;

},{}],170:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule mapObject
 */

'use strict';

var hasOwnProperty = Object.prototype.hasOwnProperty;

/**
 * Executes the provided `callback` once for each enumerable own property in the
 * object and constructs a new object from the results. The `callback` is
 * invoked with three arguments:
 *
 *  - the property value
 *  - the property name
 *  - the object being traversed
 *
 * Properties that are added after the call to `mapObject` will not be visited
 * by `callback`. If the values of existing properties are changed, the value
 * passed to `callback` will be the value at the time `mapObject` visits them.
 * Properties that are deleted before being visited are not visited.
 *
 * @grep function objectMap()
 * @grep function objMap()
 *
 * @param {?object} object
 * @param {function} callback
 * @param {*} context
 * @return {?object}
 */
function mapObject(object, callback, context) {
  if (!object) {
    return null;
  }
  var result = {};
  for (var name in object) {
    if (hasOwnProperty.call(object, name)) {
      result[name] = callback.call(context, object[name], name, object);
    }
  }
  return result;
}

module.exports = mapObject;

},{}],171:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule memoizeStringOnly
 * @typechecks static-only
 */

'use strict';

/**
 * Memoizes the return value of a function that accepts one string argument.
 *
 * @param {function} callback
 * @return {function}
 */
function memoizeStringOnly(callback) {
  var cache = {};
  return function(string) {
    if (!cache.hasOwnProperty(string)) {
      cache[string] = callback.call(this, string);
    }
    return cache[string];
  };
}

module.exports = memoizeStringOnly;

},{}],172:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule onlyChild
 */
'use strict';

var ReactElement = require("./ReactElement");

var invariant = require("./invariant");

/**
 * Returns the first child in a collection of children and verifies that there
 * is only one child in the collection. The current implementation of this
 * function assumes that a single child gets passed without a wrapper, but the
 * purpose of this helper function is to abstract away the particular structure
 * of children.
 *
 * @param {?object} children Child collection structure.
 * @return {ReactComponent} The first and only `ReactComponent` contained in the
 * structure.
 */
function onlyChild(children) {
  ("production" !== process.env.NODE_ENV ? invariant(
    ReactElement.isValidElement(children),
    'onlyChild must be passed a children with exactly one child.'
  ) : invariant(ReactElement.isValidElement(children)));
  return children;
}

module.exports = onlyChild;

}).call(this,require("1YiZ5S"))
},{"./ReactElement":74,"./invariant":162,"1YiZ5S":5}],173:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule performance
 * @typechecks
 */

"use strict";

var ExecutionEnvironment = require("./ExecutionEnvironment");

var performance;

if (ExecutionEnvironment.canUseDOM) {
  performance =
    window.performance ||
    window.msPerformance ||
    window.webkitPerformance;
}

module.exports = performance || {};

},{"./ExecutionEnvironment":33}],174:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule performanceNow
 * @typechecks
 */

var performance = require("./performance");

/**
 * Detect if we can use `window.performance.now()` and gracefully fallback to
 * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now
 * because of Facebook's testing infrastructure.
 */
if (!performance || !performance.now) {
  performance = Date;
}

var performanceNow = performance.now.bind(performance);

module.exports = performanceNow;

},{"./performance":173}],175:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule quoteAttributeValueForBrowser
 */

'use strict';

var escapeTextContentForBrowser = require("./escapeTextContentForBrowser");

/**
 * Escapes attribute value to prevent scripting attacks.
 *
 * @param {*} value Value to escape.
 * @return {string} An escaped string.
 */
function quoteAttributeValueForBrowser(value) {
  return '"' + escapeTextContentForBrowser(value) + '"';
}

module.exports = quoteAttributeValueForBrowser;

},{"./escapeTextContentForBrowser":143}],176:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule setInnerHTML
 */

/* globals MSApp */

'use strict';

var ExecutionEnvironment = require("./ExecutionEnvironment");

var WHITESPACE_TEST = /^[ \r\n\t\f]/;
var NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/;

/**
 * Set the innerHTML property of a node, ensuring that whitespace is preserved
 * even in IE8.
 *
 * @param {DOMElement} node
 * @param {string} html
 * @internal
 */
var setInnerHTML = function(node, html) {
  node.innerHTML = html;
};

// Win8 apps: Allow all html to be inserted
if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {
  setInnerHTML = function(node, html) {
    MSApp.execUnsafeLocalFunction(function() {
      node.innerHTML = html;
    });
  };
}

if (ExecutionEnvironment.canUseDOM) {
  // IE8: When updating a just created node with innerHTML only leading
  // whitespace is removed. When updating an existing node with innerHTML
  // whitespace in root TextNodes is also collapsed.
  // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html

  // Feature detection; only IE8 is known to behave improperly like this.
  var testElement = document.createElement('div');
  testElement.innerHTML = ' ';
  if (testElement.innerHTML === '') {
    setInnerHTML = function(node, html) {
      // Magic theory: IE8 supposedly differentiates between added and updated
      // nodes when processing innerHTML, innerHTML on updated nodes suffers
      // from worse whitespace behavior. Re-adding a node like this triggers
      // the initial and more favorable whitespace behavior.
      // TODO: What to do on a detached node?
      if (node.parentNode) {
        node.parentNode.replaceChild(node, node);
      }

      // We also implement a workaround for non-visible tags disappearing into
      // thin air on IE8, this only happens if there is no visible text
      // in-front of the non-visible tags. Piggyback on the whitespace fix
      // and simply check if any non-visible tags appear in the source.
      if (WHITESPACE_TEST.test(html) ||
          html[0] === '<' && NONVISIBLE_TEST.test(html)) {
        // Recover leading whitespace by temporarily prepending any character.
        // \uFEFF has the potential advantage of being zero-width/invisible.
        node.innerHTML = '\uFEFF' + html;

        // deleteData leaves an empty `TextNode` which offsets the index of all
        // children. Definitely want to avoid this.
        var textNode = node.firstChild;
        if (textNode.data.length === 1) {
          node.removeChild(textNode);
        } else {
          textNode.deleteData(0, 1);
        }
      } else {
        node.innerHTML = html;
      }
    };
  }
}

module.exports = setInnerHTML;

},{"./ExecutionEnvironment":33}],177:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule setTextContent
 */

'use strict';

var ExecutionEnvironment = require("./ExecutionEnvironment");
var escapeTextContentForBrowser = require("./escapeTextContentForBrowser");
var setInnerHTML = require("./setInnerHTML");

/**
 * Set the textContent property of a node, ensuring that whitespace is preserved
 * even in IE8. innerText is a poor substitute for textContent and, among many
 * issues, inserts <br> instead of the literal newline chars. innerHTML behaves
 * as it should.
 *
 * @param {DOMElement} node
 * @param {string} text
 * @internal
 */
var setTextContent = function(node, text) {
  node.textContent = text;
};

if (ExecutionEnvironment.canUseDOM) {
  if (!('textContent' in document.documentElement)) {
    setTextContent = function(node, text) {
      setInnerHTML(node, escapeTextContentForBrowser(text));
    };
  }
}

module.exports = setTextContent;

},{"./ExecutionEnvironment":33,"./escapeTextContentForBrowser":143,"./setInnerHTML":176}],178:[function(require,module,exports){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule shallowEqual
 */

'use strict';

/**
 * Performs equality by iterating through keys on an object and returning
 * false when any key has values which are not strictly equal between
 * objA and objB. Returns true when the values of all keys are strictly equal.
 *
 * @return {boolean}
 */
function shallowEqual(objA, objB) {
  if (objA === objB) {
    return true;
  }
  var key;
  // Test for A's keys different from B.
  for (key in objA) {
    if (objA.hasOwnProperty(key) &&
        (!objB.hasOwnProperty(key) || objA[key] !== objB[key])) {
      return false;
    }
  }
  // Test for B's keys missing from A.
  for (key in objB) {
    if (objB.hasOwnProperty(key) && !objA.hasOwnProperty(key)) {
      return false;
    }
  }
  return true;
}

module.exports = shallowEqual;

},{}],179:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule shouldUpdateReactComponent
 * @typechecks static-only
 */

'use strict';

var warning = require("./warning");

/**
 * Given a `prevElement` and `nextElement`, determines if the existing
 * instance should be updated as opposed to being destroyed or replaced by a new
 * instance. Both arguments are elements. This ensures that this logic can
 * operate on stateless trees without any backing instance.
 *
 * @param {?object} prevElement
 * @param {?object} nextElement
 * @return {boolean} True if the existing instance should be updated.
 * @protected
 */
function shouldUpdateReactComponent(prevElement, nextElement) {
  if (prevElement != null && nextElement != null) {
    var prevType = typeof prevElement;
    var nextType = typeof nextElement;
    if (prevType === 'string' || prevType === 'number') {
      return (nextType === 'string' || nextType === 'number');
    } else {
      if (nextType === 'object' &&
          prevElement.type === nextElement.type &&
          prevElement.key === nextElement.key) {
        var ownersMatch = prevElement._owner === nextElement._owner;
        var prevName = null;
        var nextName = null;
        var nextDisplayName = null;
        if ("production" !== process.env.NODE_ENV) {
          if (!ownersMatch) {
            if (prevElement._owner != null &&
                prevElement._owner.getPublicInstance() != null &&
                prevElement._owner.getPublicInstance().constructor != null) {
              prevName =
                prevElement._owner.getPublicInstance().constructor.displayName;
            }
            if (nextElement._owner != null &&
                nextElement._owner.getPublicInstance() != null &&
                nextElement._owner.getPublicInstance().constructor != null) {
              nextName =
                nextElement._owner.getPublicInstance().constructor.displayName;
            }
            if (nextElement.type != null &&
                nextElement.type.displayName != null) {
              nextDisplayName = nextElement.type.displayName;
            }
            if (nextElement.type != null && typeof nextElement.type === 'string') {
              nextDisplayName = nextElement.type;
            }
            if (typeof nextElement.type !== 'string' ||
                nextElement.type === 'input' ||
                nextElement.type === 'textarea') {
              if ((prevElement._owner != null &&
                  prevElement._owner._isOwnerNecessary === false) ||
                  (nextElement._owner != null &&
                  nextElement._owner._isOwnerNecessary === false)) {
                if (prevElement._owner != null) {
                  prevElement._owner._isOwnerNecessary = true;
                }
                if (nextElement._owner != null) {
                  nextElement._owner._isOwnerNecessary = true;
                }
                ("production" !== process.env.NODE_ENV ? warning(
                  false,
                  '<%s /> is being rendered by both %s and %s using the same ' +
                  'key (%s) in the same place. Currently, this means that ' +
                  'they don\'t preserve state. This behavior should be very ' +
                  'rare so we\'re considering deprecating it. Please contact ' +
                  'the React team and explain your use case so that we can ' +
                  'take that into consideration.',
                  nextDisplayName || 'Unknown Component',
                  prevName || '[Unknown]',
                  nextName || '[Unknown]',
                  prevElement.key
                ) : null);
              }
            }
          }
        }
        return ownersMatch;
      }
    }
  }
  return false;
}

module.exports = shouldUpdateReactComponent;

}).call(this,require("1YiZ5S"))
},{"./warning":183,"1YiZ5S":5}],180:[function(require,module,exports){
(function (process){
/**
 * Copyright 2014-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule toArray
 * @typechecks
 */

var invariant = require("./invariant");

/**
 * Convert array-like objects to arrays.
 *
 * This API assumes the caller knows the contents of the data type. For less
 * well defined inputs use createArrayFromMixed.
 *
 * @param {object|function|filelist} obj
 * @return {array}
 */
function toArray(obj) {
  var length = obj.length;

  // Some browse builtin objects can report typeof 'function' (e.g. NodeList in
  // old versions of Safari).
  ("production" !== process.env.NODE_ENV ? invariant(
    !Array.isArray(obj) &&
    (typeof obj === 'object' || typeof obj === 'function'),
    'toArray: Array-like object expected'
  ) : invariant(!Array.isArray(obj) &&
  (typeof obj === 'object' || typeof obj === 'function')));

  ("production" !== process.env.NODE_ENV ? invariant(
    typeof length === 'number',
    'toArray: Object needs a length property'
  ) : invariant(typeof length === 'number'));

  ("production" !== process.env.NODE_ENV ? invariant(
    length === 0 ||
    (length - 1) in obj,
    'toArray: Object should have keys for indices'
  ) : invariant(length === 0 ||
  (length - 1) in obj));

  // Old IE doesn't give collections access to hasOwnProperty. Assume inputs
  // without method will throw during the slice call and skip straight to the
  // fallback.
  if (obj.hasOwnProperty) {
    try {
      return Array.prototype.slice.call(obj);
    } catch (e) {
      // IE < 9 does not support Array#slice on collections objects
    }
  }

  // Fall back to copying key by key. This assumes all keys have a value,
  // so will not preserve sparsely populated inputs.
  var ret = Array(length);
  for (var ii = 0; ii < length; ii++) {
    ret[ii] = obj[ii];
  }
  return ret;
}

module.exports = toArray;

}).call(this,require("1YiZ5S"))
},{"./invariant":162,"1YiZ5S":5}],181:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule traverseAllChildren
 */

'use strict';

var ReactElement = require("./ReactElement");
var ReactFragment = require("./ReactFragment");
var ReactInstanceHandles = require("./ReactInstanceHandles");

var getIteratorFn = require("./getIteratorFn");
var invariant = require("./invariant");
var warning = require("./warning");

var SEPARATOR = ReactInstanceHandles.SEPARATOR;
var SUBSEPARATOR = ':';

/**
 * TODO: Test that a single child and an array with one item have the same key
 * pattern.
 */

var userProvidedKeyEscaperLookup = {
  '=': '=0',
  '.': '=1',
  ':': '=2'
};

var userProvidedKeyEscapeRegex = /[=.:]/g;

var didWarnAboutMaps = false;

function userProvidedKeyEscaper(match) {
  return userProvidedKeyEscaperLookup[match];
}

/**
 * Generate a key string that identifies a component within a set.
 *
 * @param {*} component A component that could contain a manual key.
 * @param {number} index Index that is used if a manual key is not provided.
 * @return {string}
 */
function getComponentKey(component, index) {
  if (component && component.key != null) {
    // Explicit key
    return wrapUserProvidedKey(component.key);
  }
  // Implicit key determined by the index in the set
  return index.toString(36);
}

/**
 * Escape a component key so that it is safe to use in a reactid.
 *
 * @param {*} key Component key to be escaped.
 * @return {string} An escaped string.
 */
function escapeUserProvidedKey(text) {
  return ('' + text).replace(
    userProvidedKeyEscapeRegex,
    userProvidedKeyEscaper
  );
}

/**
 * Wrap a `key` value explicitly provided by the user to distinguish it from
 * implicitly-generated keys generated by a component's index in its parent.
 *
 * @param {string} key Value of a user-provided `key` attribute
 * @return {string}
 */
function wrapUserProvidedKey(key) {
  return '$' + escapeUserProvidedKey(key);
}

/**
 * @param {?*} children Children tree container.
 * @param {!string} nameSoFar Name of the key path so far.
 * @param {!number} indexSoFar Number of children encountered until this point.
 * @param {!function} callback Callback to invoke with each child found.
 * @param {?*} traverseContext Used to pass information throughout the traversal
 * process.
 * @return {!number} The number of children in this subtree.
 */
function traverseAllChildrenImpl(
  children,
  nameSoFar,
  indexSoFar,
  callback,
  traverseContext
) {
  var type = typeof children;

  if (type === 'undefined' || type === 'boolean') {
    // All of the above are perceived as null.
    children = null;
  }

  if (children === null ||
      type === 'string' ||
      type === 'number' ||
      ReactElement.isValidElement(children)) {
    callback(
      traverseContext,
      children,
      // If it's the only child, treat the name as if it was wrapped in an array
      // so that it's consistent if the number of children grows.
      nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar,
      indexSoFar
    );
    return 1;
  }

  var child, nextName, nextIndex;
  var subtreeCount = 0; // Count of children found in the current subtree.

  if (Array.isArray(children)) {
    for (var i = 0; i < children.length; i++) {
      child = children[i];
      nextName = (
        (nameSoFar !== '' ? nameSoFar + SUBSEPARATOR : SEPARATOR) +
        getComponentKey(child, i)
      );
      nextIndex = indexSoFar + subtreeCount;
      subtreeCount += traverseAllChildrenImpl(
        child,
        nextName,
        nextIndex,
        callback,
        traverseContext
      );
    }
  } else {
    var iteratorFn = getIteratorFn(children);
    if (iteratorFn) {
      var iterator = iteratorFn.call(children);
      var step;
      if (iteratorFn !== children.entries) {
        var ii = 0;
        while (!(step = iterator.next()).done) {
          child = step.value;
          nextName = (
            (nameSoFar !== '' ? nameSoFar + SUBSEPARATOR : SEPARATOR) +
            getComponentKey(child, ii++)
          );
          nextIndex = indexSoFar + subtreeCount;
          subtreeCount += traverseAllChildrenImpl(
            child,
            nextName,
            nextIndex,
            callback,
            traverseContext
          );
        }
      } else {
        if ("production" !== process.env.NODE_ENV) {
          ("production" !== process.env.NODE_ENV ? warning(
            didWarnAboutMaps,
            'Using Maps as children is not yet fully supported. It is an ' +
            'experimental feature that might be removed. Convert it to a ' +
            'sequence / iterable of keyed ReactElements instead.'
          ) : null);
          didWarnAboutMaps = true;
        }
        // Iterator will provide entry [k,v] tuples rather than values.
        while (!(step = iterator.next()).done) {
          var entry = step.value;
          if (entry) {
            child = entry[1];
            nextName = (
              (nameSoFar !== '' ? nameSoFar + SUBSEPARATOR : SEPARATOR) +
              wrapUserProvidedKey(entry[0]) + SUBSEPARATOR +
              getComponentKey(child, 0)
            );
            nextIndex = indexSoFar + subtreeCount;
            subtreeCount += traverseAllChildrenImpl(
              child,
              nextName,
              nextIndex,
              callback,
              traverseContext
            );
          }
        }
      }
    } else if (type === 'object') {
      ("production" !== process.env.NODE_ENV ? invariant(
        children.nodeType !== 1,
        'traverseAllChildren(...): Encountered an invalid child; DOM ' +
        'elements are not valid children of React components.'
      ) : invariant(children.nodeType !== 1));
      var fragment = ReactFragment.extract(children);
      for (var key in fragment) {
        if (fragment.hasOwnProperty(key)) {
          child = fragment[key];
          nextName = (
            (nameSoFar !== '' ? nameSoFar + SUBSEPARATOR : SEPARATOR) +
            wrapUserProvidedKey(key) + SUBSEPARATOR +
            getComponentKey(child, 0)
          );
          nextIndex = indexSoFar + subtreeCount;
          subtreeCount += traverseAllChildrenImpl(
            child,
            nextName,
            nextIndex,
            callback,
            traverseContext
          );
        }
      }
    }
  }

  return subtreeCount;
}

/**
 * Traverses children that are typically specified as `props.children`, but
 * might also be specified through attributes:
 *
 * - `traverseAllChildren(this.props.children, ...)`
 * - `traverseAllChildren(this.props.leftPanelChildren, ...)`
 *
 * The `traverseContext` is an optional argument that is passed through the
 * entire traversal. It can be used to store accumulations or anything else that
 * the callback might find relevant.
 *
 * @param {?*} children Children tree object.
 * @param {!function} callback To invoke upon traversing each child.
 * @param {?*} traverseContext Context for traversal.
 * @return {!number} The number of children in this subtree.
 */
function traverseAllChildren(children, callback, traverseContext) {
  if (children == null) {
    return 0;
  }

  return traverseAllChildrenImpl(children, '', 0, callback, traverseContext);
}

module.exports = traverseAllChildren;

}).call(this,require("1YiZ5S"))
},{"./ReactElement":74,"./ReactFragment":80,"./ReactInstanceHandles":83,"./getIteratorFn":153,"./invariant":162,"./warning":183,"1YiZ5S":5}],182:[function(require,module,exports){
(function (process){
/**
 * Copyright 2013-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule update
 */

 /* global hasOwnProperty:true */

'use strict';

var assign = require("./Object.assign");
var keyOf = require("./keyOf");
var invariant = require("./invariant");
var hasOwnProperty = {}.hasOwnProperty;

function shallowCopy(x) {
  if (Array.isArray(x)) {
    return x.concat();
  } else if (x && typeof x === 'object') {
    return assign(new x.constructor(), x);
  } else {
    return x;
  }
}

var COMMAND_PUSH = keyOf({$push: null});
var COMMAND_UNSHIFT = keyOf({$unshift: null});
var COMMAND_SPLICE = keyOf({$splice: null});
var COMMAND_SET = keyOf({$set: null});
var COMMAND_MERGE = keyOf({$merge: null});
var COMMAND_APPLY = keyOf({$apply: null});

var ALL_COMMANDS_LIST = [
  COMMAND_PUSH,
  COMMAND_UNSHIFT,
  COMMAND_SPLICE,
  COMMAND_SET,
  COMMAND_MERGE,
  COMMAND_APPLY
];

var ALL_COMMANDS_SET = {};

ALL_COMMANDS_LIST.forEach(function(command) {
  ALL_COMMANDS_SET[command] = true;
});

function invariantArrayCase(value, spec, command) {
  ("production" !== process.env.NODE_ENV ? invariant(
    Array.isArray(value),
    'update(): expected target of %s to be an array; got %s.',
    command,
    value
  ) : invariant(Array.isArray(value)));
  var specValue = spec[command];
  ("production" !== process.env.NODE_ENV ? invariant(
    Array.isArray(specValue),
    'update(): expected spec of %s to be an array; got %s. ' +
    'Did you forget to wrap your parameter in an array?',
    command,
    specValue
  ) : invariant(Array.isArray(specValue)));
}

function update(value, spec) {
  ("production" !== process.env.NODE_ENV ? invariant(
    typeof spec === 'object',
    'update(): You provided a key path to update() that did not contain one ' +
    'of %s. Did you forget to include {%s: ...}?',
    ALL_COMMANDS_LIST.join(', '),
    COMMAND_SET
  ) : invariant(typeof spec === 'object'));

  if (hasOwnProperty.call(spec, COMMAND_SET)) {
    ("production" !== process.env.NODE_ENV ? invariant(
      Object.keys(spec).length === 1,
      'Cannot have more than one key in an object with %s',
      COMMAND_SET
    ) : invariant(Object.keys(spec).length === 1));

    return spec[COMMAND_SET];
  }

  var nextValue = shallowCopy(value);

  if (hasOwnProperty.call(spec, COMMAND_MERGE)) {
    var mergeObj = spec[COMMAND_MERGE];
    ("production" !== process.env.NODE_ENV ? invariant(
      mergeObj && typeof mergeObj === 'object',
      'update(): %s expects a spec of type \'object\'; got %s',
      COMMAND_MERGE,
      mergeObj
    ) : invariant(mergeObj && typeof mergeObj === 'object'));
    ("production" !== process.env.NODE_ENV ? invariant(
      nextValue && typeof nextValue === 'object',
      'update(): %s expects a target of type \'object\'; got %s',
      COMMAND_MERGE,
      nextValue
    ) : invariant(nextValue && typeof nextValue === 'object'));
    assign(nextValue, spec[COMMAND_MERGE]);
  }

  if (hasOwnProperty.call(spec, COMMAND_PUSH)) {
    invariantArrayCase(value, spec, COMMAND_PUSH);
    spec[COMMAND_PUSH].forEach(function(item) {
      nextValue.push(item);
    });
  }

  if (hasOwnProperty.call(spec, COMMAND_UNSHIFT)) {
    invariantArrayCase(value, spec, COMMAND_UNSHIFT);
    spec[COMMAND_UNSHIFT].forEach(function(item) {
      nextValue.unshift(item);
    });
  }

  if (hasOwnProperty.call(spec, COMMAND_SPLICE)) {
    ("production" !== process.env.NODE_ENV ? invariant(
      Array.isArray(value),
      'Expected %s target to be an array; got %s',
      COMMAND_SPLICE,
      value
    ) : invariant(Array.isArray(value)));
    ("production" !== process.env.NODE_ENV ? invariant(
      Array.isArray(spec[COMMAND_SPLICE]),
      'update(): expected spec of %s to be an array of arrays; got %s. ' +
      'Did you forget to wrap your parameters in an array?',
      COMMAND_SPLICE,
      spec[COMMAND_SPLICE]
    ) : invariant(Array.isArray(spec[COMMAND_SPLICE])));
    spec[COMMAND_SPLICE].forEach(function(args) {
      ("production" !== process.env.NODE_ENV ? invariant(
        Array.isArray(args),
        'update(): expected spec of %s to be an array of arrays; got %s. ' +
        'Did you forget to wrap your parameters in an array?',
        COMMAND_SPLICE,
        spec[COMMAND_SPLICE]
      ) : invariant(Array.isArray(args)));
      nextValue.splice.apply(nextValue, args);
    });
  }

  if (hasOwnProperty.call(spec, COMMAND_APPLY)) {
    ("production" !== process.env.NODE_ENV ? invariant(
      typeof spec[COMMAND_APPLY] === 'function',
      'update(): expected spec of %s to be a function; got %s.',
      COMMAND_APPLY,
      spec[COMMAND_APPLY]
    ) : invariant(typeof spec[COMMAND_APPLY] === 'function'));
    nextValue = spec[COMMAND_APPLY](nextValue);
  }

  for (var k in spec) {
    if (!(ALL_COMMANDS_SET.hasOwnProperty(k) && ALL_COMMANDS_SET[k])) {
      nextValue[k] = update(value[k], spec[k]);
    }
  }

  return nextValue;
}

module.exports = update;

}).call(this,require("1YiZ5S"))
},{"./Object.assign":40,"./invariant":162,"./keyOf":169,"1YiZ5S":5}],183:[function(require,module,exports){
(function (process){
/**
 * Copyright 2014-2015, Facebook, Inc.
 * All rights reserved.
 *
 * This source code is licensed under the BSD-style license found in the
 * LICENSE file in the root directory of this source tree. An additional grant
 * of patent rights can be found in the PATENTS file in the same directory.
 *
 * @providesModule warning
 */

"use strict";

var emptyFunction = require("./emptyFunction");

/**
 * Similar to invariant but only logs a warning if the condition is not met.
 * This can be used to log issues in development environments in critical
 * paths. Removing the logging code for production environments will keep the
 * same logic and follow the same code paths.
 */

var warning = emptyFunction;

if ("production" !== process.env.NODE_ENV) {
  warning = function(condition, format ) {for (var args=[],$__0=2,$__1=arguments.length;$__0<$__1;$__0++) args.push(arguments[$__0]);
    if (format === undefined) {
      throw new Error(
        '`warning(condition, format, ...args)` requires a warning ' +
        'message argument'
      );
    }

    if (format.length < 10 || /^[s\W]*$/.test(format)) {
      throw new Error(
        'The warning format should be able to uniquely identify this ' +
        'warning. Please, use a more descriptive format than: ' + format
      );
    }

    if (format.indexOf('Failed Composite propType: ') === 0) {
      return; // Ignore CompositeComponent proptype check.
    }

    if (!condition) {
      var argIndex = 0;
      var message = 'Warning: ' + format.replace(/%s/g, function()  {return args[argIndex++];});
      console.warn(message);
      try {
        // --- Welcome to debugging React ---
        // This error was thrown as a convenience so that you can use this stack
        // to find the callsite that caused this warning to fire.
        throw new Error(message);
      } catch(x) {}
    }
  };
}

module.exports = warning;

}).call(this,require("1YiZ5S"))
},{"./emptyFunction":141,"1YiZ5S":5}],184:[function(require,module,exports){
module.exports = require('./lib/React');

},{"./lib/React":42}],185:[function(require,module,exports){
var Dispatcher = require("../dispatcher/dispatcher");
var Constants = require("../constants/constants");

var LcAction = {

    changeDay: function(chosenDay){
        Dispatcher.dispatch({
            actionType: Constants.CHANGE_DAY,
            chosenDay: chosenDay
        })
    },

    addMonth: function(){
        Dispatcher.dispatch({
            actionType: Constants.ADD_MONTH
        });
    },

    minusMonth: function(){
        Dispatcher.dispatch({
            actionType: Constants.MINUS_MONTH
        });
    },

    addYear: function(){
        Dispatcher.dispatch({
            actionType: Constants.ADD_YEAR
        });
    },

    minusYear: function(){
        Dispatcher.dispatch({
            actionType: Constants.MINUS_YEAR
        });
    },

    backToToday: function(){
        Dispatcher.dispatch({
            actionType: Constants.BACK_TO_TODAY
        });
    },

    quitApp: function(){
        ipc.send("QUIT_APP");
    }

};

module.exports = LcAction;

},{"../constants/constants":191,"../dispatcher/dispatcher":192}],186:[function(require,module,exports){
var React = require("react/addons");
var CX = require('react/lib/cx');
var Actions = require("../actions/actions");
var LC = require("lunar-calendar");


var DateChoosePanel = React.createClass({displayName: "DateChoosePanel",
    componentDidMount: function () {
        $(function () {
            $(".oneofseven").click(function () {
                $(".chosenday").removeClass("chosenday");
                $(this).addClass("chosenday");
            });
        });
    },

    render: function () {

        var dates = this.props.chosenMonthDates;
        var chosenDay = this.props.chosenDay;
        var today = this.props.today;

        var datesElements = [], tmpElements = [];

        datesElements.push(React.createElement("div", {className: "row header"}, 
            React.createElement("div", {className: "col head center-align weekend"}, "日"), 
            React.createElement("div", {className: "col head center-align "}, "一"), 
            React.createElement("div", {className: "col head center-align "}, "二"), 
            React.createElement("div", {className: "col head center-align "}, "三"), 
            React.createElement("div", {className: "col head center-align "}, "四"), 
            React.createElement("div", {className: "col head center-align "}, "五"), 
            React.createElement("div", {className: "col head center-align weekend"}, "六")
        ));

        for (var i = 0; i < dates.length; i++) {
            var label = "";
            if (dates[i]["lunarFestival"] != undefined) {
                label = (
                    React.createElement("div", null, 
                        React.createElement("span", {className: "date-block-day lunar-fest"}, dates[i]["day"]), 
                        React.createElement("span", {className: "date-block-festival lunar-fest"}, 
                        dates[i]["lunarFestival"]
                        )
                    ));
            } else if (dates[i]["term"] != undefined) {
                label = (
                    React.createElement("div", null, 
                        React.createElement("span", {className: "date-block-day lunar-fest"}, dates[i]["day"]), 
                        React.createElement("span", {className: "date-block-festival lunar-fest"}, 
                        dates[i]["term"]
                        )
                    ));
            } else if (dates[i]["solarFestival"] != undefined) {

                label = (
                    React.createElement("div", null, 
                        React.createElement("span", {className: "date-block-day solar-fest"}, dates[i]["day"]), 
                        React.createElement("span", {className: "date-block-festival solar-fest", 
                              title: dates[i]["solarFestival"].replace("国际", "")}, 
                            dates[i]["solarFestival"].replace("国际", "")
                        )
                    ));
            } else if (dates[i]["lunarDay"] == 1) {
                label = (
                    React.createElement("div", null, 
                        React.createElement("span", {className: "date-block-day lunar-month-name"}, dates[i]["day"]), 
                        React.createElement("span", {className: "date-block-festival lunar-month-name"}, 
                            dates[i]["lunarMonthName"]
                        )
                    ));
            } else {
                label = (
                    React.createElement("div", null, 
                        React.createElement("span", {className: "date-block-day lunar-day-name"}, dates[i]["day"]), 
                        React.createElement("span", {className: "date-block-festival lunar-day-name"}, 
                            dates[i]["lunarDayName"]
                        )
                    ));
            }

            var blockClass = CX({
                col: true,
                oneofseven: true,
                overmonth: dates[i]["month"] != chosenDay["month"],
                weekend: i % 7 == 0 || i % 7 == 6,
                chosenday: dates[i]["day"] == chosenDay["day"] && dates[i]["month"] == chosenDay["month"] && dates[i]["year"] == chosenDay["year"],
                today: dates[i]["day"] == today["day"] && dates[i]["month"] == today["month"] && dates[i]["year"] == today["year"]
            });

            tmpElements.push(
                React.createElement("div", {className: blockClass, onClick: this._onClick.bind(this, JSON.stringify(dates[i]))}, 
                    label
                )
            );

            if ((i + 1) % 7 == 0) {
                datesElements.push(
                    React.createElement("div", {className: "row"}, 
                        tmpElements, 
                        React.createElement("div", {className: "clearfix"})
                    ));
                tmpElements = [];
            }
        }

        return (
            React.createElement("div", null, 
                datesElements
            )
        )

    },

    _onClick: function (date) {
        Actions.changeDay(JSON.parse(date));
    }


});

module.exports = DateChoosePanel;

},{"../actions/actions":185,"lunar-calendar":7,"react/addons":12,"react/lib/cx":139}],187:[function(require,module,exports){
var React = require("react");
var Actions = require("../actions/actions");

var DateController = React.createClass({displayName: "DateController",

    render: function () {

        var chosenDay = this.props.chosenDay;
        var today = this.props.today;


        return (
            React.createElement("div", null, 
                React.createElement("div", {className: "date-controller"}, 
                    React.createElement("a", {href: "javascript:void(0);", onClick: this._minusYear}, React.createElement("i", {
                        className: "fa fa-2x fa-angle-double-left fa-fw"})), 
                    React.createElement("a", {href: "javascript:void(0);", onClick: this._minusMonth}, React.createElement("i", {
                        className: "fa fa-2x fa-angle-left fa-fw"})), 
                    React.createElement("span", {className: "year-block"}, chosenDay["year"]), 
                    React.createElement("span", {className: "month-block"}, chosenDay["month"], "月"), 
                    React.createElement("a", {href: "javascript:void(0);", onClick: this._addMonth}, React.createElement("i", {
                        className: "fa fa-2x fa-angle-right fa-fw"})), 
                    React.createElement("a", {href: "javascript:void(0);", onClick: this._addYear}, React.createElement("i", {
                        className: "fa fa-2x fa-angle-double-right fa-fw"})), 
                    React.createElement("a", {href: "javascript:void(0);", className: "right grey-text", style: {marginRight: "15px"}, onClick: this._quitApp}, React.createElement("i", {className: "fa fa-fw fa-2x fa-power-off"})), 
                    React.createElement("a", {href: "javascript:void(0);", className: "right", style: {marginRight: "15px"}, onClick: this._backToToday}, React.createElement("i", {className: "fa fa-fw fa-2x fa-refresh"})), 
                    React.createElement("div", {className: "clearfix"})
                ), 
                React.createElement("div", {className: "divider"})
            )
        );
    },

    _minusYear: function () {
        Actions.minusYear();
    },

    _addYear: function () {
        Actions.addYear();
    },

    _minusMonth: function () {
        Actions.minusMonth();
    },

    _addMonth: function () {
        Actions.addMonth();
    },

    _backToToday: function(){
        Actions.backToToday()
    },

    _quitApp: function(){
        Actions.quitApp();
    }
});

module.exports = DateController;

},{"../actions/actions":185,"react":184}],188:[function(require,module,exports){
var React = require("react");
var DateController = require("./date-controller");
var DateChoosePanel = require("./date-choose-panel");

var DatePanel = React.createClass({displayName: "DatePanel",
    render: function(){
        return (
            React.createElement("div", null, 
                React.createElement(DateController, {
                    chosenDay: this.props.chosenDay, 
                    today: this.props.today
                    }), 
                React.createElement(DateChoosePanel, {
                    chosenMonthDates: this.props.chosenMonthDates, 
                    chosenDay: this.props.chosenDay, 
                    today: this.props.today
                    })
            )
        );
    }
});

module.exports = DatePanel;

},{"./date-choose-panel":186,"./date-controller":187,"react":184}],189:[function(require,module,exports){
var React = require("react");
var ReactTransitiveNumber = require("react-transitive-number");
var Store = require("../stores/stores");


var LunarPanel = React.createClass({displayName: "LunarPanel",

    render: function(){
        var chosenDay = this.props.chosenDay;

        var festivalElements = [];

        if(chosenDay["term"]){
            festivalElements.push(
                React.createElement("span", {className: "festival-detail term"}, chosenDay["term"])
            );
        }

        if(chosenDay["lunarFestival"]){
            festivalElements.push(
              React.createElement("span", {className: "festival-detail lunar"}, chosenDay["lunarFestival"])
            );
        }


        if(chosenDay["solarFestival"]){
            var festivals = chosenDay["solarFestival"].replace("国际", "").split(" ");
            for(var i = 0; i < festivals.length; i++){
                festivalElements.push(
                  React.createElement("span", {className: "festival-detail"}, festivals[i])
                );
            }
        }

        var hl_y = Store.getHL(chosenDay) ? Store.getHL(chosenDay)["y"] : "";
        var hl_j = Store.getHL(chosenDay) ? Store.getHL(chosenDay)["j"] : "";

        return (
            React.createElement("div", {className: "lunar-panel"}, 
                React.createElement("div", {className: "ganzhi"}, 
                    React.createElement(ReactTransitiveNumber, {key: "ganzhinian", className: "ganzhi-detail"}, chosenDay["GanZhiYear"] + "年"), 
                    React.createElement(ReactTransitiveNumber, {key: "ganzhinmonth", className: "ganzhi-detail"}, chosenDay["GanZhiMonth"] + "月"), 
                    React.createElement(ReactTransitiveNumber, {key: "ganzhiri", className: "ganzhi-detail"}, chosenDay["GanZhiDay"] + "日")
                ), 
                React.createElement("div", {className: "daynumber"}, 
                    React.createElement("div", {className: "solar-panel"}, 
                        React.createElement(ReactTransitiveNumber, {className: "solar-detail"}, chosenDay["year"]), 
                        React.createElement(ReactTransitiveNumber, {className: "solar-detail"}, chosenDay["month"] + "月")
                    ), 
                    React.createElement("div", {className: "festival-panel"}, 
                        festivalElements
                    ), 
                    React.createElement("h1", {className: "center-align"}, 
                        React.createElement(ReactTransitiveNumber, null, chosenDay["day"])
                    ), 
                    React.createElement("p", {className: "lunar-detail"}, 
                        React.createElement(ReactTransitiveNumber, null, chosenDay["lunarMonthName"]), 
                        React.createElement(ReactTransitiveNumber, null, chosenDay["lunarDayName"])
                    ), 
                    React.createElement("div", {className: "hl-panel"}, 
                        React.createElement("p", {title: hl_y, className: "hl-detail"}, "宜: ", hl_y), 
                        React.createElement("p", {title: hl_j, className: "hl-detail"}, "忌: ", hl_j)
                    )
                )
            )
        )
    }
});


module.exports = LunarPanel;

},{"../stores/stores":208,"react":184,"react-transitive-number":9}],190:[function(require,module,exports){
var React = require("react");
var DatePanel = require("./date-panel");
var LunarPanel = require("./lunar-panel");
var Store = require("../stores/stores");


var MainPanel = React.createClass({displayName: "MainPanel",

    getInitialState: function () {
        return {
            today: Store.getToday(),
            chosenDay: Store.getChosenDay(),
            chosenMonthDates: Store.getCurrentMonthDates()
        };
    },

    componentDidMount: function () {
        Store.addChangeDayListener(this._onChange);
        ipc.on("REFRESH_APP", function(){
            Store.chosenDay = Store.getToday();
            Store.emitChangeDay();
        });
    },


    render: function () {
        return (
            React.createElement("div", {style: {width: "800px", position: "relative", border: "2px solid #00897B", borderLeft: "none", marginBottom: "0"}, className: "row"}, 

                React.createElement("div", {className: "col s6"}, 
                    React.createElement(LunarPanel, {chosenDay: this.state.chosenDay})
                ), 
                React.createElement("div", {className: "col s6"}, 
                    React.createElement(DatePanel, {
                        today: this.state.today, 
                        chosenDay: this.state.chosenDay, 
                        chosenMonthDates: this.state.chosenMonthDates}
                        )
                )
            )
        )
    },

    _onChange: function () {
        this.setState({
            today: Store.getToday(),
            chosenDay: Store.getChosenDay(),
            chosenMonthDates: Store.getCurrentMonthDates()
        });

        $(".chosenday").removeClass("chosenday");
    }
});

module.exports = MainPanel;

},{"../stores/stores":208,"./date-panel":188,"./lunar-panel":189,"react":184}],191:[function(require,module,exports){
/**
 * Created by sinceow on 15/6/22.
 */

var keyMirror = require("keymirror");

module.exports = keyMirror({
    CHANGE_DAY: null,
    ADD_MONTH: null,
    MINUS_MONTH: null,
    ADD_YEAR: null,
    MINUS_YEAR: null,
    BACK_TO_TODAY: null
});


},{"keymirror":6}],192:[function(require,module,exports){
/**
 * Created by sinceow on 15/6/22.
 */
var Dispatcher = require("flux").Dispatcher;

module.exports = new Dispatcher();


},{"flux":1}],193:[function(require,module,exports){
/**
 * Created by sinceow on 15/6/22.
 */

var React = require("react");
var MainPanel = require("./components/main-panel");


React.render(React.createElement(MainPanel, null), document.body);

},{"./components/main-panel":190,"react":184}],194:[function(require,module,exports){
module.exports = {
	"d0101": {
		"y": "教牛马.余事勿取xixi.",
		"j": "入宅.动土.破土.余事勿取."
	},
	"d0102": {
		"y": "嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.",
		"j": "开市.安葬."
	},
	"d0103": {
		"y": "开市.立券.开光.解除.安机械.上梁.启攒.安葬.",
		"j": "嫁娶.祈福."
	},
	"d0104": {
		"y": "平治道涂.余事勿取.",
		"j": "诸事不宜."
	},
	"d0105": {
		"y": "求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.",
		"j": "开市.嫁娶."
	},
	"d0106": {
		"y": "嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产.",
		"j": "开市.出行.安葬.行丧."
	},
	"d0107": {
		"y": "沐浴.捕捉.畋猎.理发.整手足甲.入殓.除服.成服.破土.安葬.谢土.立碑.修坟.启攒.",
		"j": "纳采.订盟.嫁娶.上梁.开市.斋醮.造屋.安门."
	},
	"d0108": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "斋醮.嫁娶.开市."
	},
	"d0109": {
		"y": "沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬.",
		"j": "祈福.嫁娶.安床.入宅.造船."
	},
	"d0110": {
		"y": "祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取.",
		"j": "造庙.入宅.修造.安葬.行丧.嫁娶."
	},
	"d0111": {
		"y": "嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.",
		"j": "开市.安床.安葬.修坟."
	},
	"d0112": {
		"y": "订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井.",
		"j": "造庙.嫁娶.出行.动土.安葬.行丧."
	},
	"d0113": {
		"y": "交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.",
		"j": "开光.嫁娶.开市.动土.破土."
	},
	"d0114": {
		"y": "祭祀.解除.教牛马.会亲友.余事勿取.",
		"j": "破土.动土.安葬."
	},
	"d0115": {
		"y": "纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓.",
		"j": "探病.祭祀.出行.上梁.造屋.谢土.安葬."
	},
	"d0116": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.",
		"j": "入宅.开光.开市.动土."
	},
	"d0117": {
		"y": "祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.",
		"j": "移徙.入宅.造庙.作灶.治病.安葬."
	},
	"d0118": {
		"y": "祭祀.安碓硙.结网.余事勿取.",
		"j": "嫁娶.安葬."
	},
	"d0119": {
		"y": "嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.",
		"j": "造屋.开市.动土.破土."
	},
	"d0120": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "嫁娶.开市.安葬."
	},
	"d0121": {
		"y": "纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.",
		"j": "祈福.嫁娶.造庙.安床.谢土."
	},
	"d0122": {
		"y": "入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.",
		"j": "开市.伐木.嫁娶.作梁."
	},
	"d0123": {
		"y": "祭祀.作灶.入殓.除服.余事勿取.",
		"j": "开市.安床."
	},
	"d0124": {
		"y": "塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.",
		"j": "嫁娶.入殓.安葬.出行."
	},
	"d0125": {
		"y": "祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.",
		"j": "开仓.嫁娶.移徙.入宅."
	},
	"d0126": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜."
	},
	"d0127": {
		"y": "沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.",
		"j": "作灶.祭祀.上梁.出行."
	},
	"d0128": {
		"y": "出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口.",
		"j": "作灶.掘井.谢土.入宅."
	},
	"d0129": {
		"y": "修饰垣墙.平治道涂.入殓.移柩.余事勿取.",
		"j": "嫁娶.移徙.入宅.开光."
	},
	"d0130": {
		"y": "会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜.",
		"j": "出行.治病.安葬.开市."
	},
	"d0131": {
		"y": "祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门.",
		"j": "造屋.开市.作灶.入宅."
	},
	"d0201": {
		"y": "解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜."
	},
	"d0202": {
		"y": "塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.",
		"j": "入宅.安床."
	},
	"d0203": {
		"y": "入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.",
		"j": "破土.伐木."
	},
	"d0204": {
		"y": "塞穴.结网.取渔.畋猎.",
		"j": "嫁娶.安门.移徙.入宅.安葬."
	},
	"d0205": {
		"y": "纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅.",
		"j": "嫁娶.开市.安葬.破土."
	},
	"d0206": {
		"y": "纳采.嫁娶.祭祀.祈福.出行.开市.会亲友.动土.破土.启攒.",
		"j": "移徙.入宅.出火.安门.安葬."
	},
	"d0207": {
		"y": "祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "嫁娶.动土.开光.造屋.破土."
	},
	"d0208": {
		"y": "纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.",
		"j": "祭祀.移徙.入宅.动土.破土."
	},
	"d0209": {
		"y": "祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬.",
		"j": "开光.嫁娶.作灶.掘井.纳畜."
	},
	"d0210": {
		"y": "会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.",
		"j": "开市.动土.安葬.破土."
	},
	"d0211": {
		"y": "祭祀.平治道涂.余事勿取.",
		"j": "嫁娶.祈福.掘井.安葬."
	},
	"d0212": {
		"y": "祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土.",
		"j": "置产.造屋.合脊.开光.探病.安门.作灶."
	},
	"d0213": {
		"y": "入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.",
		"j": "开光.开市.入宅.动土.造屋."
	},
	"d0214": {
		"y": "祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取.",
		"j": "入宅.开市.安葬."
	},
	"d0215": {
		"y": "祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土.",
		"j": "安床.栽种.治病.作灶."
	},
	"d0216": {
		"y": "",
		"j": ""
	},
	"d0217": {
		"y": "塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.",
		"j": "伐木.作灶.安葬.取渔.入宅."
	},
	"d0218": {
		"y": "祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓硙.放水.开市.立券.交易.",
		"j": "安葬.上梁.入宅.作灶."
	},
	"d0219": {
		"y": "祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.",
		"j": "出行.嫁娶.入宅.动土."
	},
	"d0220": {
		"y": "裁衣.合帐.入殓.除服.成服.会亲友.纳财.",
		"j": "祭祀.祈福.移徙.嫁娶.入宅."
	},
	"d0221": {
		"y": "祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.",
		"j": "掘井."
	},
	"d0222": {
		"y": "安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓.",
		"j": "斋醮.作灶.安床.安葬."
	},
	"d0223": {
		"y": "",
		"j": ""
	},
	"d0224": {
		"y": "塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.",
		"j": "造屋.栽种.安葬.作灶."
	},
	"d0225": {
		"y": "祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.",
		"j": "栽种.动土.开市.作灶."
	},
	"d0226": {
		"y": "求医.破屋.",
		"j": "诸事不宜."
	},
	"d0227": {
		"y": "祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水.",
		"j": "作灶.安床."
	},
	"d0228": {
		"y": "取渔.入殓.除服.成服.移柩.破土.安葬.立碑.",
		"j": "嫁娶.上梁.入宅.作灶."
	},
	"d0229": {
		"y": "祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.",
		"j": "安葬.作灶.伐木.作梁."
	},
	"d0301": {
		"y": "祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩.",
		"j": "入殓.安葬.作灶.入宅."
	},
	"d0302": {
		"y": "祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.",
		"j": "开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土."
	},
	"d0303": {
		"y": "安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.",
		"j": "嫁娶.出行.动土.开渠.入宅.祭祀.掘井."
	},
	"d0304": {
		"y": "嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.",
		"j": "掘井.词讼."
	},
	"d0305": {
		"y": "祭祀.沐浴.解除.扫舍.塞穴.牧养.",
		"j": "嫁娶.安葬.行丧.安门."
	},
	"d0306": {
		"y": "",
		"j": ""
	},
	"d0307": {
		"y": "嫁娶.冠笄.会亲友.安机械.纳财.交易.立券.置产.",
		"j": "开市.造屋.治病.作灶."
	},
	"d0308": {
		"y": "嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬.",
		"j": "纳畜.理发.合寿木."
	},
	"d0309": {
		"y": "祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.",
		"j": "纳采.开光.安床.嫁娶.开市."
	},
	"d0310": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "嫁娶.移徙.开市.入宅."
	},
	"d0311": {
		"y": "嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.",
		"j": "塑绘.开光.造桥.除服.成服."
	},
	"d0312": {
		"y": "开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财.",
		"j": "祈福.嫁娶.安葬.破土."
	},
	"d0313": {
		"y": "理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.",
		"j": "纳财.开市.安葬.破土."
	},
	"d0314": {
		"y": "开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养.",
		"j": "纳采.动土.开市.交易.安门."
	},
	"d0315": {
		"y": "裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.",
		"j": "祭祀.嫁娶.出行.上梁.掘井."
	},
	"d0316": {
		"y": "祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.",
		"j": "栽种.动土.安葬.掘井.修坟.探病."
	},
	"d0317": {
		"y": "扫舍.塞穴.余事勿取.",
		"j": "诸事不宜."
	},
	"d0318": {
		"y": "塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.",
		"j": "作灶.出行.入宅.安葬."
	},
	"d0319": {
		"y": "祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.",
		"j": "动土.作灶.入宅.开光.安床."
	},
	"d0320": {
		"y": "祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.",
		"j": "赴任."
	},
	"d0321": {
		"y": "祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.",
		"j": "安床.嫁娶.作灶.入宅."
	},
	"d0322": {
		"y": "破屋.坏垣.",
		"j": "诸事不宜."
	},
	"d0323": {
		"y": "祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎.",
		"j": "作梁.造庙."
	},
	"d0324": {
		"y": "祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.",
		"j": "造庙.嫁娶.伐木.安葬."
	},
	"d0325": {
		"y": "祭祀.沐浴.捕捉.栽种.",
		"j": "嫁娶.入宅.移徙.作灶.安葬."
	},
	"d0326": {
		"y": "祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.",
		"j": "栽种.安葬."
	},
	"d0327": {
		"y": "订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.",
		"j": "作灶.开光.嫁娶.开市.入宅."
	},
	"d0328": {
		"y": "祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱.",
		"j": "作灶.掘井.动土.栽种."
	},
	"d0329": {
		"y": "祭祀.扫舍.塞穴.",
		"j": "栽种.作灶.安葬.嫁娶."
	},
	"d0330": {
		"y": "开光.塑绘.裁衣.冠笄.伐木.拆卸.竖柱.上梁.开仓.会亲友.安机械.造仓.造屋.交易.解除.开市.立券.纳财.",
		"j": "出行.嫁娶.入宅.安葬."
	},
	"d0331": {
		"y": "冠笄.入殓.除服.成服.移柩.平治道涂.修饰垣墙.",
		"j": "造屋.作灶.治病.探病."
	},
	"d0401": {
		"y": "祭祀.嫁娶.祈福.纳采.裁衣.合帐.安床.入宅.安香.入殓.移柩.安葬.谢土.修造.安碓硙.求嗣.会亲友.挂匾.交易.立券.纳财.造仓.放水.",
		"j": "栽种.伐木."
	},
	"d0402": {
		"y": "祭祀.祈福.斋醮.订盟.纳采.裁衣.合帐.拆卸.修造.动土.上梁.起基.移柩.安葬.谢土.沐浴.扫舍.开柱眼.伐木.出火.",
		"j": "安床.开市.立券.作灶."
	},
	"d0403": {
		"y": "",
		"j": ""
	},
	"d0404": {
		"y": "祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.",
		"j": "祈福.斋醮.开市.安葬."
	},
	"d0405": {
		"y": "沐浴.捕捉.畋猎.结网.取渔.",
		"j": "祭祀.嫁娶.入宅.作灶.安葬."
	},
	"d0406": {
		"y": "祭祀.祈福.求嗣.斋醮.纳采.订盟.开光.竖柱.上梁.开仓.出货财.造屋.起基.定磉.安门.诸事不宜.破土.入殓.启攒.谢土.",
		"j": "出火.嫁娶.开市."
	},
	"d0407": {
		"y": "祭祀.捕捉.解除.余事勿取.",
		"j": "嫁娶.安葬."
	},
	"d0408": {
		"y": "纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.",
		"j": "祈福.动土.破土.安葬.入殓."
	},
	"d0409": {
		"y": "祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.",
		"j": "开光.嫁娶.掘井.安葬.安门.探病."
	},
	"d0410": {
		"y": "祭祀.解除.教牛马.出行.余事勿取.",
		"j": "动土.破土.行丧.开光.作梁.安葬.探病."
	},
	"d0411": {
		"y": "沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.",
		"j": "开市.嫁娶.移徙.入宅.掘井.安葬."
	},
	"d0412": {
		"y": "求嗣.出行.解除.订盟.纳采.嫁娶.会亲友.进人口.安床.开市.交易.纳畜.牧养.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "祈福.开市.修造.动土.破土.谢土."
	},
	"d0413": {
		"y": "祭祀.作灶.平治道涂.余事勿取.",
		"j": "嫁娶.安葬.动土.安床.治病."
	},
	"d0414": {
		"y": "造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮.",
		"j": "入宅.动土.开仓.出货财."
	},
	"d0415": {
		"y": "祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.",
		"j": "开市.动土.掘井.开池."
	},
	"d0416": {
		"y": "祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.",
		"j": "嫁娶.开市.交易.入宅.安葬."
	},
	"d0417": {
		"y": "诸事不宜.",
		"j": "诸事不宜."
	},
	"d0418": {
		"y": "祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.",
		"j": "出火.入宅.安葬.伐木."
	},
	"d0419": {
		"y": "祭祀.余事勿取.",
		"j": "造庙.嫁娶.安床.余事勿取."
	},
	"d0420": {
		"y": "订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.",
		"j": "入殓.安葬.入宅.安床."
	},
	"d0421": {
		"y": "祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.",
		"j": "掘井.安门.嫁娶.纳采."
	},
	"d0422": {
		"y": "祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.",
		"j": "掘井.动土.破土.安葬.开光."
	},
	"d0423": {
		"y": "纳采.开光.求医.治病.动土.上梁.移徙.入宅.",
		"j": "嫁娶.开市.安葬."
	},
	"d0424": {
		"y": "祭祀.会亲友.开市.安床.启攒.安葬.",
		"j": "嫁娶.动土.破土."
	},
	"d0425": {
		"y": "祭祀.作灶.掘井.平治道涂.",
		"j": "嫁娶.安葬."
	},
	"d0426": {
		"y": "祭祀.斋醮.开市.动土.入殓.破土.安葬.",
		"j": "嫁娶.移徙.入宅."
	},
	"d0427": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.移徙.求医.",
		"j": "开市.动土.破土."
	},
	"d0428": {
		"y": "祭祀.求医.治病.解除.余事勿取.",
		"j": "诸事不宜."
	},
	"d0429": {
		"y": "沐浴.结网.取渔.",
		"j": "嫁娶.入宅.安葬."
	},
	"d0430": {
		"y": "",
		"j": "诸事不宜."
	},
	"d0501": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜."
	},
	"d0502": {
		"y": "嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.",
		"j": "祈福.入殓.祭祀.作灶.安葬.探病."
	},
	"d0503": {
		"y": "嫁娶.出行.合帐.冠笄.安床.除服.成服.作灶.交易.立券.入殓.移柩.破土.安葬.",
		"j": "词讼.开光.开市."
	},
	"d0504": {
		"y": "出行.修饰垣墙.造畜椆栖.教牛马.余事勿取.",
		"j": "诸事不宜."
	},
	"d0505": {
		"y": "祭祀.解除.断蚁.会亲友.余事勿取.",
		"j": "嫁娶.安葬."
	},
	"d0506": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.治病.造车器.修造.动土.移徙.入宅.",
		"j": "开市.出行.安床.作灶.安葬."
	},
	"d0507": {
		"y": "嫁娶.纳采.订盟.会亲友.安机械.结网.冠笄.祭祀.求嗣.进人口.经络.",
		"j": "开市.作灶.动土.行丧.安葬."
	},
	"d0508": {
		"y": "祭祀.沐浴.移徙.破土.安葬.扫舍.平治道涂.",
		"j": "祈福.嫁娶.入宅.安床.作灶."
	},
	"d0509": {
		"y": "祭祀.祈福.斋醮.求嗣.安机械.纳畜.移徙.入宅.安机械.塑绘.开光.起基.竖柱.上梁.作灶.安门.安香.出火.造屋.启攒.安葬.",
		"j": "动土.破土.嫁娶.嫁娶."
	},
	"d0510": {
		"y": "嫁娶.纳采.订盟.斋醮.开光.祭祀.祈福.求医.治病.会亲友.动土.解除.捕捉.纳畜.牧养.入殓.破土.安葬.",
		"j": "移徙.入宅.造屋.架马."
	},
	"d0511": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "行丧.安葬."
	},
	"d0512": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "斋醮.开市.嫁娶.作灶."
	},
	"d0513": {
		"y": "开市.交易.立券.安机械.会亲友.开光.求医.治病.造屋.起基.修造.动土.定磉.竖柱.上梁.安门.作灶.放水.作厕.开池.栽种.牧养.造畜椆栖.破土.安葬.立碑.",
		"j": "嫁娶.出火.移徙.入宅."
	},
	"d0514": {
		"y": "栽种.捕捉.畋猎.余事勿取.",
		"j": "开市.动土.祭祀.斋醮.安葬.探病."
	},
	"d0515": {
		"y": "嫁娶.祭祀.祈福.求嗣.斋醮.订盟.纳采.解除.出行.动土.破土.习艺.针灸.理发.会亲友.起基.修造.动土.竖柱.定磉.安床.拆卸.纳畜.牧养.放水.破土.除服.成服.修坟.立碑.",
		"j": "开市.入宅.探病.出火.造屋."
	},
	"d0516": {
		"y": "余事勿取.",
		"j": "余事勿取."
	},
	"d0517": {
		"y": "塞穴.断蚁.结网.余事勿取.",
		"j": "破土.安葬."
	},
	"d0518": {
		"y": "开光.出行.纳采.嫁娶.伐木.架马.出火.拆卸.移徙.入宅.造庙.造桥.造船.造畜椆栖.开市.入殓.除服.成服.移柩.安葬.",
		"j": ""
	},
	"d0519": {
		"y": "进人口.牧养.置产.塞穴.结网.余事勿取.",
		"j": "诸事不宜."
	},
	"d0520": {
		"y": "开光.出行.嫁娶.",
		"j": "会亲友.进人口.修造.动土.起基.移徙.开市.纳畜.入殓.除服.成服.移柩.破土.安葬.修坟.立碑.会亲友."
	},
	"d0521": {
		"y": "嫁娶.纳采.出行.祭祀.祈福.开市.动土.移徙.入宅.破土.安葬.",
		"j": "安门."
	},
	"d0522": {
		"y": "嫁娶.纳采.求医.治病.修造.动土.移徙.入宅.破土.安葬.",
		"j": "开市.开光."
	},
	"d0523": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "诸事不宜."
	},
	"d0524": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "祈福.斋醮."
	},
	"d0525": {
		"y": "纳采.祭祀.祈福.开市.求医.治病.动土.纳畜.",
		"j": "嫁娶.安葬."
	},
	"d0526": {
		"y": "嫁娶.纳采.出行.移徙.入宅.",
		"j": "动土.破土.安葬."
	},
	"d0527": {
		"y": "订盟.纳采.祭祀.动土.破土.交易.立券.",
		"j": "嫁娶.安葬."
	},
	"d0528": {
		"y": "嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.",
		"j": "赴任.捕捉."
	},
	"d0529": {
		"y": "塞穴.结网.余事勿取.",
		"j": "诸事不宜."
	},
	"d0530": {
		"y": "",
		"j": ""
	},
	"d0531": {
		"y": "订盟.纳采.会亲友.安床.作灶.造畜椆栖.",
		"j": "开市.安葬."
	},
	"d0601": {
		"y": "沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.",
		"j": "诸事不宜."
	},
	"d0602": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.",
		"j": ""
	},
	"d0603": {
		"y": "祭祀.开光.出行.解除.塑绘.裁衣.入殓.移柩.破土.启攒.安葬.除服.成服.",
		"j": "嫁娶.上梁.修造.拆卸.架马.入宅.伐木.动土.出火.开柱眼."
	},
	"d0604": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜."
	},
	"d0605": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "入宅.嫁娶.移徙."
	},
	"d0606": {
		"y": "嫁娶.安机械.交易.出行.祭祀.祈福.求嗣.斋醮.塑绘.开光.合帐.裁衣.放水.开池.掘井.",
		"j": "作灶.理发.造桥.行丧.安葬."
	},
	"d0607": {
		"y": "纳采.冠笄.求医.治病.开市.立券.修造.动土.安机械.破土.安葬.",
		"j": "斋醮.祭祀.移徙.入宅.上梁.嫁娶."
	},
	"d0608": {
		"y": "祭祀.作灶.余事勿取.",
		"j": "开市.安葬.破土.修坟.掘井."
	},
	"d0609": {
		"y": "祭祀.祈福.求嗣.斋醮.安香.解除.移徙.入宅.会亲友.求医.治病.动土.破土.开生坟.合寿木.",
		"j": "合帐.上梁.经络.安葬.入殓."
	},
	"d0610": {
		"y": "嫁娶.冠笄.修造.动土.作灶.移徙.入宅.补垣.塞穴.纳畜.牧养.架马.修造.动土.起基.定磉.开池.造船.",
		"j": "祈福.开光.掘井.开市.安葬."
	},
	"d0611": {
		"y": "祭祀.交易.纳财.",
		"j": "斋醮.开渠.上梁.动土.破土."
	},
	"d0612": {
		"y": "嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕.",
		"j": "行丧.伐木.作梁.作灶."
	},
	"d0613": {
		"y": "开光.求嗣.出行.冠笄.嫁娶.伐木.架马.开柱眼.修造.移徙.入宅.开市.交易.立券.出行.安香.出火.挂匾.起基.修造.开生坟.合寿木.入殓.除服.成服.移柩.安葬.",
		"j": "安床.出货财.作灶.动土.破土."
	},
	"d0614": {
		"y": "祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.",
		"j": "斋醮.出行.治病.合寿木."
	},
	"d0615": {
		"y": "安机械.移徙.入宅.出行.祭祀.祈福.斋醮.纳采.订盟.安香.出火.解除.会亲友.修造.动土.拆卸.起基.定磉.移徙.入宅.造屋.安床.修造.破土.安葬.入殓.立碑.",
		"j": "开市.伐木.作梁.作灶."
	},
	"d0616": {
		"y": "祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.",
		"j": "开市.交易.嫁娶.安葬.行丧."
	},
	"d0617": {
		"y": "破屋.坏垣.求医.治病.畋猎.余事勿取.",
		"j": "嫁娶.入宅."
	},
	"d0618": {
		"y": "嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.",
		"j": "开市.安门.掘井.作灶."
	},
	"d0619": {
		"y": "订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.",
		"j": ""
	},
	"d0620": {
		"y": "祭祀.捕捉.取渔.修饰垣墙.余事勿取.",
		"j": "诸事不宜."
	},
	"d0621": {
		"y": "嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.",
		"j": "开市.安门."
	},
	"d0622": {
		"y": "裁衣.作灶.移徙.入宅.纳畜.",
		"j": "嫁娶.安葬."
	},
	"d0623": {
		"y": "祭祀.入殓.移柩.启攒.安葬.",
		"j": "上梁.动土.破土."
	},
	"d0624": {
		"y": "订盟.纳采.出行.祈福.斋醮.安床.会亲友.",
		"j": "移徙.入宅.安葬."
	},
	"d0625": {
		"y": "嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.",
		"j": "动土.破土."
	},
	"d0626": {
		"y": "嫁娶.祭祀.沐浴.扫舍.修饰垣墙.",
		"j": "行丧.安葬."
	},
	"d0627": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "作灶."
	},
	"d0628": {
		"y": "订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.",
		"j": "开市.安葬."
	},
	"d0629": {
		"y": "诸事不宜.",
		"j": "诸事不宜."
	},
	"d0630": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.",
		"j": "开光.开市."
	},
	"d0701": {
		"y": "开光.求医.治病.动土.上梁.入殓.破土.安葬.",
		"j": "嫁娶.开光."
	},
	"d0702": {
		"y": "祭祀.栽种.余事勿取.",
		"j": "诸事不宜."
	},
	"d0703": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.",
		"j": "安葬.开市.交易.立券."
	},
	"d0704": {
		"y": "求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖.",
		"j": "安葬.出行.祈福.栽种."
	},
	"d0705": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜."
	},
	"d0706": {
		"y": "嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.",
		"j": "安葬.行丧.伐木.作梁."
	},
	"d0707": {
		"y": "祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.",
		"j": "嫁娶.出行.纳采.入宅.作灶."
	},
	"d0708": {
		"y": "纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.",
		"j": "斋醮.入宅.安门.安葬.破土.行丧."
	},
	"d0709": {
		"y": "祭祀.修饰垣墙.平治道涂.",
		"j": "开市.动土.破土.嫁娶.修造.安葬."
	},
	"d0710": {
		"y": "订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.",
		"j": "嫁娶.安葬.行丧.破土.修坟."
	},
	"d0711": {
		"y": "沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.",
		"j": "出火.嫁娶.入宅.作灶.破土.上梁.动土."
	},
	"d0712": {
		"y": "求医.治病.破屋.坏垣.余事勿取.",
		"j": "嫁娶.出行."
	},
	"d0713": {
		"y": "纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.",
		"j": "祈福.上梁.开仓.掘井.牧养."
	},
	"d0714": {
		"y": "祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.",
		"j": "嫁娶.开市.栽种.合寿木."
	},
	"d0715": {
		"y": "祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.",
		"j": "开市.入宅.安床.动土.安葬."
	},
	"d0716": {
		"y": "祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓硙.",
		"j": "造屋.入宅.作灶.入学.安葬.行丧."
	},
	"d0717": {
		"y": "祭祀.塞穴.结网.畋猎.余事勿取.",
		"j": "移徙.开市.入宅.嫁娶.开光.安门."
	},
	"d0718": {
		"y": "开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.",
		"j": "动土.破土.安葬.治病."
	},
	"d0719": {
		"y": "移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.",
		"j": "开市.斋醮.安床.出行.经络."
	},
	"d0720": {
		"y": "塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.",
		"j": ""
	},
	"d0721": {
		"y": "祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.",
		"j": "余事勿取."
	},
	"d0722": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "诸事不宜."
	},
	"d0723": {
		"y": "纳采.祭祀.祈福.解除.动土.破土.安葬.",
		"j": "嫁娶.移徙.入宅."
	},
	"d0724": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "诸事不宜."
	},
	"d0725": {
		"y": "嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "祭祀.祈福."
	},
	"d0726": {
		"y": "嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "赴任."
	},
	"d0727": {
		"y": "祭祀.作灶.纳财.捕捉.",
		"j": "开市.破土."
	},
	"d0728": {
		"y": "嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅.",
		"j": "造庙.安葬."
	},
	"d0729": {
		"y": "补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.",
		"j": "诸事不宜."
	},
	"d0730": {
		"y": "嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.",
		"j": "动土.安葬."
	},
	"d0731": {
		"y": "嫁娶.祭祀.祈福.斋醮.治病.破土.安葬.",
		"j": "开市.入宅."
	},
	"d0801": {
		"y": "嫁娶.出行.开市.安床.入殓.启攒.安葬.",
		"j": "祈福.动土.破土."
	},
	"d0802": {
		"y": "嫁娶.祭祀.裁衣.结网.冠笄.沐浴.",
		"j": "开仓.出货财.置产.安葬.动土.破土.掘井.栽种."
	},
	"d0803": {
		"y": "入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.",
		"j": "嫁娶.破土.置产.栽种.安葬.修坟.行丧."
	},
	"d0804": {
		"y": "祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.",
		"j": "嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种."
	},
	"d0805": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜."
	},
	"d0806": {
		"y": "嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.",
		"j": "伐木.祭祀.纳畜.祭祀."
	},
	"d0807": {
		"y": "订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬.",
		"j": "动土.破土.嫁娶.掘井.安床."
	},
	"d0808": {
		"y": "嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网.",
		"j": "纳采.订盟.经络.行丧.安葬.探病."
	},
	"d0809": {
		"y": "嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.",
		"j": "掘井.出行.破土.行丧.安葬."
	},
	"d0810": {
		"y": "嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒.",
		"j": "出火.入宅.造屋.安门.安葬."
	},
	"d0811": {
		"y": "嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.",
		"j": "动土.破土.掘井.开光.上梁.词讼."
	},
	"d0812": {
		"y": "嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.",
		"j": "开市.动土.破土.安床.开仓.上梁."
	},
	"d0813": {
		"y": "祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.",
		"j": "嫁娶.出行.入宅.开市.安门."
	},
	"d0814": {
		"y": "塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.",
		"j": "祈福.开市.动土.行丧.安葬."
	},
	"d0815": {
		"y": "出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养.",
		"j": "嫁娶.安门.动土.安葬."
	},
	"d0816": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬.",
		"j": "开市.立券.纳财.作灶."
	},
	"d0817": {
		"y": "祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.",
		"j": "嫁娶.纳采.订盟.开市.入宅."
	},
	"d0818": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "行丧.安葬."
	},
	"d0819": {
		"y": "祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.",
		"j": "动土.破土.订盟.安床.开池."
	},
	"d0820": {
		"y": "祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.",
		"j": ""
	},
	"d0821": {
		"y": "塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养.",
		"j": ""
	},
	"d0822": {
		"y": "祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.",
		"j": ""
	},
	"d0823": {
		"y": "嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅.",
		"j": "动土.破土."
	},
	"d0824": {
		"y": "嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.",
		"j": "作灶.动土.破土."
	},
	"d0825": {
		"y": "订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.",
		"j": "嫁娶.开市."
	},
	"d0826": {
		"y": "订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.",
		"j": "开市.安葬."
	},
	"d0827": {
		"y": "沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.祈福.余事勿取."
	},
	"d0828": {
		"y": "嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.",
		"j": "开市.安葬."
	},
	"d0829": {
		"y": "捕捉.结网.入殓.破土.安葬.",
		"j": "嫁娶.入宅."
	},
	"d0830": {
		"y": "沐浴.治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜."
	},
	"d0831": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.",
		"j": "动土.破土."
	},
	"d0901": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.",
		"j": "开光.针灸."
	},
	"d0902": {
		"y": "订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.",
		"j": "动土.安葬."
	},
	"d0903": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.",
		"j": "入宅.作梁.安门.伐木.修造.上梁.入殓.造屋."
	},
	"d0904": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.",
		"j": "造屋.开光.理发.造船.掘井.作灶."
	},
	"d0905": {
		"y": "祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.",
		"j": "破土.置产.掘井.动土.安床."
	},
	"d0906": {
		"y": "祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍.",
		"j": "嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶."
	},
	"d0907": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.",
		"j": "针灸.伐木.作梁.造庙.行丧.安葬."
	},
	"d0908": {
		"y": "出行.开市.交易.立券.安机械.出火.上梁.移徙.",
		"j": "嫁娶.安葬.动土.造桥."
	},
	"d0909": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "斋醮.嫁娶.移徙.出行.上梁.入宅."
	},
	"d0910": {
		"y": "嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬.",
		"j": "纳采.订盟.架马.词讼.开渠."
	},
	"d0911": {
		"y": "沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.",
		"j": "祭祀.嫁娶.安床.开市.入宅.探病.上梁."
	},
	"d0912": {
		"y": "余事勿取.",
		"j": "探病.余事勿取."
	},
	"d0913": {
		"y": "订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.",
		"j": "嫁娶.造庙.造桥.造船.作灶.安葬."
	},
	"d0914": {
		"y": "开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.",
		"j": "行丧.安葬.合寿木."
	},
	"d0915": {
		"y": "祭祀.嫁娶.捕捉.",
		"j": "开光.动土.破土.开市.修造.入宅.安门."
	},
	"d0916": {
		"y": "祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.",
		"j": "嫁娶.开市.动土.掘井.开池.安葬."
	},
	"d0917": {
		"y": "祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.",
		"j": "开光.安床."
	},
	"d0918": {
		"y": "祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.",
		"j": "动土.作灶.行丧.安葬.修坟."
	},
	"d0919": {
		"y": "出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.",
		"j": "造庙.安门.行丧.安葬."
	},
	"d0920": {
		"y": "祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.",
		"j": "嫁娶.安葬."
	},
	"d0921": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.",
		"j": "嫁娶.入宅."
	},
	"d0922": {
		"y": "祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.",
		"j": "入宅.伐木."
	},
	"d0923": {
		"y": "祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.",
		"j": "作灶.祭祀.入宅.嫁娶."
	},
	"d0924": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "移徙.入宅.出行.栽种."
	},
	"d0925": {
		"y": "祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.",
		"j": "造桥.冠笄.造屋.掘井."
	},
	"d0926": {
		"y": "祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络.",
		"j": "定磉.安葬."
	},
	"d0927": {
		"y": "祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.",
		"j": "移徙.入宅.作灶.安葬."
	},
	"d0928": {
		"y": "祭祀.诸事不宜.",
		"j": "入殓.安葬.开市.交易."
	},
	"d0929": {
		"y": "祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.",
		"j": "安床.开光.开市.交易."
	},
	"d0930": {
		"y": "祭祀.出行.成服.除服.沐浴.入殓.",
		"j": "动土.冠笄.移徙.入宅.开市.竖柱.上梁."
	},
	"d1001": {
		"y": "祭祀.沐浴.赴任.出行.余事勿取.",
		"j": "诸事不宜."
	},
	"d1002": {
		"y": "诸事不宜.",
		"j": "诸事不宜."
	},
	"d1003": {
		"y": "沐浴.入殓.移柩.除服.成服.破土.平治道涂.",
		"j": "嫁娶.移徙.入宅.开市."
	},
	"d1004": {
		"y": "嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.",
		"j": ""
	},
	"d1005": {
		"y": "开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩.",
		"j": "嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产."
	},
	"d1006": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜."
	},
	"d1007": {
		"y": "嫁娶.祈福.求嗣.出行.出火.拆卸.修造.动土.上梁.开光.进人口.开市.交易.立券.挂匾.安床.入宅.移徙.栽种.伐木.入殓.破土.除服.成服.",
		"j": ""
	},
	"d1008": {
		"y": "订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.",
		"j": "嫁娶.开市.入宅.祈福.安葬."
	},
	"d1009": {
		"y": "造车器.嫁娶.订盟.纳采.会亲友.祭祀.出行.开市.立券.移徙.入宅.破土.安葬.",
		"j": "上梁.开光.造屋.架马.合寿木."
	},
	"d1010": {
		"y": "祭祀.作灶.纳财.捕捉.畋猎.余事勿取.",
		"j": "动土.破土.开市.安葬."
	},
	"d1011": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.",
		"j": "开市.开仓.出货财.安床.安门.安葬."
	},
	"d1012": {
		"y": "冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.",
		"j": "开光.嫁娶.会亲友.栽种.针灸.安葬."
	},
	"d1013": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜.",
		"j": "造庙.造船.动土.破土.安葬."
	},
	"d1014": {
		"y": "出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.",
		"j": "嫁娶.动土.破土.修坟."
	},
	"d1015": {
		"y": "沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.",
		"j": "移徙.入宅.出行.祈福.嫁娶."
	},
	"d1016": {
		"y": "祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.开市.安床.掘井."
	},
	"d1017": {
		"y": "捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.",
		"j": "嫁娶.祭祀.入宅.造屋.移徙."
	},
	"d1018": {
		"y": "祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒.",
		"j": "开光.嫁娶.掘井.伐木.作梁."
	},
	"d1019": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜."
	},
	"d1020": {
		"y": "会亲友.嫁娶.订盟.纳采.纳婿.拆卸.修造.动土.起基.竖柱.上梁.安床.会亲友.纳财.",
		"j": "出行.祈福.安葬.作灶."
	},
	"d1021": {
		"y": "祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财.",
		"j": "开仓.冠笄.伐木.作梁."
	},
	"d1022": {
		"y": "祭祀.作灶.入殓.除服.成服.畋猎.",
		"j": "栽种.动土.安葬.开市."
	},
	"d1023": {
		"y": "祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.",
		"j": "作灶.入殓.安葬.安床."
	},
	"d1024": {
		"y": "嫁娶.祭祀.安机械.入殓.破土.安葬.",
		"j": "动土.上梁."
	},
	"d1025": {
		"y": "作灶.造畜椆栖.",
		"j": "行丧.安葬."
	},
	"d1026": {
		"y": "沐浴.理发.入学.习艺.进人口.",
		"j": "嫁娶.入宅."
	},
	"d1027": {
		"y": "开光.针灸.会亲友.启攒.安葬.",
		"j": "开市.动土.破土."
	},
	"d1028": {
		"y": "祭祀.结网.造畜椆栖.余事勿取.",
		"j": "余事勿取."
	},
	"d1029": {
		"y": "入殓.除服.成服.移柩.破土.启攒.安葬.",
		"j": "移徙.入宅."
	},
	"d1030": {
		"y": "嫁娶.订盟.纳采.出行.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "开市.赴任."
	},
	"d1031": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "余事勿取."
	},
	"d1101": {
		"y": "订盟.纳采.会亲友.安机械.纳财.牧养.",
		"j": "祈福.安葬."
	},
	"d1102": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "斋醮.安门."
	},
	"d1103": {
		"y": "祭祀.塞穴.余事勿取.",
		"j": "诸事不宜."
	},
	"d1104": {
		"y": "祭祀.祈福.求嗣.开光.开市.出行.解除.动土.起基.置产.栽种.",
		"j": "嫁娶.作灶.修坟.安门.入宅.立碑.安葬.安床."
	},
	"d1105": {
		"y": "祭祀.解除.裁衣.理发.安床.作灶.造畜椆栖.放水.筑堤.补垣.塞穴.整手足甲.扫舍.",
		"j": "嫁娶.开光.会亲友.掘井.安门.栽种."
	},
	"d1106": {
		"y": "祭祀.出行.裁衣.冠笄.会亲友.造畜椆栖.嫁娶.竖柱.上梁.移徙.纳财.纳畜.",
		"j": "动土.伐木.作梁.行丧.安葬.开生坟."
	},
	"d1107": {
		"y": "祭祀.沐浴.出行.余事勿取.",
		"j": "开市.动土.破土.行丧.安葬."
	},
	"d1108": {
		"y": "嫁娶.造车器.出行.会亲友.移徙.入宅.修造.动土.雕刻.开光.安香.出火.理发.会亲友.造屋.合脊.起基.归岫.安门.拆卸.扫舍.栽种.造畜椆栖.",
		"j": "开市.纳采.造庙.安床.开渠.安葬."
	},
	"d1109": {
		"y": "塑绘.会亲友.安机械.塞穴.结网.裁衣.经络.",
		"j": "嫁娶.开市.祈福.斋醮.安葬."
	},
	"d1110": {
		"y": "纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕.",
		"j": "开仓.造屋.造桥.祭祀."
	},
	"d1111": {
		"y": "订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.",
		"j": "嫁娶.安葬.掘井.置产.造船."
	},
	"d1112": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.",
		"j": "开市.造庙.动土.破土."
	},
	"d1113": {
		"y": "破屋.坏垣.祭祀.余事勿取.",
		"j": "嫁娶.安葬."
	},
	"d1114": {
		"y": "嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.",
		"j": "造屋.造船.动土.破土."
	},
	"d1115": {
		"y": "纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬.",
		"j": "嫁娶.开市.入宅.出火.移徙."
	},
	"d1116": {
		"y": "捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.",
		"j": "安床.安门.破土.修坟.安葬."
	},
	"d1117": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓硙.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.",
		"j": "移徙.入宅.安门.作梁.安葬."
	},
	"d1118": {
		"y": "嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.",
		"j": "开光.掘井.安葬.谢土.修坟."
	},
	"d1119": {
		"y": "祭祀.沐浴.余事勿取.",
		"j": "诸事不宜."
	},
	"d1120": {
		"y": "祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木.",
		"j": "入宅.作灶.安床.开仓."
	},
	"d1121": {
		"y": "理发.会亲友.补垣.塞穴.结网.",
		"j": "嫁娶.入宅.安门.移徙."
	},
	"d1122": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.",
		"j": "作灶.治病.伐木.作梁."
	},
	"d1123": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.",
		"j": "作灶.治病."
	},
	"d1124": {
		"y": "祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.",
		"j": "开市.交易.破土.作灶."
	},
	"d1125": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜."
	},
	"d1126": {
		"y": "祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.",
		"j": "造屋.治病."
	},
	"d1127": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤.",
		"j": "嫁娶.入宅.治病.赴任."
	},
	"d1128": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "诸事不宜."
	},
	"d1129": {
		"y": "诸事不宜.",
		"j": "诸事不宜."
	},
	"d1130": {
		"y": "祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网.",
		"j": "入宅.作灶."
	},
	"d1201": {
		"y": "祭祀.沐浴.出行.冠笄.进人口.余事勿取.",
		"j": "嫁娶.动土.安葬.作灶."
	},
	"d1202": {
		"y": "祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.",
		"j": "开市."
	},
	"d1203": {
		"y": "诸事不宜.",
		"j": "诸事不宜."
	},
	"d1204": {
		"y": "开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.",
		"j": "栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福."
	},
	"d1205": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服.",
		"j": ""
	},
	"d1206": {
		"y": "开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.",
		"j": "嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶."
	},
	"d1207": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓硙.动土.上梁.移徙.入宅.",
		"j": "出行.掘井.破土.行丧.安葬."
	},
	"d1208": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "嫁娶.移徙.入宅.探病.出行.造屋."
	},
	"d1209": {
		"y": "冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.",
		"j": "安门.动土.破土.行丧.安葬.成服."
	},
	"d1210": {
		"y": "纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.",
		"j": "嫁娶.动土.安床.造桥.掘井."
	},
	"d1211": {
		"y": "祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.",
		"j": "开市.斋醮.破土.安葬."
	},
	"d1212": {
		"y": "祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.",
		"j": "移徙.开市.入宅.安葬."
	},
	"d1213": {
		"y": "纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.",
		"j": "嫁娶.祈福.开光.掘井.安葬.行丧."
	},
	"d1214": {
		"y": "合帐.裁衣.教牛马.余事勿取.",
		"j": "入宅.动土.破土.嫁娶.作灶.造船."
	},
	"d1215": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.",
		"j": "斋醮.作梁.掘井.行丧.安葬."
	},
	"d1216": {
		"y": "纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.",
		"j": "嫁娶.祈福.出火.移徙.入宅."
	},
	"d1217": {
		"y": "祭祀.入殓.移柩.余事勿取.",
		"j": "入宅.修造.动土.破土.安门.上梁."
	},
	"d1218": {
		"y": "塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.",
		"j": "掘井.伐木.斋醮.作灶."
	},
	"d1219": {
		"y": "祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.",
		"j": "出行.安葬.修坟.开市."
	},
	"d1220": {
		"y": "祭祀.求医.破屋.坏垣.余事勿取.",
		"j": "诸事不宜."
	},
	"d1221": {
		"y": "祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.",
		"j": "开光.栽种.治病.安门.作灶."
	},
	"d1222": {
		"y": "塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土.",
		"j": ""
	},
	"d1223": {
		"y": "祭祀.沐浴.安床.纳财.畋猎.捕捉.",
		"j": "开市.破土."
	},
	"d1224": {
		"y": "订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.",
		"j": "嫁娶.作灶."
	},
	"d1225": {
		"y": "出行.沐浴.理发.补垣.塞穴.",
		"j": "入宅.安葬."
	},
	"d1226": {
		"y": "教牛马.余事勿取.",
		"j": "入宅.动土.破土.余事勿取."
	},
	"d1227": {
		"y": "嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.",
		"j": "开市.安葬."
	},
	"d1228": {
		"y": "开市.立券.开光.解除.安机械.上梁.启攒.安葬.",
		"j": "嫁娶.祈福."
	},
	"d1229": {
		"y": "平治道涂.余事勿取.",
		"j": "诸事不宜."
	},
	"d1230": {
		"y": "求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.",
		"j": "开市.嫁娶."
	},
	"d1231": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅.",
		"j": "开市.安葬."
	}
};


},{}],195:[function(require,module,exports){
module.exports =  {
	"d1221": {
		"y": "教牛马.余事勿取.",
		"j": "入宅.动土.破土.余事勿取.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d1121": {
		"y": "祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.",
		"j": "造屋.治病.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d1201": {
		"y": "开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.",
		"j": "嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1202": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d1203": {
		"y": "嫁娶.祭祀.开光.出火.出行.拆卸.修造.动土.解除.开市.交易.立券.挂匾.纳财.入宅.移徙.安床.栽种.纳畜.",
		"j": "探病.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d1204": {
		"y": "祭祀.祈福.求嗣.开光.解除.理发.会亲友.栽种.纳畜.牧养.安葬.修坟.立碑.启攒.",
		"j": "入宅.作灶.词讼.移徙.出行.赴任.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d1205": {
		"y": "祭祀.沐浴.结网.移柩.入殓.除服.成服.",
		"j": "安床.开市.交易.出货财.安葬.修坟.嫁娶.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d1206": {
		"y": "解除.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d1207": {
		"y": "祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.",
		"j": "移徙.开市.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d1208": {
		"y": "纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.",
		"j": "嫁娶.祈福.开光.掘井.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d1209": {
		"y": "合帐.裁衣.教牛马.余事勿取.",
		"j": "入宅.动土.破土.嫁娶.作灶.造船.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d1210": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.",
		"j": "斋醮.作梁.掘井.行丧.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1211": {
		"y": "纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.",
		"j": "嫁娶.祈福.出火.移徙.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1212": {
		"y": "祭祀.入殓.移柩.余事勿取.",
		"j": "入宅.修造.动土.破土.安门.上梁.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d1213": {
		"y": "塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.",
		"j": "掘井.伐木.斋醮.作灶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d1214": {
		"y": "祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.",
		"j": "出行.安葬.修坟.开市.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d1215": {
		"y": "祭祀.求医.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1216": {
		"y": "祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.",
		"j": "开光.栽种.治病.安门.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d1217": {
		"y": "塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土.",
		"j": "",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d1218": {
		"y": "祭祀.沐浴.安床.纳财.畋猎.捕捉.",
		"j": "开市.破土.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d1219": {
		"y": "订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.",
		"j": "嫁娶.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d1220": {
		"y": "出行.沐浴.理发.补垣.塞穴.",
		"j": "入宅.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d1222": {
		"y": "嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.",
		"j": "开市.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d1223": {
		"y": "开市.立券.开光.解除.安机械.上梁.启攒.安葬.",
		"j": "嫁娶.祈福.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d1224": {
		"y": "平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d1225": {
		"y": "求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.",
		"j": "开市.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d1226": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d1227": {
		"y": "治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d1228": {
		"y": "祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.",
		"j": "造桥.安门.理发.造庙.栽种.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d1229": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d1230": {
		"y": "沐浴.理发.扫舍.",
		"j": "伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d1231": {
		"y": "祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.",
		"j": "嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d1101": {
		"y": "祭祀.出行.裁衣.冠笄.会亲友.造畜椆栖.嫁娶.竖柱.上梁.移徙.纳财.纳畜.",
		"j": "动土.伐木.作梁.行丧.安葬.开生坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d1103": {
		"y": "开市.交易.立券.纳财.会亲友.开光.理发.入殓.移柩.安葬.启攒.",
		"j": "嫁娶.作灶.出火.出行.入宅.移徙.安床.祈福.上梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d1021": {
		"y": "沐浴.理发.入学.习艺.进人口.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d1102": {
		"y": "祭祀.祈福.求嗣.开光.出行.解除.移徙.伐木.安床.纳畜.出火.拆卸.",
		"j": "安葬.修坟.作灶.破土.造庙.动土.嫁娶.纳采.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d1104": {
		"y": "造畜椆栖.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d1105": {
		"y": "入殓.破土.安葬.启攒.除服.成服.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d1106": {
		"y": "祭祀.入殓.移柩.开生坟.破土.启攒.安葬.除服.成服.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1107": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.",
		"j": "开市.造庙.动土.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d1108": {
		"y": "破屋.坏垣.祭祀.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d1109": {
		"y": "嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.",
		"j": "造屋.造船.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d1110": {
		"y": "纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬.",
		"j": "嫁娶.开市.入宅.出火.移徙.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d1111": {
		"y": "捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.",
		"j": "安床.安门.破土.修坟.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d1112": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓硙.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.",
		"j": "移徙.入宅.安门.作梁.安葬.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d1113": {
		"y": "嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.",
		"j": "开光.掘井.安葬.谢土.修坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d1114": {
		"y": "祭祀.沐浴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d1115": {
		"y": "祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木.",
		"j": "入宅.作灶.安床.开仓.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d1116": {
		"y": "理发.会亲友.补垣.塞穴.结网.",
		"j": "嫁娶.入宅.安门.移徙.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d1117": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.",
		"j": "作灶.治病.伐木.作梁.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d1118": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.",
		"j": "作灶.治病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d1119": {
		"y": "祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.",
		"j": "开市.交易.破土.作灶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d1120": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1122": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤.",
		"j": "嫁娶.入宅.治病.赴任.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d1123": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d1124": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d1125": {
		"y": "祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网.",
		"j": "入宅.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d1126": {
		"y": "祭祀.沐浴.出行.冠笄.进人口.余事勿取.",
		"j": "嫁娶.动土.安葬.作灶.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d1127": {
		"y": "祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.",
		"j": "开市.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d1128": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d1129": {
		"y": "开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.",
		"j": "栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d1130": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服.",
		"j": "",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d1131": {
		"y": "开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.",
		"j": "嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1001": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0921": {
		"y": "祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络.",
		"j": "定磉.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1002": {
		"y": "嫁娶.祈福.求嗣.出行.出火.拆卸.修造.动土.上梁.开光.进人口.开市.交易.立券.挂匾.安床.入宅.移徙.栽种.伐木.入殓.破土.除服.成服.",
		"j": "",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1003": {
		"y": "开市.交易.立券.挂匾.祭祀.开光.进人口.入宅.安床.出火.拆卸.修造.动土.栽种.",
		"j": "嫁娶.立碑.出行.伐木.安葬.行丧.移徙.纳畜.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d1004": {
		"y": "祭祀.理发.会亲友.进人口.嫁娶.针灸.入殓.移柩.",
		"j": "探病.开渠.安葬.伐木.作灶.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d1005": {
		"y": "祭祀.立碑.修坟.启攒.除服.成服.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d1006": {
		"y": "嫁娶.出行.伐木.拆卸.修造.动土.移徙.安葬.破土.修坟.立碑.",
		"j": "掘井.祈福.安床.开市.入宅.挂匾.开光.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d1007": {
		"y": "祭祀.出行.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d1008": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜.",
		"j": "造庙.造船.动土.破土.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d1009": {
		"y": "出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.",
		"j": "嫁娶.动土.破土.修坟.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d1010": {
		"y": "沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.",
		"j": "移徙.入宅.出行.祈福.嫁娶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d1011": {
		"y": "祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.开市.安床.掘井.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1012": {
		"y": "捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.",
		"j": "嫁娶.祭祀.入宅.造屋.移徙.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1013": {
		"y": "祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒.",
		"j": "开光.嫁娶.掘井.伐木.作梁.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d1014": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d1015": {
		"y": "会亲友.嫁娶.订盟.纳采.纳婿.拆卸.修造.动土.起基.竖柱.上梁.安床.会亲友.纳财.",
		"j": "出行.祈福.安葬.作灶.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d1016": {
		"y": "祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财.",
		"j": "开仓.冠笄.伐木.作梁.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1017": {
		"y": "祭祀.作灶.入殓.除服.成服.畋猎.",
		"j": "栽种.动土.安葬.开市.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d1018": {
		"y": "祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.",
		"j": "作灶.入殓.安葬.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d1019": {
		"y": "嫁娶.祭祀.安机械.入殓.破土.安葬.",
		"j": "动土.上梁.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d1020": {
		"y": "作灶.造畜椆栖.",
		"j": "行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d1022": {
		"y": "开光.针灸.会亲友.启攒.安葬.",
		"j": "开市.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d1023": {
		"y": "祭祀.结网.造畜椆栖.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d1024": {
		"y": "入殓.除服.成服.移柩.破土.启攒.安葬.",
		"j": "移徙.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d1025": {
		"y": "嫁娶.订盟.纳采.出行.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "开市.赴任.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d1026": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d1027": {
		"y": "订盟.纳采.会亲友.安机械.纳财.牧养.",
		"j": "祈福.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d1028": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "斋醮.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d1029": {
		"y": "祭祀.塞穴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d1030": {
		"y": "祭祀.祈福.求嗣.开光.开市.出行.解除.动土.起基.置产.栽种.",
		"j": "嫁娶.作灶.修坟.安门.入宅.立碑.安葬.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d1031": {
		"y": "祭祀.解除.裁衣.理发.安床.作灶.造畜椆栖.放水.筑堤.补垣.塞穴.整手足甲.扫舍.",
		"j": "嫁娶.开光.会亲友.掘井.安门.栽种.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0901": {
		"y": "祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍.",
		"j": "嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0821": {
		"y": "订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0902": {
		"y": "塑绘.开光.进人口.纳畜.补垣.塞穴.栽种.牧养.",
		"j": "嫁娶.纳财.祈福.安葬.修造.开市.交易.立券.动土.上梁.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0903": {
		"y": "祭祀.作灶.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0904": {
		"y": "祭祀.求嗣.开光.出行.伐木.作梁.出火.解除.拆卸.进人口.修造.动土.起基.安床.栽种.纳畜.入殓.破土.安葬.除服.成服.",
		"j": "嫁娶.移徙.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0905": {
		"y": "祭祀.求医.捕捉.栽种.塞穴.入殓.破土.安葬.移柩.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0906": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0907": {
		"y": "余事勿取.",
		"j": "探病.余事勿取.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0908": {
		"y": "订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.",
		"j": "嫁娶.造庙.造桥.造船.作灶.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0909": {
		"y": "开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.",
		"j": "行丧.安葬.合寿木.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0910": {
		"y": "祭祀.嫁娶.捕捉.",
		"j": "开光.动土.破土.开市.修造.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0911": {
		"y": "祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.",
		"j": "嫁娶.开市.动土.掘井.开池.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0912": {
		"y": "祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.",
		"j": "开光.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0913": {
		"y": "祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.",
		"j": "动土.作灶.行丧.安葬.修坟.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0914": {
		"y": "出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.",
		"j": "造庙.安门.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0915": {
		"y": "祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0916": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0917": {
		"y": "祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.",
		"j": "入宅.伐木.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0918": {
		"y": "祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.",
		"j": "作灶.祭祀.入宅.嫁娶.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0919": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "移徙.入宅.出行.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0920": {
		"y": "祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.",
		"j": "造桥.冠笄.造屋.掘井.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0922": {
		"y": "祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.",
		"j": "移徙.入宅.作灶.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0923": {
		"y": "祭祀.诸事不宜.",
		"j": "入殓.安葬.开市.交易.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0924": {
		"y": "祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.",
		"j": "安床.开光.开市.交易.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0925": {
		"y": "祭祀.出行.成服.除服.沐浴.入殓.",
		"j": "动土.冠笄.移徙.入宅.开市.竖柱.上梁.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0926": {
		"y": "祭祀.沐浴.赴任.出行.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0927": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0928": {
		"y": "沐浴.入殓.移柩.除服.成服.破土.平治道涂.",
		"j": "嫁娶.移徙.入宅.开市.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0929": {
		"y": "嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.",
		"j": "",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0930": {
		"y": "开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩.",
		"j": "嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0931": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0721": {
		"y": "嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "赴任.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0801": {
		"y": "嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.",
		"j": "伐木.祭祀.纳畜.祭祀.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0802": {
		"y": "嫁娶.开光.出行.祈福.求嗣.解除.拆卸.动土.修造.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.纳畜.入殓.移柩.安葬.",
		"j": "",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0803": {
		"y": "祭祀.作灶.纳财.栽种.纳畜.进人口.",
		"j": "安葬.经络.修坟.破土.开市.安床.启攒.立碑.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0804": {
		"y": "祭祀.祈福.求嗣.开光.开市.牧养.理发.",
		"j": "嫁娶.出行.安葬.入殓.入宅.作灶.冠笄.上梁.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0805": {
		"y": "祭祀.入殓.破土.除服.成服.移柩.启攒.安葬.谢土.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0806": {
		"y": "祭祀.出行.交易.割蜜.造畜椆栖.",
		"j": "嫁娶.作灶.安葬.动土.词讼.作梁.伐木.掘井.破土.移徙.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0807": {
		"y": "嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.",
		"j": "开市.动土.破土.安床.开仓.上梁.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0808": {
		"y": "祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.",
		"j": "嫁娶.出行.入宅.开市.安门.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0809": {
		"y": "塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.",
		"j": "祈福.开市.动土.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0810": {
		"y": "出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养.",
		"j": "嫁娶.安门.动土.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0811": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬.",
		"j": "开市.立券.纳财.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0812": {
		"y": "祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.",
		"j": "嫁娶.纳采.订盟.开市.入宅.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0813": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "行丧.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0814": {
		"y": "祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.",
		"j": "动土.破土.订盟.安床.开池.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0815": {
		"y": "祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.",
		"j": "",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0816": {
		"y": "塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养.",
		"j": "",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0817": {
		"y": "祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.",
		"j": "",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0818": {
		"y": "嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅.",
		"j": "动土.破土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0819": {
		"y": "嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.",
		"j": "作灶.动土.破土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0820": {
		"y": "订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.",
		"j": "嫁娶.开市.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0822": {
		"y": "沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.祈福.余事勿取.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0823": {
		"y": "嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0824": {
		"y": "捕捉.结网.入殓.破土.安葬.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0825": {
		"y": "沐浴.治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0826": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.",
		"j": "动土.破土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0827": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.",
		"j": "开光.针灸.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0828": {
		"y": "订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.",
		"j": "动土.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0829": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.",
		"j": "入宅.作梁.安门.伐木.修造.上梁.入殓.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0830": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.",
		"j": "造屋.开光.理发.造船.掘井.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0831": {
		"y": "祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.",
		"j": "破土.置产.掘井.动土.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0621": {
		"y": "嫁娶.祭祀.沐浴.扫舍.修饰垣墙.",
		"j": "行丧.安葬.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0701": {
		"y": "嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.",
		"j": "安葬.行丧.伐木.作梁.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0702": {
		"y": "开光.求嗣.出行.解除.伐木.出火.拆卸.修造.上梁.起基.入宅.移徙.开市.交易.立券.栽种.牧养.入殓.安葬.除服.成服.",
		"j": "置产.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0703": {
		"y": "祭祀.理发.修饰垣墙.平治道涂.沐浴.整手足甲.扫舍.",
		"j": "出行.安门.修造.嫁娶.上梁.入宅.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0704": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出行.出火.拆卸.动土.修造.进人口.入宅.移徙.安床.挂匾.交易.立券.栽种.纳畜.入殓.破土.启攒.安葬.",
		"j": "",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0705": {
		"y": "祭祀.祈福.求嗣.开光.出行.伐木.出火.拆卸.修造.动土.起基.安床.入宅.移徙.",
		"j": "嫁娶.开市.交易.行丧.安葬.修坟.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0706": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0707": {
		"y": "求医.治病.破屋.坏垣.余事勿取.",
		"j": "嫁娶.出行.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0708": {
		"y": "纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.",
		"j": "祈福.上梁.开仓.掘井.牧养.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0709": {
		"y": "祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.",
		"j": "嫁娶.开市.栽种.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0710": {
		"y": "祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.",
		"j": "开市.入宅.安床.动土.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0711": {
		"y": "祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓硙.",
		"j": "造屋.入宅.作灶.入学.安葬.行丧.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0712": {
		"y": "祭祀.塞穴.结网.畋猎.余事勿取.",
		"j": "移徙.开市.入宅.嫁娶.开光.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0713": {
		"y": "开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.",
		"j": "动土.破土.安葬.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0714": {
		"y": "移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.",
		"j": "开市.斋醮.安床.出行.经络.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0715": {
		"y": "塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0716": {
		"y": "祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0717": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0718": {
		"y": "纳采.祭祀.祈福.解除.动土.破土.安葬.",
		"j": "嫁娶.移徙.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0719": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0720": {
		"y": "嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "祭祀.祈福.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0722": {
		"y": "祭祀.作灶.纳财.捕捉.",
		"j": "开市.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0723": {
		"y": "嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅.",
		"j": "造庙.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0724": {
		"y": "补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0725": {
		"y": "嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.",
		"j": "动土.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0726": {
		"y": "嫁娶.祭祀.祈福.斋醮.治病.破土.安葬.",
		"j": "开市.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0727": {
		"y": "嫁娶.出行.开市.安床.入殓.启攒.安葬.",
		"j": "祈福.动土.破土.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0728": {
		"y": "嫁娶.祭祀.裁衣.结网.冠笄.沐浴.",
		"j": "开仓.出货财.置产.安葬.动土.破土.掘井.栽种.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0729": {
		"y": "入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.",
		"j": "嫁娶.破土.置产.栽种.安葬.修坟.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0730": {
		"y": "祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.",
		"j": "嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0731": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0521": {
		"y": "嫁娶.纳采.出行.移徙.入宅.",
		"j": "动土.破土.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0601": {
		"y": "开市.交易.立券.祭祀.祈福.开光.伐木.进人口.安床.拆卸.修造.动土.栽种.破土.移柩.安葬.",
		"j": "入宅.移徙.理发.出火.嫁娶.出行.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0602": {
		"y": "结网.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0603": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.开市.交易.立券.安床.出行.拆卸.",
		"j": "纳畜.入宅.移徙.安葬.探病.伐木.上梁.安门.入殓.动土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0604": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.动土.入宅.移徙.安床.作灶.塞穴.栽种.破土.安葬.",
		"j": "开光.掘井.开仓.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0605": {
		"y": "嫁娶.冠笄.修造.动土.作灶.移徙.入宅.补垣.塞穴.纳畜.牧养.架马.修造.动土.起基.定磉.开池.造船.",
		"j": "祈福.开光.掘井.开市.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0606": {
		"y": "祭祀.交易.纳财.",
		"j": "斋醮.开渠.上梁.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0607": {
		"y": "嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕.",
		"j": "行丧.伐木.作梁.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0608": {
		"y": "开光.求嗣.出行.冠笄.嫁娶.伐木.架马.开柱眼.修造.移徙.入宅.开市.交易.立券.出行.安香.出火.挂匾.起基.修造.开生坟.合寿木.入殓.除服.成服.移柩.安葬.",
		"j": "安床.出货财.作灶.动土.破土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0609": {
		"y": "祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.",
		"j": "斋醮.出行.治病.合寿木.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0610": {
		"y": "安机械.移徙.入宅.出行.祭祀.祈福.斋醮.纳采.订盟.安香.出火.解除.会亲友.修造.动土.拆卸.起基.定磉.移徙.入宅.造屋.安床.修造.破土.安葬.入殓.立碑.",
		"j": "开市.伐木.作梁.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0611": {
		"y": "祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.",
		"j": "开市.交易.嫁娶.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0612": {
		"y": "破屋.坏垣.求医.治病.畋猎.余事勿取.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0613": {
		"y": "嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.",
		"j": "开市.安门.掘井.作灶.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0614": {
		"y": "订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.",
		"j": "",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0615": {
		"y": "祭祀.捕捉.取渔.修饰垣墙.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0616": {
		"y": "嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.",
		"j": "开市.安门.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0617": {
		"y": "裁衣.作灶.移徙.入宅.纳畜.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0618": {
		"y": "祭祀.入殓.移柩.启攒.安葬.",
		"j": "上梁.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0619": {
		"y": "订盟.纳采.出行.祈福.斋醮.安床.会亲友.",
		"j": "移徙.入宅.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0620": {
		"y": "嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.",
		"j": "动土.破土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0622": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0623": {
		"y": "订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0624": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0625": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.",
		"j": "开光.开市.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0626": {
		"y": "开光.求医.治病.动土.上梁.入殓.破土.安葬.",
		"j": "嫁娶.开光.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0627": {
		"y": "祭祀.栽种.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0628": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.",
		"j": "安葬.开市.交易.立券.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0629": {
		"y": "求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖.",
		"j": "安葬.出行.祈福.栽种.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0630": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0631": {
		"y": "嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.",
		"j": "安葬.行丧.伐木.作梁.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0501": {
		"y": "纳采.嫁娶.开光.出行.理发.会亲友.开市.安床.栽种.牧养.入殓.移柩.启攒.",
		"j": "谢土.祈福.上梁.作灶.斋醮.修造.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0421": {
		"y": "祭祀.斋醮.开市.动土.入殓.破土.安葬.",
		"j": "嫁娶.移徙.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0502": {
		"y": "祭祀.平治道涂.解除.修饰垣墙.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0503": {
		"y": "祭祀.祈福.开光.解除.动土.纳财.交易.纳畜.扫舍.",
		"j": "进人口.出行.嫁娶.置产.安床.赴任.安葬.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0504": {
		"y": "祭祀.祈福.求嗣.开光.解除.出火.拆卸.入宅.安床.修造.安门.纳畜.启攒.安葬.",
		"j": "动土.破土.纳财.掘井.挂匾.开市.伐木.交易.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0505": {
		"y": "嫁娶.纳采.订盟.斋醮.开光.祭祀.祈福.求医.治病.会亲友.动土.解除.捕捉.纳畜.牧养.入殓.破土.安葬.",
		"j": "移徙.入宅.造屋.架马.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0506": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "行丧.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0507": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "斋醮.开市.嫁娶.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0508": {
		"y": "开市.交易.立券.安机械.会亲友.开光.求医.治病.造屋.起基.修造.动土.定磉.竖柱.上梁.安门.作灶.放水.作厕.开池.栽种.牧养.造畜椆栖.破土.安葬.立碑.",
		"j": "嫁娶.出火.移徙.入宅.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0509": {
		"y": "栽种.捕捉.畋猎.余事勿取.",
		"j": "开市.动土.祭祀.斋醮.安葬.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0510": {
		"y": "嫁娶.祭祀.祈福.求嗣.斋醮.订盟.纳采.解除.出行.动土.破土.习艺.针灸.理发.会亲友.起基.修造.动土.竖柱.定磉.安床.拆卸.纳畜.牧养.放水.破土.除服.成服.修坟.立碑.",
		"j": "开市.入宅.探病.出火.造屋.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0511": {
		"y": "余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0512": {
		"y": "塞穴.断蚁.结网.余事勿取.",
		"j": "破土.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0513": {
		"y": "开光.出行.纳采.嫁娶.伐木.架马.出火.拆卸.移徙.入宅.造庙.造桥.造船.造畜椆栖.开市.入殓.除服.成服.移柩.安葬.",
		"j": "",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0514": {
		"y": "进人口.牧养.置产.塞穴.结网.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0515": {
		"y": "开光.出行.嫁娶.",
		"j": "会亲友.进人口.修造.动土.起基.移徙.开市.纳畜.入殓.除服.成服.移柩.破土.安葬.修坟.立碑.会亲友.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0516": {
		"y": "嫁娶.纳采.出行.祭祀.祈福.开市.动土.移徙.入宅.破土.安葬.",
		"j": "安门.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0517": {
		"y": "嫁娶.纳采.求医.治病.修造.动土.移徙.入宅.破土.安葬.",
		"j": "开市.开光.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0518": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0519": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "祈福.斋醮.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0520": {
		"y": "纳采.祭祀.祈福.开市.求医.治病.动土.纳畜.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0522": {
		"y": "订盟.纳采.祭祀.动土.破土.交易.立券.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0523": {
		"y": "嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.",
		"j": "赴任.捕捉.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0524": {
		"y": "塞穴.结网.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0525": {
		"y": "嫁娶.订盟.纳采.出行.祭祀.祈福.斋醮.动土.上梁.破土.安葬.",
		"j": "移徙.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0526": {
		"y": "订盟.纳采.会亲友.安床.作灶.造畜椆栖.",
		"j": "开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0527": {
		"y": "沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0528": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.",
		"j": "",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0529": {
		"y": "祭祀.开光.出行.解除.塑绘.裁衣.入殓.移柩.破土.启攒.安葬.除服.成服.",
		"j": "嫁娶.上梁.修造.拆卸.架马.入宅.伐木.动土.出火.开柱眼.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0530": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0531": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.动土.上梁.出火.进人口.入宅.移徙.安床.栽种.纳畜.牧养.竖柱.安门.修造.解除.会亲友.",
		"j": "",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0321": {
		"y": "祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.",
		"j": "栽种.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0401": {
		"y": "裁衣.合帐.冠笄.嫁娶.纳婿.安床.入殓.纳财.",
		"j": "作灶.开市.安葬.作梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0402": {
		"y": "祭祀.订盟.纳采.修造.动土.祈福.塑绘.斋醮.沐浴.拆卸.起基.入宅.安香.造庙.移柩.谢土.除服.成服.入学.习艺.出行.竖柱.上梁.掘井.求嗣.解除.伐木.",
		"j": "作灶.安葬.开市.造屋.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0403": {
		"y": "订盟.纳采.裁衣.合帐.冠笄.安机械.拆卸.安床.入殓.除服.成服.移柩.破土.启攒.安葬.修坟.立碑.经络.交易.立券.纳财.筑堤.造仓.补垣.塞穴.纳畜.伐木.架马.",
		"j": "祭祀.开光.嫁娶.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0404": {
		"y": "祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.",
		"j": "开光.嫁娶.掘井.安葬.安门.探病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0405": {
		"y": "祭祀.解除.教牛马.出行.余事勿取.",
		"j": "动土.破土.行丧.开光.作梁.安葬.探病.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0406": {
		"y": "沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.",
		"j": "开市.嫁娶.移徙.入宅.掘井.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0407": {
		"y": "求嗣.出行.解除.订盟.纳采.嫁娶.会亲友.进人口.安床.开市.交易.纳畜.牧养.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "祈福.开市.修造.动土.破土.谢土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0408": {
		"y": "祭祀.作灶.平治道涂.余事勿取.",
		"j": "嫁娶.安葬.动土.安床.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0409": {
		"y": "造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮.",
		"j": "入宅.动土.开仓.出货财.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0410": {
		"y": "祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.",
		"j": "开市.动土.掘井.开池.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0411": {
		"y": "祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.",
		"j": "嫁娶.开市.交易.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0412": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0413": {
		"y": "祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.",
		"j": "出火.入宅.安葬.伐木.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0414": {
		"y": "祭祀.余事勿取.",
		"j": "造庙.嫁娶.安床.余事勿取.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0415": {
		"y": "订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.",
		"j": "入殓.安葬.入宅.安床.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0416": {
		"y": "祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.",
		"j": "掘井.安门.嫁娶.纳采.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0417": {
		"y": "祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.",
		"j": "掘井.动土.破土.安葬.开光.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0418": {
		"y": "纳采.开光.求医.治病.动土.上梁.移徙.入宅.",
		"j": "嫁娶.开市.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0419": {
		"y": "祭祀.会亲友.开市.安床.启攒.安葬.",
		"j": "嫁娶.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0420": {
		"y": "祭祀.作灶.掘井.平治道涂.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0422": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.移徙.求医.",
		"j": "开市.动土.破土.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0423": {
		"y": "祭祀.求医.治病.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0424": {
		"y": "沐浴.结网.取渔.",
		"j": "嫁娶.入宅.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0425": {
		"y": "",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0426": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0427": {
		"y": "嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.",
		"j": "祈福.入殓.祭祀.作灶.安葬.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0428": {
		"y": "嫁娶.出行.合帐.冠笄.安床.除服.成服.作灶.交易.立券.入殓.移柩.破土.安葬.",
		"j": "词讼.开光.开市.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0429": {
		"y": "出行.修饰垣墙.造畜椆栖.教牛马.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0430": {
		"y": "祭祀.祈福.开光.求嗣.解除.伐木.出火.入宅.移徙.安床.拆卸.修造.动土.造畜椆栖.",
		"j": "嫁娶.纳财.安葬.出行.开市.立券.作灶.栽种.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0431": {
		"y": "纳采.嫁娶.开光.出行.理发.会亲友.开市.安床.栽种.牧养.入殓.移柩.启攒.",
		"j": "谢土.祈福.上梁.作灶.斋醮.修造.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0221": {
		"y": "祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水.",
		"j": "作灶.安床.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0301": {
		"y": "作灶.解除.平治道涂.",
		"j": "栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0302": {
		"y": "解除.沐浴.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0303": {
		"y": "嫁娶.祭祀.祈福.出行.解除.出火.拆卸.动土.入宅.移徙.安床.上梁.栽种.纳畜.破土.启攒.安葬.",
		"j": "开市.立券.理发.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0304": {
		"y": "祭祀.解除.治病.破屋.坏垣.扫舍.",
		"j": "余事勿取.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0305": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "嫁娶.移徙.开市.入宅.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0306": {
		"y": "嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.",
		"j": "塑绘.开光.造桥.除服.成服.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0307": {
		"y": "开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财.",
		"j": "祈福.嫁娶.安葬.破土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0308": {
		"y": "理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.",
		"j": "纳财.开市.安葬.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0309": {
		"y": "开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养.",
		"j": "纳采.动土.开市.交易.安门.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0310": {
		"y": "裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.",
		"j": "祭祀.嫁娶.出行.上梁.掘井.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0311": {
		"y": "祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.",
		"j": "栽种.动土.安葬.掘井.修坟.探病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0312": {
		"y": "扫舍.塞穴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0313": {
		"y": "塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.",
		"j": "作灶.出行.入宅.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0314": {
		"y": "祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.",
		"j": "动土.作灶.入宅.开光.安床.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0315": {
		"y": "祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.",
		"j": "赴任.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0316": {
		"y": "祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.",
		"j": "安床.嫁娶.作灶.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0317": {
		"y": "破屋.坏垣.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0318": {
		"y": "祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎.",
		"j": "作梁.造庙.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0319": {
		"y": "祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.",
		"j": "造庙.嫁娶.伐木.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0320": {
		"y": "祭祀.沐浴.捕捉.栽种.",
		"j": "嫁娶.入宅.移徙.作灶.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0322": {
		"y": "订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.",
		"j": "作灶.开光.嫁娶.开市.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0323": {
		"y": "祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱.",
		"j": "作灶.掘井.动土.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0324": {
		"y": "祭祀.扫舍.塞穴.",
		"j": "栽种.作灶.安葬.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0325": {
		"y": "开光.塑绘.裁衣.冠笄.伐木.拆卸.竖柱.上梁.开仓.会亲友.安机械.造仓.造屋.交易.解除.开市.立券.纳财.",
		"j": "出行.嫁娶.入宅.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0326": {
		"y": "冠笄.入殓.除服.成服.移柩.平治道涂.修饰垣墙.",
		"j": "造屋.作灶.治病.探病.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0327": {
		"y": "祭祀.嫁娶.祈福.纳采.裁衣.合帐.安床.入宅.安香.入殓.移柩.安葬.谢土.修造.安碓硙.求嗣.会亲友.挂匾.交易.立券.纳财.造仓.放水.",
		"j": "栽种.伐木.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0328": {
		"y": "祭祀.祈福.斋醮.订盟.纳采.裁衣.合帐.拆卸.修造.动土.上梁.起基.移柩.安葬.谢土.沐浴.扫舍.开柱眼.伐木.出火.",
		"j": "安床.开市.立券.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0329": {
		"y": "破屋.坏垣.求医.治病.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0330": {
		"y": "祭祀.动土.上梁.订盟.纳采.嫁娶.安机械.拆卸.安床.入宅.安香.入殓.移柩.破土.安葬.立碑.谢土.赴任.出行.移徙.祈福.求嗣.解除.造仓.进人口.",
		"j": "开光.出货财.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0331": {
		"y": "祭祀.开光.塑绘.纳采.裁衣.拆卸.安床.起基.动土.竖柱.上梁.移徙.入宅.安香.开市.立券.挂匾.沐浴.出行.求嗣.安门.",
		"j": "嫁娶.栽种.伐木.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0201": {
		"y": "解除.扫舍.祭祀.教牛马.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0121": {
		"y": "沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.",
		"j": "作灶.祭祀.上梁.出行.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0202": {
		"y": "开市.交易.立券.挂匾.开光.解除.伐木.作梁.出火.入宅.移徙.安床.拆卸.动土.上梁.栽种.纳畜.安葬.",
		"j": "嫁娶.祭祀.出行.置产.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0203": {
		"y": "开市.交易.立券.纳财.开池.补垣.嫁娶.纳采.纳畜.取渔.安床.",
		"j": "修造.上梁.入宅.祈福.探病.掘井.动土.安门.安葬.作灶.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0204": {
		"y": "会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.",
		"j": "开市.动土.安葬.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0205": {
		"y": "祭祀.平治道涂.余事勿取.",
		"j": "嫁娶.祈福.掘井.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0206": {
		"y": "祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土.",
		"j": "置产.造屋.合脊.开光.探病.安门.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0207": {
		"y": "入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.",
		"j": "开光.开市.入宅.动土.造屋.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0208": {
		"y": "祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取.",
		"j": "入宅.开市.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0209": {
		"y": "祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土.",
		"j": "安床.栽种.治病.作灶.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0210": {
		"y": "祭祀.结网.入殓.除服.成服.移柩.安葬.破土.",
		"j": "余事勿取.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0211": {
		"y": "塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.",
		"j": "伐木.作灶.安葬.取渔.入宅.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0212": {
		"y": "祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓硙.放水.开市.立券.交易.",
		"j": "安葬.上梁.入宅.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0213": {
		"y": "祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.",
		"j": "出行.嫁娶.入宅.动土.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0214": {
		"y": "裁衣.合帐.入殓.除服.成服.会亲友.纳财.",
		"j": "祭祀.祈福.移徙.嫁娶.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0215": {
		"y": "祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.",
		"j": "掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0216": {
		"y": "安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓.",
		"j": "斋醮.作灶.安床.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0217": {
		"y": "作灶.平治道涂.",
		"j": "祭祀.祈福.安葬.安门.余事勿取.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0218": {
		"y": "塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.",
		"j": "造屋.栽种.安葬.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0219": {
		"y": "祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.",
		"j": "栽种.动土.开市.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0220": {
		"y": "求医.破屋.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0222": {
		"y": "取渔.入殓.除服.成服.移柩.破土.安葬.立碑.",
		"j": "嫁娶.上梁.入宅.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0223": {
		"y": "祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.",
		"j": "安葬.作灶.伐木.作梁.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0224": {
		"y": "祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩.",
		"j": "入殓.安葬.作灶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0225": {
		"y": "祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.",
		"j": "开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0226": {
		"y": "安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.",
		"j": "嫁娶.出行.动土.开渠.入宅.祭祀.掘井.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0227": {
		"y": "嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.",
		"j": "掘井.词讼.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0228": {
		"y": "嫁娶.开光.求嗣.会亲友.安床.牧养.塑绘.针灸.",
		"j": "入宅.移徙.出火.分居.安香.作灶.开市.交易.立券.安葬.动土.伐木.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0229": {
		"y": "作灶.解除.平治道涂.",
		"j": "栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0230": {
		"y": "作灶.解除.平治道涂.",
		"j": "栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0231": {
		"y": "作灶.解除.平治道涂.",
		"j": "栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0101": {
		"y": "治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0102": {
		"y": "祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.",
		"j": "造桥.安门.理发.造庙.栽种.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0103": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0104": {
		"y": "沐浴.理发.扫舍.",
		"j": "伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0105": {
		"y": "嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.",
		"j": "开市.安床.安葬.修坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0106": {
		"y": "订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井.",
		"j": "造庙.嫁娶.出行.动土.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0107": {
		"y": "交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.",
		"j": "开光.嫁娶.开市.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0108": {
		"y": "祭祀.解除.教牛马.会亲友.余事勿取.",
		"j": "破土.动土.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0109": {
		"y": "纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓.",
		"j": "探病.祭祀.出行.上梁.造屋.谢土.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0110": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.",
		"j": "入宅.开光.开市.动土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0111": {
		"y": "祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.",
		"j": "移徙.入宅.造庙.作灶.治病.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0112": {
		"y": "祭祀.安碓硙.结网.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0113": {
		"y": "嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.",
		"j": "造屋.开市.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0114": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "嫁娶.开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0115": {
		"y": "纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.",
		"j": "祈福.嫁娶.造庙.安床.谢土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0116": {
		"y": "入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.",
		"j": "开市.伐木.嫁娶.作梁.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0117": {
		"y": "祭祀.作灶.入殓.除服.余事勿取.",
		"j": "开市.安床.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0118": {
		"y": "塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.",
		"j": "嫁娶.入殓.安葬.出行.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0119": {
		"y": "祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.",
		"j": "开仓.嫁娶.移徙.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0120": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0122": {
		"y": "出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口.",
		"j": "作灶.掘井.谢土.入宅.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0123": {
		"y": "修饰垣墙.平治道涂.入殓.移柩.余事勿取.",
		"j": "嫁娶.移徙.入宅.开光.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0124": {
		"y": "会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜.",
		"j": "出行.治病.安葬.开市.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0125": {
		"y": "祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门.",
		"j": "造屋.开市.作灶.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0126": {
		"y": "解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0127": {
		"y": "塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.",
		"j": "入宅.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0128": {
		"y": "入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.",
		"j": "破土.伐木.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0129": {
		"y": "祭祀.祈福.斋醮.塑绘.开光.除服.成服.入殓.作灶.嫁娶.捕捉.畋猎.纳财.",
		"j": "开仓.造屋.安葬.安床.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0130": {
		"y": "祭祀.出行.沐浴.裁衣.祈福.斋醮.订盟.纳采.嫁娶.安机械.开市.立券.安碓硙.纳畜.",
		"j": "栽种.嫁娶.入殓.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0131": {
		"y": "祭祀.祈福.斋醮.沐浴.安床.安机械.造车器.入殓.移柩.启攒.安葬.立碑.合帐.经络.交易.",
		"j": "作灶.掘井.嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	}
};


},{}],196:[function(require,module,exports){
module.exports =  {
	"d1221": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d1121": {
		"y": "祭祀.沐浴.出行.冠笄.进人口.余事勿取.",
		"j": "嫁娶.动土.安葬.作灶.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d1201": {
		"y": "解除.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d1202": {
		"y": "安床.祭祀.开池.补垣.入殓.移柩.破土.启攒.",
		"j": "入宅.移徙.嫁娶.掘井.作灶.出火.进人口.开市.开光.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d1203": {
		"y": "祭祀.沐浴.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d1204": {
		"y": "嫁娶.开光.出行.解除.出火.拆卸.修造.进人口.动土.入宅.移徙.栽种.纳畜.掘井.安葬.除服.成服.",
		"j": "置产.安床.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d1205": {
		"y": "开光.裁衣.安门.会亲友.安床.结网.理发.",
		"j": "嫁娶.冠笄.出行.祈福.安葬.伐木.入宅.移徙.出火.栽种.动土.上梁.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1206": {
		"y": "嫁娶.开光.出行.出火.拆卸.修造.动土.入宅.移徙.安床.上梁.开市.交易.立券.栽种.",
		"j": "祈福.祭祀.伐木.掘井.作灶.谢土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1207": {
		"y": "祭祀.入殓.移柩.余事勿取.",
		"j": "入宅.修造.动土.破土.安门.上梁.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d1208": {
		"y": "塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.",
		"j": "掘井.伐木.斋醮.作灶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d1209": {
		"y": "祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.",
		"j": "出行.安葬.修坟.开市.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d1210": {
		"y": "祭祀.求医.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1211": {
		"y": "祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.",
		"j": "开光.栽种.治病.安门.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d1212": {
		"y": "塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土.",
		"j": "",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d1213": {
		"y": "祭祀.沐浴.安床.纳财.畋猎.捕捉.",
		"j": "开市.破土.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d1214": {
		"y": "订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.",
		"j": "嫁娶.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d1215": {
		"y": "出行.沐浴.理发.补垣.塞穴.",
		"j": "入宅.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d1216": {
		"y": "教牛马.余事勿取.",
		"j": "入宅.动土.破土.余事勿取.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d1217": {
		"y": "嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.",
		"j": "开市.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d1218": {
		"y": "开市.立券.开光.解除.安机械.上梁.启攒.安葬.",
		"j": "嫁娶.祈福.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d1219": {
		"y": "平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d1220": {
		"y": "求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.",
		"j": "开市.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d1222": {
		"y": "治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d1223": {
		"y": "祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.",
		"j": "造桥.安门.理发.造庙.栽种.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d1224": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d1225": {
		"y": "沐浴.理发.扫舍.",
		"j": "伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d1226": {
		"y": "祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.",
		"j": "嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d1227": {
		"y": "诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.",
		"j": "嫁娶.祈福.掘井.行丧.安葬.安床.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d1228": {
		"y": "安葬.启攒.移柩.入殓.除服.成服.",
		"j": "余事勿取.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d1229": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.",
		"j": "作灶.塑绘.行丧.词讼.伐木.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d1230": {
		"y": "理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.",
		"j": "入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d1231": {
		"y": "祭祀.修饰垣墙.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1021": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d1101": {
		"y": "祭祀.入殓.移柩.开生坟.破土.启攒.安葬.除服.成服.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1102": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d1103": {
		"y": "嫁娶.求嗣.纳采.进人口.纳财.结网.纳畜.牧养.会亲友.",
		"j": "上梁.作灶.伐木.出行.安葬.安门.理发.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d1104": {
		"y": "嫁娶.祭祀.开市.开光.出行.入宅.移徙.出火.拆卸.修造.安床.",
		"j": "纳畜.伐木.置产.作梁.行丧.安葬.修坟.立碑.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d1105": {
		"y": "嫁娶.祭祀.作灶.纳财.",
		"j": "安葬.开市.修坟.立碑.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d1106": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.进人口.开市.交易.立券.挂匾.纳财.入宅.移徙.栽种.破土.谢土.",
		"j": "安床.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d1107": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓硙.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.",
		"j": "移徙.入宅.安门.作梁.安葬.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d1108": {
		"y": "嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.",
		"j": "开光.掘井.安葬.谢土.修坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d1109": {
		"y": "祭祀.沐浴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d1110": {
		"y": "祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木.",
		"j": "入宅.作灶.安床.开仓.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d1111": {
		"y": "理发.会亲友.补垣.塞穴.结网.",
		"j": "嫁娶.入宅.安门.移徙.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d1112": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.",
		"j": "作灶.治病.伐木.作梁.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d1113": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.",
		"j": "作灶.治病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d1114": {
		"y": "祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.",
		"j": "开市.交易.破土.作灶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d1115": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1116": {
		"y": "祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.",
		"j": "造屋.治病.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d1117": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤.",
		"j": "嫁娶.入宅.治病.赴任.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d1118": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d1119": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d1120": {
		"y": "祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网.",
		"j": "入宅.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d1122": {
		"y": "祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.",
		"j": "开市.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d1123": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d1124": {
		"y": "开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.",
		"j": "栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d1125": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服.",
		"j": "",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d1126": {
		"y": "开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.",
		"j": "嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1127": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d1128": {
		"y": "嫁娶.祭祀.开光.出火.出行.拆卸.修造.动土.解除.开市.交易.立券.挂匾.纳财.入宅.移徙.安床.栽种.纳畜.",
		"j": "探病.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d1129": {
		"y": "祭祀.祈福.求嗣.开光.解除.理发.会亲友.栽种.纳畜.牧养.安葬.修坟.立碑.启攒.",
		"j": "入宅.作灶.词讼.移徙.出行.赴任.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d1130": {
		"y": "祭祀.沐浴.结网.移柩.入殓.除服.成服.",
		"j": "安床.开市.交易.出货财.安葬.修坟.嫁娶.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0921": {
		"y": "祭祀.沐浴.赴任.出行.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d1001": {
		"y": "嫁娶.出行.伐木.拆卸.修造.动土.移徙.安葬.破土.修坟.立碑.",
		"j": "掘井.祈福.安床.开市.入宅.挂匾.开光.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d1002": {
		"y": "祭祀.出行.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d1003": {
		"y": "嫁娶.祭祀.塑绘.开光.出行.解除.理发.整手足甲.动土.安床.开池.放水.扫舍.",
		"j": "伐木.行丧.作灶.作梁.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d1004": {
		"y": "开市.交易.立券.挂匾.开光.出行.入宅.移徙.安床.出火.上梁.",
		"j": "作灶.行丧.理发.乘船.嫁娶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d1005": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d1006": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.栽种.纳畜.入殓.安葬.除服.成服.",
		"j": "",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1007": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1008": {
		"y": "祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒.",
		"j": "开光.嫁娶.掘井.伐木.作梁.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d1009": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d1010": {
		"y": "会亲友.嫁娶.订盟.纳采.纳婿.拆卸.修造.动土.起基.竖柱.上梁.安床.会亲友.纳财.",
		"j": "出行.祈福.安葬.作灶.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d1011": {
		"y": "祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财.",
		"j": "开仓.冠笄.伐木.作梁.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1012": {
		"y": "祭祀.作灶.入殓.除服.成服.畋猎.",
		"j": "栽种.动土.安葬.开市.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d1013": {
		"y": "祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.",
		"j": "作灶.入殓.安葬.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d1014": {
		"y": "嫁娶.祭祀.安机械.入殓.破土.安葬.",
		"j": "动土.上梁.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d1131": {
		"y": "解除.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d1015": {
		"y": "作灶.造畜椆栖.",
		"j": "行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d1016": {
		"y": "沐浴.理发.入学.习艺.进人口.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d1017": {
		"y": "开光.针灸.会亲友.启攒.安葬.",
		"j": "开市.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d1018": {
		"y": "祭祀.结网.造畜椆栖.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d1019": {
		"y": "入殓.除服.成服.移柩.破土.启攒.安葬.",
		"j": "移徙.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d1020": {
		"y": "嫁娶.订盟.纳采.出行.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "开市.赴任.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d1022": {
		"y": "订盟.纳采.会亲友.安机械.纳财.牧养.",
		"j": "祈福.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d1023": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "斋醮.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d1024": {
		"y": "祭祀.塞穴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d1025": {
		"y": "祭祀.祈福.求嗣.开光.开市.出行.解除.动土.起基.置产.栽种.",
		"j": "嫁娶.作灶.修坟.安门.入宅.立碑.安葬.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d1026": {
		"y": "祭祀.解除.裁衣.理发.安床.作灶.造畜椆栖.放水.筑堤.补垣.塞穴.整手足甲.扫舍.",
		"j": "嫁娶.开光.会亲友.掘井.安门.栽种.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d1027": {
		"y": "祭祀.出行.裁衣.冠笄.会亲友.造畜椆栖.嫁娶.竖柱.上梁.移徙.纳财.纳畜.",
		"j": "动土.伐木.作梁.行丧.安葬.开生坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d1028": {
		"y": "祭祀.祈福.求嗣.开光.出行.解除.移徙.伐木.安床.纳畜.出火.拆卸.",
		"j": "安葬.修坟.作灶.破土.造庙.动土.嫁娶.纳采.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d1029": {
		"y": "开市.交易.立券.纳财.会亲友.开光.理发.入殓.移柩.安葬.启攒.",
		"j": "嫁娶.作灶.出火.出行.入宅.移徙.安床.祈福.上梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d1030": {
		"y": "造畜椆栖.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d1031": {
		"y": "入殓.破土.安葬.启攒.除服.成服.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0821": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.",
		"j": "动土.破土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0901": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0902": {
		"y": "祭祀.结网.入殓.移柩.启攒.安葬.移柩.除服.成服.合寿木.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0903": {
		"y": "嫁娶.出火.拆卸.祭祀.祈福.开光.伐木.动土.开市.交易.立券.入宅.移徙.安床.纳畜.入殓.安葬.",
		"j": "栽种.作灶.针灸.出行.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0904": {
		"y": "祭祀.开光.解除.移徙.裁衣.开市.立券.祈福.求嗣.进人口.交易.纳财.纳畜.",
		"j": "动土.破土.理发.出行.入宅.分居.安香.出火.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0905": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.安床.栽种.移柩.进人口.会亲友.除服.成服.",
		"j": "造屋.入殓.安葬.伐木.入宅.移徙.置产.纳畜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0906": {
		"y": "祭祀.动土.筑堤.开池.会亲友.塞穴.入殓.移柩.破土.安葬.",
		"j": "开光.出行.修造.上梁.入宅.安门.作灶.裁衣.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0907": {
		"y": "祭祀.裁衣.安门.纳财.扫舍.出行.进人口.作灶.纳畜.造畜椆栖.",
		"j": "安床.动土.安葬.开生坟.合寿木.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0908": {
		"y": "祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.",
		"j": "动土.作灶.行丧.安葬.修坟.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0909": {
		"y": "出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.",
		"j": "造庙.安门.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0910": {
		"y": "祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0911": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0912": {
		"y": "祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.",
		"j": "入宅.伐木.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0913": {
		"y": "祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.",
		"j": "作灶.祭祀.入宅.嫁娶.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0914": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "移徙.入宅.出行.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0915": {
		"y": "祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.",
		"j": "造桥.冠笄.造屋.掘井.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0916": {
		"y": "祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络.",
		"j": "定磉.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0917": {
		"y": "祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.",
		"j": "移徙.入宅.作灶.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0918": {
		"y": "祭祀.诸事不宜.",
		"j": "入殓.安葬.开市.交易.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0919": {
		"y": "祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.",
		"j": "安床.开光.开市.交易.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0920": {
		"y": "祭祀.出行.成服.除服.沐浴.入殓.",
		"j": "动土.冠笄.移徙.入宅.开市.竖柱.上梁.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0922": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0923": {
		"y": "沐浴.入殓.移柩.除服.成服.破土.平治道涂.",
		"j": "嫁娶.移徙.入宅.开市.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0924": {
		"y": "嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.",
		"j": "",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0925": {
		"y": "开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩.",
		"j": "嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0926": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0927": {
		"y": "嫁娶.祈福.求嗣.出行.出火.拆卸.修造.动土.上梁.开光.进人口.开市.交易.立券.挂匾.安床.入宅.移徙.栽种.伐木.入殓.破土.除服.成服.",
		"j": "",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0928": {
		"y": "开市.交易.立券.挂匾.祭祀.开光.进人口.入宅.安床.出火.拆卸.修造.动土.栽种.",
		"j": "嫁娶.立碑.出行.伐木.安葬.行丧.移徙.纳畜.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0929": {
		"y": "祭祀.理发.会亲友.进人口.嫁娶.针灸.入殓.移柩.",
		"j": "探病.开渠.安葬.伐木.作灶.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0930": {
		"y": "祭祀.立碑.修坟.启攒.除服.成服.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0931": {
		"y": "嫁娶.出行.伐木.拆卸.修造.动土.移徙.安葬.破土.修坟.立碑.",
		"j": "掘井.祈福.安床.开市.入宅.挂匾.开光.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0801": {
		"y": "祭祀.出行.交易.割蜜.造畜椆栖.",
		"j": "嫁娶.作灶.安葬.动土.词讼.作梁.伐木.掘井.破土.移徙.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0721": {
		"y": "嫁娶.祭祀.祈福.斋醮.治病.破土.安葬.",
		"j": "开市.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0802": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.栽种.纳畜.入殓.启攒.除服.成服.",
		"j": "",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0803": {
		"y": "嫁娶.开光.解除.安床.牧养.理发.开市.入殓.启攒.移柩.安葬.扫舍.",
		"j": "作灶.动土.上梁.栽种.入宅.移徙.修造.祈福.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0804": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0805": {
		"y": "祭祀.祈福.求嗣.开光.伐木.出火.拆卸.入宅.安床.修造.动土.上梁.挂匾.纳畜.",
		"j": "嫁娶.栽种.行丧.理发.修坟.行丧.作灶.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0806": {
		"y": "解除.祭祀.理发.入殓.安葬.破土.",
		"j": "嫁娶.开市.出火.作灶.置产.斋醮.入宅.移徙.安门.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0807": {
		"y": "祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.",
		"j": "嫁娶.纳采.订盟.开市.入宅.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0808": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "行丧.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0809": {
		"y": "祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.",
		"j": "动土.破土.订盟.安床.开池.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0810": {
		"y": "祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.",
		"j": "",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0811": {
		"y": "塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养.",
		"j": "",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0812": {
		"y": "祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.",
		"j": "",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0813": {
		"y": "嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅.",
		"j": "动土.破土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0814": {
		"y": "嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.",
		"j": "作灶.动土.破土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0815": {
		"y": "订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.",
		"j": "嫁娶.开市.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0816": {
		"y": "订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0817": {
		"y": "沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.祈福.余事勿取.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0818": {
		"y": "嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0819": {
		"y": "捕捉.结网.入殓.破土.安葬.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0820": {
		"y": "沐浴.治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0822": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.",
		"j": "开光.针灸.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0823": {
		"y": "订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.",
		"j": "动土.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0824": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.",
		"j": "入宅.作梁.安门.伐木.修造.上梁.入殓.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0825": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.",
		"j": "造屋.开光.理发.造船.掘井.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0826": {
		"y": "祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.",
		"j": "破土.置产.掘井.动土.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0827": {
		"y": "祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍.",
		"j": "嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0828": {
		"y": "塑绘.开光.进人口.纳畜.补垣.塞穴.栽种.牧养.",
		"j": "嫁娶.纳财.祈福.安葬.修造.开市.交易.立券.动土.上梁.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0829": {
		"y": "祭祀.作灶.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0830": {
		"y": "祭祀.求嗣.开光.出行.伐木.作梁.出火.解除.拆卸.进人口.修造.动土.起基.安床.栽种.纳畜.入殓.破土.安葬.除服.成服.",
		"j": "嫁娶.移徙.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0831": {
		"y": "祭祀.求医.捕捉.栽种.塞穴.入殓.破土.安葬.移柩.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0701": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0621": {
		"y": "开光.求医.治病.动土.上梁.入殓.破土.安葬.",
		"j": "嫁娶.开光.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0702": {
		"y": "开市.交易.立券.纳财.开池.作厕.结网.祭祀.修造.动土.安床.放水.经络.破土.",
		"j": "嫁娶.造桥.词讼.移徙.安门.作灶.栽种.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0703": {
		"y": "开市.交易.立券.纳财.栽种.安床.拆卸.修造.动土.上梁.入殓.安葬.破土.除服.成服.",
		"j": "嫁娶.出火.伐木.祭祀.入宅.移徙.纳畜.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0704": {
		"y": "祭祀.作灶.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0705": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0706": {
		"y": "修造.动土.起基.安门.安床.栽种.筑堤.补垣.造畜椆栖.",
		"j": "嫁娶.掘井.入宅.移徙.出火.出行.行丧.安葬.开光.理发.进人口.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0707": {
		"y": "祭祀.塞穴.结网.畋猎.余事勿取.",
		"j": "移徙.开市.入宅.嫁娶.开光.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0708": {
		"y": "开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.",
		"j": "动土.破土.安葬.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0709": {
		"y": "移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.",
		"j": "开市.斋醮.安床.出行.经络.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0710": {
		"y": "塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0711": {
		"y": "祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0712": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0713": {
		"y": "纳采.祭祀.祈福.解除.动土.破土.安葬.",
		"j": "嫁娶.移徙.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0714": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0715": {
		"y": "嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "祭祀.祈福.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0716": {
		"y": "嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "赴任.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0717": {
		"y": "祭祀.作灶.纳财.捕捉.",
		"j": "开市.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0718": {
		"y": "嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅.",
		"j": "造庙.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0719": {
		"y": "补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0720": {
		"y": "嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.",
		"j": "动土.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0722": {
		"y": "嫁娶.出行.开市.安床.入殓.启攒.安葬.",
		"j": "祈福.动土.破土.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0723": {
		"y": "嫁娶.祭祀.裁衣.结网.冠笄.沐浴.",
		"j": "开仓.出货财.置产.安葬.动土.破土.掘井.栽种.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0724": {
		"y": "入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.",
		"j": "嫁娶.破土.置产.栽种.安葬.修坟.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0725": {
		"y": "祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.",
		"j": "嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0726": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0727": {
		"y": "嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.",
		"j": "伐木.祭祀.纳畜.祭祀.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0728": {
		"y": "嫁娶.开光.出行.祈福.求嗣.解除.拆卸.动土.修造.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.纳畜.入殓.移柩.安葬.",
		"j": "",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0729": {
		"y": "祭祀.作灶.纳财.栽种.纳畜.进人口.",
		"j": "安葬.经络.修坟.破土.开市.安床.启攒.立碑.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0730": {
		"y": "祭祀.祈福.求嗣.开光.开市.牧养.理发.",
		"j": "嫁娶.出行.安葬.入殓.入宅.作灶.冠笄.上梁.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0731": {
		"y": "祭祀.入殓.破土.除服.成服.移柩.启攒.安葬.谢土.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0601": {
		"y": "开市.交易.立券.挂匾.开光.出行.拆卸.进人口.入宅.移柩.动土.安门.上梁.栽种.破土.修坟.安葬.",
		"j": "嫁娶.安床.探病.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0602": {
		"y": "进人口.会亲友.",
		"j": "塞穴.上梁.动土.伐木.安葬.词讼.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0603": {
		"y": "沐浴.平治道涂.扫舍.入殓.破土.安葬.除服.成服.",
		"j": "嫁娶.移徙.伐木.作梁.安床.祭祀.祈福.造屋.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0521": {
		"y": "订盟.纳采.会亲友.安床.作灶.造畜椆栖.",
		"j": "开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0604": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.解除.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.安门.上梁.安葬.破土.谢土.",
		"j": "",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0605": {
		"y": "祭祀.祈福.求嗣.开光.解除.合帐.冠笄.伐木.架马.作梁.修造.进人口.嫁娶.裁衣.合帐.安床.动土.起基.上梁.竖柱.放水.会亲友.",
		"j": "",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0606": {
		"y": "祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.",
		"j": "开市.交易.嫁娶.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0607": {
		"y": "破屋.坏垣.求医.治病.畋猎.余事勿取.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0608": {
		"y": "嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.",
		"j": "开市.安门.掘井.作灶.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0609": {
		"y": "订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.",
		"j": "",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0610": {
		"y": "祭祀.捕捉.取渔.修饰垣墙.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0611": {
		"y": "嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.",
		"j": "开市.安门.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0612": {
		"y": "裁衣.作灶.移徙.入宅.纳畜.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0613": {
		"y": "祭祀.入殓.移柩.启攒.安葬.",
		"j": "上梁.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0614": {
		"y": "订盟.纳采.出行.祈福.斋醮.安床.会亲友.",
		"j": "移徙.入宅.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0615": {
		"y": "嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.",
		"j": "动土.破土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0616": {
		"y": "嫁娶.祭祀.沐浴.扫舍.修饰垣墙.",
		"j": "行丧.安葬.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0617": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0618": {
		"y": "订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0619": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0620": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.",
		"j": "开光.开市.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0622": {
		"y": "祭祀.栽种.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0623": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.",
		"j": "安葬.开市.交易.立券.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0624": {
		"y": "求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖.",
		"j": "安葬.出行.祈福.栽种.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0625": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0626": {
		"y": "嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.",
		"j": "安葬.行丧.伐木.作梁.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0627": {
		"y": "开光.求嗣.出行.解除.伐木.出火.拆卸.修造.上梁.起基.入宅.移徙.开市.交易.立券.栽种.牧养.入殓.安葬.除服.成服.",
		"j": "置产.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0628": {
		"y": "祭祀.理发.修饰垣墙.平治道涂.沐浴.整手足甲.扫舍.",
		"j": "出行.安门.修造.嫁娶.上梁.入宅.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0629": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出行.出火.拆卸.动土.修造.进人口.入宅.移徙.安床.挂匾.交易.立券.栽种.纳畜.入殓.破土.启攒.安葬.",
		"j": "",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0630": {
		"y": "祭祀.祈福.求嗣.开光.出行.伐木.出火.拆卸.修造.动土.起基.安床.入宅.移徙.",
		"j": "嫁娶.开市.交易.行丧.安葬.修坟.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0631": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0501": {
		"y": "塞穴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0502": {
		"y": "祭祀.祈福.求嗣.开光.解除.纳采.冠笄.出火.拆卸.进人口.安床.动土.上梁.造庙.掘井.开池.入殓.移柩.安葬.破土.",
		"j": "",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0421": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0503": {
		"y": "解除.破屋.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0504": {
		"y": "嫁娶.祈福.求嗣.开光.出行.解除.拆卸.出火.开市.立券.交易.入宅.移徙.安床.动土.破土.谢土.",
		"j": "祭祀.入殓.安葬.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0505": {
		"y": "嫁娶.祭祀.祈福.求嗣.斋醮.订盟.纳采.解除.出行.动土.破土.习艺.针灸.理发.会亲友.起基.修造.动土.竖柱.定磉.安床.拆卸.纳畜.牧养.放水.破土.除服.成服.修坟.立碑.",
		"j": "开市.入宅.探病.出火.造屋.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0506": {
		"y": "余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0507": {
		"y": "塞穴.断蚁.结网.余事勿取.",
		"j": "破土.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0508": {
		"y": "开光.出行.纳采.嫁娶.伐木.架马.出火.拆卸.移徙.入宅.造庙.造桥.造船.造畜椆栖.开市.入殓.除服.成服.移柩.安葬.",
		"j": "",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0509": {
		"y": "进人口.牧养.置产.塞穴.结网.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0510": {
		"y": "开光.出行.嫁娶.",
		"j": "会亲友.进人口.修造.动土.起基.移徙.开市.纳畜.入殓.除服.成服.移柩.破土.安葬.修坟.立碑.会亲友.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0511": {
		"y": "嫁娶.纳采.出行.祭祀.祈福.开市.动土.移徙.入宅.破土.安葬.",
		"j": "安门.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0512": {
		"y": "嫁娶.纳采.求医.治病.修造.动土.移徙.入宅.破土.安葬.",
		"j": "开市.开光.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0513": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0514": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "祈福.斋醮.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0515": {
		"y": "纳采.祭祀.祈福.开市.求医.治病.动土.纳畜.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0516": {
		"y": "嫁娶.纳采.出行.移徙.入宅.",
		"j": "动土.破土.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0517": {
		"y": "订盟.纳采.祭祀.动土.破土.交易.立券.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0518": {
		"y": "嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.",
		"j": "赴任.捕捉.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0519": {
		"y": "塞穴.结网.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0520": {
		"y": "嫁娶.订盟.纳采.出行.祭祀.祈福.斋醮.动土.上梁.破土.安葬.",
		"j": "移徙.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0522": {
		"y": "沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0523": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.",
		"j": "",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0524": {
		"y": "祭祀.开光.出行.解除.塑绘.裁衣.入殓.移柩.破土.启攒.安葬.除服.成服.",
		"j": "嫁娶.上梁.修造.拆卸.架马.入宅.伐木.动土.出火.开柱眼.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0525": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0526": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.动土.上梁.出火.进人口.入宅.移徙.安床.栽种.纳畜.牧养.竖柱.安门.修造.解除.会亲友.",
		"j": "",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0527": {
		"y": "开市.交易.立券.祭祀.祈福.开光.伐木.进人口.安床.拆卸.修造.动土.栽种.破土.移柩.安葬.",
		"j": "入宅.移徙.理发.出火.嫁娶.出行.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0528": {
		"y": "结网.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0529": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.开市.交易.立券.安床.出行.拆卸.",
		"j": "纳畜.入宅.移徙.安葬.探病.伐木.上梁.安门.入殓.动土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0530": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.动土.入宅.移徙.安床.作灶.塞穴.栽种.破土.安葬.",
		"j": "开光.掘井.开仓.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0531": {
		"y": "解除.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0401": {
		"y": "开光.塑绘.求嗣.纳采.裁衣.合帐.冠笄.安机械.作梁.开柱眼.安门.安床.造仓.祭祀.会亲友.祈福.经络.纳财.开市.立券.交易.入学.求嗣.理发.架马.",
		"j": "出行.斋醮.安葬.嫁娶.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0402": {
		"y": "祭祀.嫁娶.纳婿.安葬.",
		"j": "栽种.造屋.作灶.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0321": {
		"y": "冠笄.入殓.除服.成服.移柩.平治道涂.修饰垣墙.",
		"j": "造屋.作灶.治病.探病.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0403": {
		"y": "祭祀.会亲友.订盟.裁衣.合帐.安机械.拆卸.上梁.安门.入殓.除服.成服.移柩.启攒.安葬.立碑.开光.塑绘.入学.出行.起基.定磉.放水.移徙.入宅.竖柱.立券.经络.",
		"j": "伐木.作梁.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0404": {
		"y": "祭祀.开光.塑绘.祈福.斋醮.裁衣.合帐.冠笄.嫁娶.拆卸.动土.移徙.入宅.入殓.移柩.安葬.谢土.求嗣.入学.理发.伐木.架马.作梁.出火.修造.起基.定磉.放水.赴任.",
		"j": "入宅.安门.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0405": {
		"y": "祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.",
		"j": "开市.动土.掘井.开池.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0406": {
		"y": "祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.",
		"j": "嫁娶.开市.交易.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0407": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0408": {
		"y": "祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.",
		"j": "出火.入宅.安葬.伐木.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0409": {
		"y": "祭祀.余事勿取.",
		"j": "造庙.嫁娶.安床.余事勿取.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0410": {
		"y": "订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.",
		"j": "入殓.安葬.入宅.安床.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0411": {
		"y": "祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.",
		"j": "掘井.安门.嫁娶.纳采.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0412": {
		"y": "祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.",
		"j": "掘井.动土.破土.安葬.开光.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0413": {
		"y": "纳采.开光.求医.治病.动土.上梁.移徙.入宅.",
		"j": "嫁娶.开市.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0414": {
		"y": "祭祀.会亲友.开市.安床.启攒.安葬.",
		"j": "嫁娶.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0415": {
		"y": "祭祀.作灶.掘井.平治道涂.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0416": {
		"y": "祭祀.斋醮.开市.动土.入殓.破土.安葬.",
		"j": "嫁娶.移徙.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0417": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.移徙.求医.",
		"j": "开市.动土.破土.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0418": {
		"y": "祭祀.求医.治病.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0419": {
		"y": "沐浴.结网.取渔.",
		"j": "嫁娶.入宅.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0420": {
		"y": "",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0422": {
		"y": "嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.",
		"j": "祈福.入殓.祭祀.作灶.安葬.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0423": {
		"y": "嫁娶.出行.合帐.冠笄.安床.除服.成服.作灶.交易.立券.入殓.移柩.破土.安葬.",
		"j": "词讼.开光.开市.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0424": {
		"y": "出行.修饰垣墙.造畜椆栖.教牛马.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0425": {
		"y": "祭祀.祈福.开光.求嗣.解除.伐木.出火.入宅.移徙.安床.拆卸.修造.动土.造畜椆栖.",
		"j": "嫁娶.纳财.安葬.出行.开市.立券.作灶.栽种.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0426": {
		"y": "纳采.嫁娶.开光.出行.理发.会亲友.开市.安床.栽种.牧养.入殓.移柩.启攒.",
		"j": "谢土.祈福.上梁.作灶.斋醮.修造.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0427": {
		"y": "祭祀.平治道涂.解除.修饰垣墙.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0428": {
		"y": "祭祀.祈福.开光.解除.动土.纳财.交易.纳畜.扫舍.",
		"j": "进人口.出行.嫁娶.置产.安床.赴任.安葬.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0429": {
		"y": "祭祀.祈福.求嗣.开光.解除.出火.拆卸.入宅.安床.修造.安门.纳畜.启攒.安葬.",
		"j": "动土.破土.纳财.掘井.挂匾.开市.伐木.交易.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0430": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0301": {
		"y": "结网.入殓.除服.成服.移柩.安葬.破土.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0431": {
		"y": "塞穴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0302": {
		"y": "移徙.祭祀.开光.祈福.出行.解除.进人口.雇庸.安床.动土.起基.上梁.安门.解除.",
		"j": "嫁娶.安葬.破土.作梁.纳畜.牧养.行丧.作灶.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0221": {
		"y": "安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.",
		"j": "嫁娶.出行.动土.开渠.入宅.祭祀.掘井.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0303": {
		"y": "嫁娶.开光.祈福.求嗣.解除.动土.安床.栽种.开池.掘井.祭祀.破土.启攒.",
		"j": "入宅.作灶.伐木.安葬.出火.出行.纳畜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0304": {
		"y": "祭祀.合帐.裁衣.经络.伐木.作梁.安床.作灶.入殓.安葬.启攒.移柩.",
		"j": "词讼.出火.入宅.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0305": {
		"y": "裁衣.伐木.作梁.纳财.交易.立券.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0306": {
		"y": "祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.",
		"j": "栽种.动土.安葬.掘井.修坟.探病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0307": {
		"y": "扫舍.塞穴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0308": {
		"y": "塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.",
		"j": "作灶.出行.入宅.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0309": {
		"y": "祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.",
		"j": "动土.作灶.入宅.开光.安床.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0310": {
		"y": "祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.",
		"j": "赴任.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0311": {
		"y": "祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.",
		"j": "安床.嫁娶.作灶.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0312": {
		"y": "破屋.坏垣.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0313": {
		"y": "祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎.",
		"j": "作梁.造庙.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0314": {
		"y": "祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.",
		"j": "造庙.嫁娶.伐木.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0315": {
		"y": "祭祀.沐浴.捕捉.栽种.",
		"j": "嫁娶.入宅.移徙.作灶.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0316": {
		"y": "祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.",
		"j": "栽种.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0317": {
		"y": "订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.",
		"j": "作灶.开光.嫁娶.开市.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0318": {
		"y": "祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱.",
		"j": "作灶.掘井.动土.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0319": {
		"y": "祭祀.扫舍.塞穴.",
		"j": "栽种.作灶.安葬.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0320": {
		"y": "开光.塑绘.裁衣.冠笄.伐木.拆卸.竖柱.上梁.开仓.会亲友.安机械.造仓.造屋.交易.解除.开市.立券.纳财.",
		"j": "出行.嫁娶.入宅.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0322": {
		"y": "祭祀.嫁娶.祈福.纳采.裁衣.合帐.安床.入宅.安香.入殓.移柩.安葬.谢土.修造.安碓硙.求嗣.会亲友.挂匾.交易.立券.纳财.造仓.放水.",
		"j": "栽种.伐木.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0323": {
		"y": "祭祀.祈福.斋醮.订盟.纳采.裁衣.合帐.拆卸.修造.动土.上梁.起基.移柩.安葬.谢土.沐浴.扫舍.开柱眼.伐木.出火.",
		"j": "安床.开市.立券.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0324": {
		"y": "破屋.坏垣.求医.治病.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0325": {
		"y": "祭祀.动土.上梁.订盟.纳采.嫁娶.安机械.拆卸.安床.入宅.安香.入殓.移柩.破土.安葬.立碑.谢土.赴任.出行.移徙.祈福.求嗣.解除.造仓.进人口.",
		"j": "开光.出货财.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0326": {
		"y": "祭祀.开光.塑绘.纳采.裁衣.拆卸.安床.起基.动土.竖柱.上梁.移徙.入宅.安香.开市.立券.挂匾.沐浴.出行.求嗣.安门.",
		"j": "嫁娶.栽种.伐木.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0327": {
		"y": "裁衣.合帐.冠笄.嫁娶.纳婿.安床.入殓.纳财.",
		"j": "作灶.开市.安葬.作梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0328": {
		"y": "祭祀.订盟.纳采.修造.动土.祈福.塑绘.斋醮.沐浴.拆卸.起基.入宅.安香.造庙.移柩.谢土.除服.成服.入学.习艺.出行.竖柱.上梁.掘井.求嗣.解除.伐木.",
		"j": "作灶.安葬.开市.造屋.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0329": {
		"y": "订盟.纳采.裁衣.合帐.冠笄.安机械.拆卸.安床.入殓.除服.成服.移柩.破土.启攒.安葬.修坟.立碑.经络.交易.立券.纳财.筑堤.造仓.补垣.塞穴.纳畜.伐木.架马.",
		"j": "祭祀.开光.嫁娶.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0330": {
		"y": "祭祀.出行.嫁娶.冠笄.安床.入殓.移柩.安葬.",
		"j": "掘井.动土.作灶.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0331": {
		"y": "塞穴.诸事不宜.",
		"j": "安门.作灶.安葬.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0201": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.入宅.移徙.安床.修造.动土.进人口.",
		"j": "掘井.安葬.栽种.出行.作灶.开市.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0121": {
		"y": "解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0202": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0203": {
		"y": "嫁娶.开市.交易.立券.开光.出行.出火.拆卸.修造.入宅.移徙.动土.破土.移柩.安葬.启攒.除服.成服.",
		"j": "安床.伐木.祈福.纳畜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0204": {
		"y": "祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土.",
		"j": "安床.栽种.治病.作灶.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0205": {
		"y": "祭祀.结网.入殓.除服.成服.移柩.安葬.破土.",
		"j": "余事勿取.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0206": {
		"y": "塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.",
		"j": "伐木.作灶.安葬.取渔.入宅.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0207": {
		"y": "祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓硙.放水.开市.立券.交易.",
		"j": "安葬.上梁.入宅.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0208": {
		"y": "祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.",
		"j": "出行.嫁娶.入宅.动土.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0209": {
		"y": "裁衣.合帐.入殓.除服.成服.会亲友.纳财.",
		"j": "祭祀.祈福.移徙.嫁娶.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0210": {
		"y": "祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.",
		"j": "掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0211": {
		"y": "安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓.",
		"j": "斋醮.作灶.安床.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0212": {
		"y": "作灶.平治道涂.",
		"j": "祭祀.祈福.安葬.安门.余事勿取.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0213": {
		"y": "塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.",
		"j": "造屋.栽种.安葬.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0214": {
		"y": "祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.",
		"j": "栽种.动土.开市.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0215": {
		"y": "求医.破屋.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0216": {
		"y": "祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水.",
		"j": "作灶.安床.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0217": {
		"y": "取渔.入殓.除服.成服.移柩.破土.安葬.立碑.",
		"j": "嫁娶.上梁.入宅.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0218": {
		"y": "祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.",
		"j": "安葬.作灶.伐木.作梁.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0219": {
		"y": "祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩.",
		"j": "入殓.安葬.作灶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0220": {
		"y": "祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.",
		"j": "开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0222": {
		"y": "嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.",
		"j": "掘井.词讼.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0223": {
		"y": "嫁娶.开光.求嗣.会亲友.安床.牧养.塑绘.针灸.",
		"j": "入宅.移徙.出火.分居.安香.作灶.开市.交易.立券.安葬.动土.伐木.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0224": {
		"y": "作灶.解除.平治道涂.",
		"j": "栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0225": {
		"y": "解除.沐浴.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0226": {
		"y": "嫁娶.祭祀.祈福.出行.解除.出火.拆卸.动土.入宅.移徙.安床.上梁.栽种.纳畜.破土.启攒.安葬.",
		"j": "开市.立券.理发.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0227": {
		"y": "祭祀.解除.治病.破屋.坏垣.扫舍.",
		"j": "余事勿取.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0228": {
		"y": "祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.入宅.移徙.上梁.挂匾.开池.入殓.安葬.破土.启攒.",
		"j": "嫁娶.作灶.安床.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0230": {
		"y": "结网.入殓.除服.成服.移柩.安葬.破土.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0101": {
		"y": "诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.",
		"j": "嫁娶.祈福.掘井.行丧.安葬.安床.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0231": {
		"y": "结网.入殓.除服.成服.移柩.安葬.破土.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0102": {
		"y": "安葬.启攒.移柩.入殓.除服.成服.",
		"j": "余事勿取.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0103": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.",
		"j": "作灶.塑绘.行丧.词讼.伐木.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0229": {
		"y": "结网.入殓.除服.成服.移柩.安葬.破土.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0104": {
		"y": "理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.",
		"j": "入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0105": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.",
		"j": "入宅.开光.开市.动土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0106": {
		"y": "祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.",
		"j": "移徙.入宅.造庙.作灶.治病.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0107": {
		"y": "祭祀.安碓硙.结网.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0108": {
		"y": "嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.",
		"j": "造屋.开市.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0109": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "嫁娶.开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0110": {
		"y": "纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.",
		"j": "祈福.嫁娶.造庙.安床.谢土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0111": {
		"y": "入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.",
		"j": "开市.伐木.嫁娶.作梁.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0112": {
		"y": "祭祀.作灶.入殓.除服.余事勿取.",
		"j": "开市.安床.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0113": {
		"y": "塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.",
		"j": "嫁娶.入殓.安葬.出行.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0114": {
		"y": "祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.",
		"j": "开仓.嫁娶.移徙.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0115": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0116": {
		"y": "沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.",
		"j": "作灶.祭祀.上梁.出行.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0117": {
		"y": "出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口.",
		"j": "作灶.掘井.谢土.入宅.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0118": {
		"y": "修饰垣墙.平治道涂.入殓.移柩.余事勿取.",
		"j": "嫁娶.移徙.入宅.开光.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0119": {
		"y": "会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜.",
		"j": "出行.治病.安葬.开市.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0120": {
		"y": "祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门.",
		"j": "造屋.开市.作灶.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0122": {
		"y": "塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.",
		"j": "入宅.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0123": {
		"y": "入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.",
		"j": "破土.伐木.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0124": {
		"y": "祭祀.祈福.斋醮.塑绘.开光.除服.成服.入殓.作灶.嫁娶.捕捉.畋猎.纳财.",
		"j": "开仓.造屋.安葬.安床.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0125": {
		"y": "祭祀.出行.沐浴.裁衣.祈福.斋醮.订盟.纳采.嫁娶.安机械.开市.立券.安碓硙.纳畜.",
		"j": "栽种.嫁娶.入殓.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0126": {
		"y": "祭祀.祈福.斋醮.沐浴.安床.安机械.造车器.入殓.移柩.启攒.安葬.立碑.合帐.经络.交易.",
		"j": "作灶.掘井.嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0127": {
		"y": "解除.扫舍.祭祀.教牛马.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0128": {
		"y": "开市.交易.立券.挂匾.开光.解除.伐木.作梁.出火.入宅.移徙.安床.拆卸.动土.上梁.栽种.纳畜.安葬.",
		"j": "嫁娶.祭祀.出行.置产.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0129": {
		"y": "开市.交易.立券.纳财.开池.补垣.嫁娶.纳采.纳畜.取渔.安床.",
		"j": "修造.上梁.入宅.祈福.探病.掘井.动土.安门.安葬.作灶.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0130": {
		"y": "祭祀.解除.修饰垣墙.平治道涂.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0131": {
		"y": "嫁娶.祭祀.祈福.求嗣.动土.会亲友.起基.造仓.纳畜.牧养.作厕.进人口.",
		"j": "掘井.安葬.栽种.出行.作灶.开市.入宅.安门.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	}
};


},{}],197:[function(require,module,exports){
module.exports =  {
	"d1221": {
		"y": "祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.",
		"j": "嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d1121": {
		"y": "开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.",
		"j": "嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1201": {
		"y": "嫁娶.开光.出行.出火.拆卸.修造.动土.入宅.移徙.安床.上梁.开市.交易.立券.栽种.",
		"j": "祈福.祭祀.伐木.掘井.作灶.谢土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1202": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.开市.交易.立券.挂匾.伐木.入宅.移徙.安床.安葬.",
		"j": "栽种.掘井.置产.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d1203": {
		"y": "祭祀.理发.针灸.解除.进人口.整手足甲.",
		"j": "嫁娶.动土.造船.开池.掘井.出行.修造.入宅.上梁.移徙.安葬.破土.作灶.开市.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d1204": {
		"y": "破屋.坏垣.求医.治病.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d1205": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.雕刻.移徙.开市.入宅.出行.动土.会亲友.入学.修造.动土.起基.安门.安床.造庙.解除.纳财.开池.造畜椆栖.牧养.牧养.",
		"j": "上梁.开仓.出货财.造屋.造船.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1206": {
		"y": "祭祀.祈福.求嗣.开光.解除.伐木.拆卸.修造.栽种.纳畜.安葬.修坟.立碑.",
		"j": "嫁娶.进人口.入宅.移徙.出火.出行.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d1207": {
		"y": "塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土.",
		"j": "",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d1208": {
		"y": "祭祀.沐浴.安床.纳财.畋猎.捕捉.",
		"j": "开市.破土.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d1209": {
		"y": "订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.",
		"j": "嫁娶.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d1210": {
		"y": "出行.沐浴.理发.补垣.塞穴.",
		"j": "入宅.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d1211": {
		"y": "教牛马.余事勿取.",
		"j": "入宅.动土.破土.余事勿取.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d1212": {
		"y": "嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.",
		"j": "开市.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d1213": {
		"y": "开市.立券.开光.解除.安机械.上梁.启攒.安葬.",
		"j": "嫁娶.祈福.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d1214": {
		"y": "平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d1215": {
		"y": "求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.",
		"j": "开市.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d1216": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d1217": {
		"y": "治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d1218": {
		"y": "祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.",
		"j": "造桥.安门.理发.造庙.栽种.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d1219": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d1220": {
		"y": "沐浴.理发.扫舍.",
		"j": "伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d1222": {
		"y": "诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.",
		"j": "嫁娶.祈福.掘井.行丧.安葬.安床.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d1223": {
		"y": "安葬.启攒.移柩.入殓.除服.成服.",
		"j": "余事勿取.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d1224": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.",
		"j": "作灶.塑绘.行丧.词讼.伐木.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d1225": {
		"y": "理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.",
		"j": "入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d1226": {
		"y": "祭祀.修饰垣墙.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1227": {
		"y": "入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.",
		"j": "嫁娶.开市.作灶.置产.作梁.伐木.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d1228": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d1229": {
		"y": "破屋.坏垣.祭祀.沐浴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d1230": {
		"y": "安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.",
		"j": "安门.栽种.作灶.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d1231": {
		"y": "解除.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d1101": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.进人口.开市.交易.立券.挂匾.纳财.入宅.移徙.栽种.破土.谢土.",
		"j": "安床.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d1103": {
		"y": "祭祀.祈福.求嗣.开光.出行.解除.上梁.入宅.移徙.安床.安门.纳财.纳畜.造畜椆栖.",
		"j": "伐木.行丧.破土.嫁娶.安葬.开渠.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d1102": {
		"y": "嫁娶.祭祀.祈福.求嗣.动土.安床.扫舍.入殓.移柩.破土.启攒.安葬.作灶.整手足甲.补垣.除服.成服.",
		"j": "开光.栽种.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d1104": {
		"y": "祭祀.开光.出行.解除.理发.伐木.出火.拆卸.上梁.合脊.安床.造畜椆栖.",
		"j": "嫁娶.安葬.行丧.词讼.造桥.作灶.破土.动土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d1105": {
		"y": "纳采.订盟.会亲友.沐浴.理发.裁衣.冠笄.安床.除服.成服.启攒.移柩.安葬.会亲友.开生坟.",
		"j": "开市.入宅.出行.嫁娶.修坟.祈福.动土.入宅.安门.谢土.上梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d1106": {
		"y": "解除.祭祀.修饰垣墙.平治道涂.造畜椆栖.余事勿取.",
		"j": "嫁娶.开市.交易.入宅.入学.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d1107": {
		"y": "入殓.破土.启攒.安葬.除服.成服.余事勿取.",
		"j": "开市.入宅.祭祀.置产.补垣.塞穴.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d1108": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.",
		"j": "作灶.治病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d1109": {
		"y": "祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.",
		"j": "开市.交易.破土.作灶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d1110": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1111": {
		"y": "祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.",
		"j": "造屋.治病.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d1112": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤.",
		"j": "嫁娶.入宅.治病.赴任.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d1113": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d1114": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d1115": {
		"y": "祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网.",
		"j": "入宅.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d1116": {
		"y": "祭祀.沐浴.出行.冠笄.进人口.余事勿取.",
		"j": "嫁娶.动土.安葬.作灶.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d1117": {
		"y": "祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.",
		"j": "开市.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d1118": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d1119": {
		"y": "开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.",
		"j": "栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d1120": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服.",
		"j": "",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d1122": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d1123": {
		"y": "嫁娶.祭祀.开光.出火.出行.拆卸.修造.动土.解除.开市.交易.立券.挂匾.纳财.入宅.移徙.安床.栽种.纳畜.",
		"j": "探病.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d1124": {
		"y": "祭祀.祈福.求嗣.开光.解除.理发.会亲友.栽种.纳畜.牧养.安葬.修坟.立碑.启攒.",
		"j": "入宅.作灶.词讼.移徙.出行.赴任.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d1126": {
		"y": "解除.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d1125": {
		"y": "祭祀.沐浴.结网.移柩.入殓.除服.成服.",
		"j": "安床.开市.交易.出货财.安葬.修坟.嫁娶.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d1127": {
		"y": "安床.祭祀.开池.补垣.入殓.移柩.破土.启攒.",
		"j": "入宅.移徙.嫁娶.掘井.作灶.出火.进人口.开市.开光.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d1128": {
		"y": "祭祀.沐浴.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d1129": {
		"y": "嫁娶.开光.出行.解除.出火.拆卸.修造.进人口.动土.入宅.移徙.栽种.纳畜.掘井.安葬.除服.成服.",
		"j": "置产.安床.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d1130": {
		"y": "开光.裁衣.安门.会亲友.安床.结网.理发.",
		"j": "嫁娶.冠笄.出行.祈福.安葬.伐木.入宅.移徙.出火.栽种.动土.上梁.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1131": {
		"y": "嫁娶.开光.出行.出火.拆卸.修造.动土.入宅.移徙.安床.上梁.开市.交易.立券.栽种.",
		"j": "祈福.祭祀.伐木.掘井.作灶.谢土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1001": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.栽种.纳畜.入殓.安葬.除服.成服.",
		"j": "",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1003": {
		"y": "祭祀.治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d1002": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1005": {
		"y": "开市.交易.立券.纳财.挂匾.栽种.祭祀.祈福.开光.拆卸.动土.安床.",
		"j": "嫁娶.破土.进人口.出行.入宅.移徙.出火.纳畜.词讼.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d1004": {
		"y": "嫁娶.纳采.订盟.祭祀.开光.出行.理发.作梁.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.移徙.拆卸.挂匾.栽种.纳畜.破土.安葬.入殓.除服.成服.",
		"j": "开市.掘井.开渠.造桥.造船.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d1006": {
		"y": "嫁娶.祭祀.理发.进人口.作灶.移柩.冠笄.会亲友.",
		"j": "开仓.出货财.伐木.纳畜.开市.上梁.造屋.破土.启攒.栽种.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1007": {
		"y": "祭祀.修坟.除服.成服.启攒.移柩.余事勿取.",
		"j": "开市.入宅.嫁娶.动土.破土.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d1008": {
		"y": "祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.",
		"j": "作灶.入殓.安葬.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d1010": {
		"y": "作灶.造畜椆栖.",
		"j": "行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d1009": {
		"y": "嫁娶.祭祀.安机械.入殓.破土.安葬.",
		"j": "动土.上梁.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d1011": {
		"y": "沐浴.理发.入学.习艺.进人口.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d1012": {
		"y": "开光.针灸.会亲友.启攒.安葬.",
		"j": "开市.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d1013": {
		"y": "祭祀.结网.造畜椆栖.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d1015": {
		"y": "嫁娶.订盟.纳采.出行.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "开市.赴任.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d1014": {
		"y": "入殓.除服.成服.移柩.破土.启攒.安葬.",
		"j": "移徙.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d1016": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d1017": {
		"y": "订盟.纳采.会亲友.安机械.纳财.牧养.",
		"j": "祈福.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d1018": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "斋醮.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d1019": {
		"y": "祭祀.塞穴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d1020": {
		"y": "祭祀.祈福.求嗣.开光.开市.出行.解除.动土.起基.置产.栽种.",
		"j": "嫁娶.作灶.修坟.安门.入宅.立碑.安葬.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d1022": {
		"y": "祭祀.出行.裁衣.冠笄.会亲友.造畜椆栖.嫁娶.竖柱.上梁.移徙.纳财.纳畜.",
		"j": "动土.伐木.作梁.行丧.安葬.开生坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d1023": {
		"y": "祭祀.祈福.求嗣.开光.出行.解除.移徙.伐木.安床.纳畜.出火.拆卸.",
		"j": "安葬.修坟.作灶.破土.造庙.动土.嫁娶.纳采.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d1024": {
		"y": "开市.交易.立券.纳财.会亲友.开光.理发.入殓.移柩.安葬.启攒.",
		"j": "嫁娶.作灶.出火.出行.入宅.移徙.安床.祈福.上梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d1026": {
		"y": "入殓.破土.安葬.启攒.除服.成服.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d1025": {
		"y": "造畜椆栖.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d1028": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d1027": {
		"y": "祭祀.入殓.移柩.开生坟.破土.启攒.安葬.除服.成服.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1029": {
		"y": "嫁娶.求嗣.纳采.进人口.纳财.结网.纳畜.牧养.会亲友.",
		"j": "上梁.作灶.伐木.出行.安葬.安门.理发.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d1030": {
		"y": "嫁娶.祭祀.开市.开光.出行.入宅.移徙.出火.拆卸.修造.安床.",
		"j": "纳畜.伐木.置产.作梁.行丧.安葬.修坟.立碑.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d1031": {
		"y": "嫁娶.祭祀.作灶.纳财.",
		"j": "安葬.开市.修坟.立碑.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0901": {
		"y": "祭祀.动土.筑堤.开池.会亲友.塞穴.入殓.移柩.破土.安葬.",
		"j": "开光.出行.修造.上梁.入宅.安门.作灶.裁衣.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d1021": {
		"y": "祭祀.解除.裁衣.理发.安床.作灶.造畜椆栖.放水.筑堤.补垣.塞穴.整手足甲.扫舍.",
		"j": "嫁娶.开光.会亲友.掘井.安门.栽种.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0902": {
		"y": "祭祀.裁衣.安门.纳财.扫舍.出行.进人口.作灶.纳畜.造畜椆栖.",
		"j": "安床.动土.安葬.开生坟.合寿木.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0903": {
		"y": "祭祀.解除.拆卸.修造.动土.起基.上梁.安床.安门.开渠.开池.入殓.破土.启攒.",
		"j": "嫁娶.出行.进人口.作灶.入宅.移徙.栽种.赴任.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0905": {
		"y": "修饰垣墙.平治道涂.祭祀.沐浴.作灶.",
		"j": "嫁娶.词讼.治病.置产.作梁.祈福.安葬.栽种.伐木.安门.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0904": {
		"y": "纳采.订盟.开光.出行.解除.安香.出火.拆卸.入宅.移徙.修造.上梁.安床.栽种.纳畜.会亲友.安机械.经络.",
		"j": "伐木.谢土.行丧.祭祀.作灶.动土.破土.安葬.祈福.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0906": {
		"y": "嫁娶.祭祀.祈福.求嗣.出火.出行.开光.解除.拆卸.修造.进人口.安香.交易.立券.入宅.移徙.安床.动土.破土.谢土.安葬.入殓.除服.成服.",
		"j": "斋醮.开市.开仓.作灶.造船.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0908": {
		"y": "祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.",
		"j": "作灶.祭祀.入宅.嫁娶.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0907": {
		"y": "破土.安葬.移柩.入殓.祭祀.捕捉.除服.成服.余事勿取.",
		"j": "嫁娶.入宅.开市.交易.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0909": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "移徙.入宅.出行.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0912": {
		"y": "祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.",
		"j": "移徙.入宅.作灶.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0910": {
		"y": "祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.",
		"j": "造桥.冠笄.造屋.掘井.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0913": {
		"y": "祭祀.诸事不宜.",
		"j": "入殓.安葬.开市.交易.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0915": {
		"y": "祭祀.出行.成服.除服.沐浴.入殓.",
		"j": "动土.冠笄.移徙.入宅.开市.竖柱.上梁.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0911": {
		"y": "祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络.",
		"j": "定磉.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0916": {
		"y": "祭祀.沐浴.赴任.出行.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0914": {
		"y": "祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.",
		"j": "安床.开光.开市.交易.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0917": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0918": {
		"y": "沐浴.入殓.移柩.除服.成服.破土.平治道涂.",
		"j": "嫁娶.移徙.入宅.开市.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0919": {
		"y": "嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.",
		"j": "",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0922": {
		"y": "嫁娶.祈福.求嗣.出行.出火.拆卸.修造.动土.上梁.开光.进人口.开市.交易.立券.挂匾.安床.入宅.移徙.栽种.伐木.入殓.破土.除服.成服.",
		"j": "",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0920": {
		"y": "开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩.",
		"j": "嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0923": {
		"y": "开市.交易.立券.挂匾.祭祀.开光.进人口.入宅.安床.出火.拆卸.修造.动土.栽种.",
		"j": "嫁娶.立碑.出行.伐木.安葬.行丧.移徙.纳畜.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0924": {
		"y": "祭祀.理发.会亲友.进人口.嫁娶.针灸.入殓.移柩.",
		"j": "探病.开渠.安葬.伐木.作灶.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0926": {
		"y": "嫁娶.出行.伐木.拆卸.修造.动土.移徙.安葬.破土.修坟.立碑.",
		"j": "掘井.祈福.安床.开市.入宅.挂匾.开光.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0925": {
		"y": "祭祀.立碑.修坟.启攒.除服.成服.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0928": {
		"y": "嫁娶.祭祀.塑绘.开光.出行.解除.理发.整手足甲.动土.安床.开池.放水.扫舍.",
		"j": "伐木.行丧.作灶.作梁.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0927": {
		"y": "祭祀.出行.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0929": {
		"y": "开市.交易.立券.挂匾.开光.出行.入宅.移徙.安床.出火.上梁.",
		"j": "作灶.行丧.理发.乘船.嫁娶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0930": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0931": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.栽种.纳畜.入殓.安葬.除服.成服.",
		"j": "",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0801": {
		"y": "解除.祭祀.理发.入殓.安葬.破土.",
		"j": "嫁娶.开市.出火.作灶.置产.斋醮.入宅.移徙.安门.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0921": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0802": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0803": {
		"y": "开市.交易.立券.纳财.动土.开光.出行.嫁娶.纳采.订盟.出行.纳财.入学.开仓.出货财.纳畜.牧养.栽种.破土.启攒.安葬.立碑.",
		"j": "入宅.移徙.作灶.祭祀.谢土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0805": {
		"y": "祭祀.冠笄.作灶.交易.纳财.栽种.结网.纳畜.牧养.进人口.",
		"j": "开渠.造船.安床.安葬.破土.出行.修坟.掘井.开市.开生坟.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0804": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.入殓.破土.谢土.安葬.",
		"j": "掘井.伐木.纳畜.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0806": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.纳采.裁衣.冠笄.开光.安床.作梁.修造.动土.作灶.起基.上梁.造屋.纳畜.牧养.",
		"j": "移徙.栽种.出行.行丧.破土.安葬.词讼.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0808": {
		"y": "嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅.",
		"j": "动土.破土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0807": {
		"y": "经络.祭祀.沐浴.补垣.塞穴.除服.成服.移柩.入殓.启攒.立碑.",
		"j": "开光.治病.嫁娶.掘井.破土.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0809": {
		"y": "嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.",
		"j": "作灶.动土.破土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0812": {
		"y": "沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.祈福.余事勿取.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0810": {
		"y": "订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.",
		"j": "嫁娶.开市.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0813": {
		"y": "嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0815": {
		"y": "沐浴.治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0811": {
		"y": "订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0816": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.",
		"j": "动土.破土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0814": {
		"y": "捕捉.结网.入殓.破土.安葬.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0817": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.",
		"j": "开光.针灸.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0818": {
		"y": "订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.",
		"j": "动土.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0819": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.",
		"j": "入宅.作梁.安门.伐木.修造.上梁.入殓.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0822": {
		"y": "祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍.",
		"j": "嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0820": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.",
		"j": "造屋.开光.理发.造船.掘井.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0823": {
		"y": "塑绘.开光.进人口.纳畜.补垣.塞穴.栽种.牧养.",
		"j": "嫁娶.纳财.祈福.安葬.修造.开市.交易.立券.动土.上梁.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0824": {
		"y": "祭祀.作灶.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0826": {
		"y": "祭祀.求医.捕捉.栽种.塞穴.入殓.破土.安葬.移柩.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0825": {
		"y": "祭祀.求嗣.开光.出行.伐木.作梁.出火.解除.拆卸.进人口.修造.动土.起基.安床.栽种.纳畜.入殓.破土.安葬.除服.成服.",
		"j": "嫁娶.移徙.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0828": {
		"y": "祭祀.结网.入殓.移柩.启攒.安葬.移柩.除服.成服.合寿木.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0827": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0829": {
		"y": "嫁娶.出火.拆卸.祭祀.祈福.开光.伐木.动土.开市.交易.立券.入宅.移徙.安床.纳畜.入殓.安葬.",
		"j": "栽种.作灶.针灸.出行.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0830": {
		"y": "祭祀.开光.解除.移徙.裁衣.开市.立券.祈福.求嗣.进人口.交易.纳财.纳畜.",
		"j": "动土.破土.理发.出行.入宅.分居.安香.出火.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0831": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.安床.栽种.移柩.进人口.会亲友.除服.成服.",
		"j": "造屋.入殓.安葬.伐木.入宅.移徙.置产.纳畜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0821": {
		"y": "祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.",
		"j": "破土.置产.掘井.动土.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0701": {
		"y": "修造.动土.起基.安门.安床.栽种.筑堤.补垣.造畜椆栖.",
		"j": "嫁娶.掘井.入宅.移徙.出火.出行.行丧.安葬.开光.理发.进人口.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0703": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.开市.纳财.立券.移徙.出行.修造.动土.起基.定磉.竖柱.拆卸.扫舍.放水.安香.安床.造船.开池.掘井.造畜椆栖.栽种.",
		"j": "行丧.安葬.破土.作灶.伐木.斋醮.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0702": {
		"y": "祭祀.教牛马.断蚁.余事勿取.",
		"j": "斋醮.移徙.入宅.动土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0704": {
		"y": "嫁娶.开光.祭祀.祈福.出行.解除.移徙.入宅.开市.纳财.起基.修造.竖柱.上梁.造屋.作灶.出火.安香.补垣.塞穴.拆卸.放水.扫舍.造仓.造船.栽种.安葬.",
		"j": "纳采.订盟.安床.谢土.破土.动土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0705": {
		"y": "嫁娶.祭祀.理发.作灶.修饰垣墙.平治道涂.整手足甲.沐浴.冠笄.",
		"j": "破土.出行.栽种.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0706": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.入宅.移徙.安床.交易.立券.挂匾.纳财.入殓.安葬.启攒.除服.成服.",
		"j": "动土.掘井.破土.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0707": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0708": {
		"y": "纳采.祭祀.祈福.解除.动土.破土.安葬.",
		"j": "嫁娶.移徙.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0709": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0712": {
		"y": "祭祀.作灶.纳财.捕捉.",
		"j": "开市.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0710": {
		"y": "嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "祭祀.祈福.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0715": {
		"y": "嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.",
		"j": "动土.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0713": {
		"y": "嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅.",
		"j": "造庙.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0716": {
		"y": "嫁娶.祭祀.祈福.斋醮.治病.破土.安葬.",
		"j": "开市.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0711": {
		"y": "嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "赴任.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0714": {
		"y": "补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0717": {
		"y": "嫁娶.出行.开市.安床.入殓.启攒.安葬.",
		"j": "祈福.动土.破土.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0718": {
		"y": "嫁娶.祭祀.裁衣.结网.冠笄.沐浴.",
		"j": "开仓.出货财.置产.安葬.动土.破土.掘井.栽种.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0719": {
		"y": "入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.",
		"j": "嫁娶.破土.置产.栽种.安葬.修坟.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0720": {
		"y": "祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.",
		"j": "嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0722": {
		"y": "嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.",
		"j": "伐木.祭祀.纳畜.祭祀.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0723": {
		"y": "嫁娶.开光.出行.祈福.求嗣.解除.拆卸.动土.修造.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.纳畜.入殓.移柩.安葬.",
		"j": "",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0724": {
		"y": "祭祀.作灶.纳财.栽种.纳畜.进人口.",
		"j": "安葬.经络.修坟.破土.开市.安床.启攒.立碑.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0725": {
		"y": "祭祀.祈福.求嗣.开光.开市.牧养.理发.",
		"j": "嫁娶.出行.安葬.入殓.入宅.作灶.冠笄.上梁.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0726": {
		"y": "祭祀.入殓.破土.除服.成服.移柩.启攒.安葬.谢土.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0728": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.栽种.纳畜.入殓.启攒.除服.成服.",
		"j": "",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0727": {
		"y": "祭祀.出行.交易.割蜜.造畜椆栖.",
		"j": "嫁娶.作灶.安葬.动土.词讼.作梁.伐木.掘井.破土.移徙.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0729": {
		"y": "嫁娶.开光.解除.安床.牧养.理发.开市.入殓.启攒.移柩.安葬.扫舍.",
		"j": "作灶.动土.上梁.栽种.入宅.移徙.修造.祈福.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0730": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0731": {
		"y": "祭祀.祈福.求嗣.开光.伐木.出火.拆卸.入宅.安床.修造.动土.上梁.挂匾.纳畜.",
		"j": "嫁娶.栽种.行丧.理发.修坟.行丧.作灶.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0721": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0601": {
		"y": "破屋.坏垣.沐浴.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0603": {
		"y": "开市.交易.立券.祭祀.祈福.开光.动土.安床.出行.栽种.纳畜.牧养.竖柱.上梁.解除.破土.",
		"j": "嫁娶.掘井.入宅.移徙.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0602": {
		"y": "纳采.订盟.嫁娶.造车器.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.挂匾.入宅.移徙.安床.栽种.入殓.破土.安葬.除服.成服.",
		"j": "开市.立券.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0604": {
		"y": "解除.出行.纳采.冠笄.竖柱.上梁.移徙.作灶.进人口.入宅.纳畜.牧养.",
		"j": "祭祀.伐木.架马.安床.修造.动土.安葬.修坟.破土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0605": {
		"y": "祭祀.祈福.求嗣.开光.出行.开市.交易.立券.栽种.安床.纳畜.移徙.起基.动土.定磉.造仓.置产.破土.启攒.修坟.",
		"j": "入宅.移徙.修造.安门.伐木.入殓.安葬.造屋.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0606": {
		"y": "嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.",
		"j": "开市.安门.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0607": {
		"y": "裁衣.作灶.移徙.入宅.纳畜.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0608": {
		"y": "祭祀.入殓.移柩.启攒.安葬.",
		"j": "上梁.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0609": {
		"y": "订盟.纳采.出行.祈福.斋醮.安床.会亲友.",
		"j": "移徙.入宅.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0612": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0610": {
		"y": "嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.",
		"j": "动土.破土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0615": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.",
		"j": "开光.开市.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0613": {
		"y": "订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0616": {
		"y": "开光.求医.治病.动土.上梁.入殓.破土.安葬.",
		"j": "嫁娶.开光.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0611": {
		"y": "嫁娶.祭祀.沐浴.扫舍.修饰垣墙.",
		"j": "行丧.安葬.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0617": {
		"y": "祭祀.栽种.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0614": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0619": {
		"y": "求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖.",
		"j": "安葬.出行.祈福.栽种.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0618": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.",
		"j": "安葬.开市.交易.立券.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0620": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0622": {
		"y": "开光.求嗣.出行.解除.伐木.出火.拆卸.修造.上梁.起基.入宅.移徙.开市.交易.立券.栽种.牧养.入殓.安葬.除服.成服.",
		"j": "置产.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0623": {
		"y": "祭祀.理发.修饰垣墙.平治道涂.沐浴.整手足甲.扫舍.",
		"j": "出行.安门.修造.嫁娶.上梁.入宅.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0624": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出行.出火.拆卸.动土.修造.进人口.入宅.移徙.安床.挂匾.交易.立券.栽种.纳畜.入殓.破土.启攒.安葬.",
		"j": "",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0625": {
		"y": "祭祀.祈福.求嗣.开光.出行.伐木.出火.拆卸.修造.动土.起基.安床.入宅.移徙.",
		"j": "嫁娶.开市.交易.行丧.安葬.修坟.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0626": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0628": {
		"y": "开市.交易.立券.纳财.栽种.安床.拆卸.修造.动土.上梁.入殓.安葬.破土.除服.成服.",
		"j": "嫁娶.出火.伐木.祭祀.入宅.移徙.纳畜.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0627": {
		"y": "开市.交易.立券.纳财.开池.作厕.结网.祭祀.修造.动土.安床.放水.经络.破土.",
		"j": "嫁娶.造桥.词讼.移徙.安门.作灶.栽种.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0629": {
		"y": "祭祀.作灶.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0630": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0631": {
		"y": "修造.动土.起基.安门.安床.栽种.筑堤.补垣.造畜椆栖.",
		"j": "嫁娶.掘井.入宅.移徙.出火.出行.行丧.安葬.开光.理发.进人口.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0621": {
		"y": "嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.",
		"j": "安葬.行丧.伐木.作梁.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0501": {
		"y": "祭祀.出行.教牛马.扫舍.余事勿取.",
		"j": "开光.伐木.安葬.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0503": {
		"y": "开光.出行.交易.塞穴.嫁娶.理发.开市.安床.",
		"j": "祈福.出火.置产.动土.破土.安葬.修造.上梁.置产.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0502": {
		"y": "祭祀.祈福.求嗣.开光.纳采.订盟.解除.栽种.纳畜.牧养.扫舍.进人口.",
		"j": "修坟.造桥.作灶.出行.安葬.造屋.入宅.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0504": {
		"y": "祭祀.作灶.畋猎.结网.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.安床.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0505": {
		"y": "沐浴.祭祀.解除.安葬.破土.谢土.移柩.余事勿取.",
		"j": "斋醮.开光.嫁娶.入宅.上梁.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0507": {
		"y": "嫁娶.纳采.求医.治病.修造.动土.移徙.入宅.破土.安葬.",
		"j": "开市.开光.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0506": {
		"y": "嫁娶.纳采.出行.祭祀.祈福.开市.动土.移徙.入宅.破土.安葬.",
		"j": "安门.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0508": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0509": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "祈福.斋醮.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0512": {
		"y": "订盟.纳采.祭祀.动土.破土.交易.立券.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0510": {
		"y": "纳采.祭祀.祈福.开市.求医.治病.动土.纳畜.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0513": {
		"y": "嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.",
		"j": "赴任.捕捉.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0515": {
		"y": "嫁娶.订盟.纳采.出行.祭祀.祈福.斋醮.动土.上梁.破土.安葬.",
		"j": "移徙.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0516": {
		"y": "订盟.纳采.会亲友.安床.作灶.造畜椆栖.",
		"j": "开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0511": {
		"y": "嫁娶.纳采.出行.移徙.入宅.",
		"j": "动土.破土.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0517": {
		"y": "沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0519": {
		"y": "祭祀.开光.出行.解除.塑绘.裁衣.入殓.移柩.破土.启攒.安葬.除服.成服.",
		"j": "嫁娶.上梁.修造.拆卸.架马.入宅.伐木.动土.出火.开柱眼.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0514": {
		"y": "塞穴.结网.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0518": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.",
		"j": "",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0520": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0522": {
		"y": "开市.交易.立券.祭祀.祈福.开光.伐木.进人口.安床.拆卸.修造.动土.栽种.破土.移柩.安葬.",
		"j": "入宅.移徙.理发.出火.嫁娶.出行.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0523": {
		"y": "结网.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0524": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.开市.交易.立券.安床.出行.拆卸.",
		"j": "纳畜.入宅.移徙.安葬.探病.伐木.上梁.安门.入殓.动土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0525": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.动土.入宅.移徙.安床.作灶.塞穴.栽种.破土.安葬.",
		"j": "开光.掘井.开仓.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0526": {
		"y": "解除.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0528": {
		"y": "进人口.会亲友.",
		"j": "塞穴.上梁.动土.伐木.安葬.词讼.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0527": {
		"y": "开市.交易.立券.挂匾.开光.出行.拆卸.进人口.入宅.移柩.动土.安门.上梁.栽种.破土.修坟.安葬.",
		"j": "嫁娶.安床.探病.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0529": {
		"y": "沐浴.平治道涂.扫舍.入殓.破土.安葬.除服.成服.",
		"j": "嫁娶.移徙.伐木.作梁.安床.祭祀.祈福.造屋.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0531": {
		"y": "祭祀.祈福.求嗣.开光.解除.合帐.冠笄.伐木.架马.作梁.修造.进人口.嫁娶.裁衣.合帐.安床.动土.起基.上梁.竖柱.放水.会亲友.",
		"j": "",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0530": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.解除.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.安门.上梁.安葬.破土.谢土.",
		"j": "",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0521": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.动土.上梁.出火.进人口.入宅.移徙.安床.栽种.纳畜.牧养.竖柱.安门.修造.解除.会亲友.",
		"j": "",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0403": {
		"y": "理发.冠笄.嫁娶.进人口.",
		"j": "置产.伐木.纳畜.造畜椆栖.安葬.破土.作梁.作灶.开生坟.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0401": {
		"y": "嫁娶.祭祀.出行.冠笄.立券.交易.进人口.开市.移徙.修造.动土.安床.入殓.移柩.破土.",
		"j": "开光.作灶.斋醮.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0402": {
		"y": "开市.立券.交易.挂匾.祭祀.祈福.开光.入宅.移徙.安床.拆卸.动土.上梁.进人口.",
		"j": "嫁娶.行丧.架马.作梁.理发.牧养.安葬.纳畜.伐木.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0404": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出火.入宅.移徙.安床.拆卸.动土.破土.谢土.",
		"j": "合帐.开市.安葬.入殓.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0405": {
		"y": "订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.",
		"j": "入殓.安葬.入宅.安床.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0407": {
		"y": "祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.",
		"j": "掘井.动土.破土.安葬.开光.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0408": {
		"y": "纳采.开光.求医.治病.动土.上梁.移徙.入宅.",
		"j": "嫁娶.开市.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0406": {
		"y": "祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.",
		"j": "掘井.安门.嫁娶.纳采.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0409": {
		"y": "祭祀.会亲友.开市.安床.启攒.安葬.",
		"j": "嫁娶.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0412": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.移徙.求医.",
		"j": "开市.动土.破土.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0410": {
		"y": "祭祀.作灶.掘井.平治道涂.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0413": {
		"y": "祭祀.求医.治病.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0415": {
		"y": "",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0416": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0411": {
		"y": "祭祀.斋醮.开市.动土.入殓.破土.安葬.",
		"j": "嫁娶.移徙.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0417": {
		"y": "嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.",
		"j": "祈福.入殓.祭祀.作灶.安葬.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0419": {
		"y": "出行.修饰垣墙.造畜椆栖.教牛马.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0414": {
		"y": "沐浴.结网.取渔.",
		"j": "嫁娶.入宅.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0418": {
		"y": "嫁娶.出行.合帐.冠笄.安床.除服.成服.作灶.交易.立券.入殓.移柩.破土.安葬.",
		"j": "词讼.开光.开市.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0420": {
		"y": "祭祀.祈福.开光.求嗣.解除.伐木.出火.入宅.移徙.安床.拆卸.修造.动土.造畜椆栖.",
		"j": "嫁娶.纳财.安葬.出行.开市.立券.作灶.栽种.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0422": {
		"y": "祭祀.平治道涂.解除.修饰垣墙.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0423": {
		"y": "祭祀.祈福.开光.解除.动土.纳财.交易.纳畜.扫舍.",
		"j": "进人口.出行.嫁娶.置产.安床.赴任.安葬.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0424": {
		"y": "祭祀.祈福.求嗣.开光.解除.出火.拆卸.入宅.安床.修造.安门.纳畜.启攒.安葬.",
		"j": "动土.破土.纳财.掘井.挂匾.开市.伐木.交易.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0425": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0426": {
		"y": "塞穴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0428": {
		"y": "解除.破屋.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0427": {
		"y": "祭祀.祈福.求嗣.开光.解除.纳采.冠笄.出火.拆卸.进人口.安床.动土.上梁.造庙.掘井.开池.入殓.移柩.安葬.破土.",
		"j": "",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0429": {
		"y": "嫁娶.祈福.求嗣.开光.出行.解除.拆卸.出火.开市.立券.交易.入宅.移徙.安床.动土.破土.谢土.",
		"j": "祭祀.入殓.安葬.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0431": {
		"y": "祭祀.出行.教牛马.扫舍.余事勿取.",
		"j": "开光.伐木.安葬.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0421": {
		"y": "纳采.嫁娶.开光.出行.理发.会亲友.开市.安床.栽种.牧养.入殓.移柩.启攒.",
		"j": "谢土.祈福.上梁.作灶.斋醮.修造.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0430": {
		"y": "祭祀.裁衣.冠笄.安床.交易.立券.开池.补垣.塞穴.入殓.破土.启攒.安葬.谢土.除服.成服.",
		"j": "嫁娶.掘井.探病.开市.开光.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0303": {
		"y": "修饰垣墙.平治道涂.祭祀.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0301": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.入殓.破土.安葬.启攒.除服.成服.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0304": {
		"y": "造车器.纳采.订盟.祭祀.祈福.求嗣.移徙.出行.开市.出火.入宅.立券.交易.入宅.安门.安床.安葬.谢土.",
		"j": "开光.造屋.动土.作灶.栽种.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0302": {
		"y": "嫁娶.冠笄.纳采.出行.会亲友.上梁.安机械.安床.牧养.畋猎.祭祀.祈福.开光.修造.安门.造屋.起基.",
		"j": "入宅.作灶.治病.安葬.移徙.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0305": {
		"y": "动土.入殓.嫁娶.移柩.安葬.破土.",
		"j": "开市.作灶.安床.入宅.上梁.裁衣.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0307": {
		"y": "破屋.坏垣.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0306": {
		"y": "祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.",
		"j": "安床.嫁娶.作灶.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0308": {
		"y": "祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎.",
		"j": "作梁.造庙.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0309": {
		"y": "祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.",
		"j": "造庙.嫁娶.伐木.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0312": {
		"y": "订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.",
		"j": "作灶.开光.嫁娶.开市.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0310": {
		"y": "祭祀.沐浴.捕捉.栽种.",
		"j": "嫁娶.入宅.移徙.作灶.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0313": {
		"y": "祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱.",
		"j": "作灶.掘井.动土.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0316": {
		"y": "冠笄.入殓.除服.成服.移柩.平治道涂.修饰垣墙.",
		"j": "造屋.作灶.治病.探病.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0315": {
		"y": "开光.塑绘.裁衣.冠笄.伐木.拆卸.竖柱.上梁.开仓.会亲友.安机械.造仓.造屋.交易.解除.开市.立券.纳财.",
		"j": "出行.嫁娶.入宅.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0311": {
		"y": "祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.",
		"j": "栽种.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0317": {
		"y": "祭祀.嫁娶.祈福.纳采.裁衣.合帐.安床.入宅.安香.入殓.移柩.安葬.谢土.修造.安碓硙.求嗣.会亲友.挂匾.交易.立券.纳财.造仓.放水.",
		"j": "栽种.伐木.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0319": {
		"y": "破屋.坏垣.求医.治病.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0314": {
		"y": "祭祀.扫舍.塞穴.",
		"j": "栽种.作灶.安葬.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0318": {
		"y": "祭祀.祈福.斋醮.订盟.纳采.裁衣.合帐.拆卸.修造.动土.上梁.起基.移柩.安葬.谢土.沐浴.扫舍.开柱眼.伐木.出火.",
		"j": "安床.开市.立券.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0320": {
		"y": "祭祀.动土.上梁.订盟.纳采.嫁娶.安机械.拆卸.安床.入宅.安香.入殓.移柩.破土.安葬.立碑.谢土.赴任.出行.移徙.祈福.求嗣.解除.造仓.进人口.",
		"j": "开光.出货财.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0322": {
		"y": "裁衣.合帐.冠笄.嫁娶.纳婿.安床.入殓.纳财.",
		"j": "作灶.开市.安葬.作梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0323": {
		"y": "祭祀.订盟.纳采.修造.动土.祈福.塑绘.斋醮.沐浴.拆卸.起基.入宅.安香.造庙.移柩.谢土.除服.成服.入学.习艺.出行.竖柱.上梁.掘井.求嗣.解除.伐木.",
		"j": "作灶.安葬.开市.造屋.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0325": {
		"y": "祭祀.出行.嫁娶.冠笄.安床.入殓.移柩.安葬.",
		"j": "掘井.动土.作灶.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0326": {
		"y": "塞穴.诸事不宜.",
		"j": "安门.作灶.安葬.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0324": {
		"y": "订盟.纳采.裁衣.合帐.冠笄.安机械.拆卸.安床.入殓.除服.成服.移柩.破土.启攒.安葬.修坟.立碑.经络.交易.立券.纳财.筑堤.造仓.补垣.塞穴.纳畜.伐木.架马.",
		"j": "祭祀.开光.嫁娶.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0328": {
		"y": "祭祀.嫁娶.纳婿.安葬.",
		"j": "栽种.造屋.作灶.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0329": {
		"y": "祭祀.会亲友.订盟.裁衣.合帐.安机械.拆卸.上梁.安门.入殓.除服.成服.移柩.启攒.安葬.立碑.开光.塑绘.入学.出行.起基.定磉.放水.移徙.入宅.竖柱.立券.经络.",
		"j": "伐木.作梁.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0327": {
		"y": "开光.塑绘.求嗣.纳采.裁衣.合帐.冠笄.安机械.作梁.开柱眼.安门.安床.造仓.祭祀.会亲友.祈福.经络.纳财.开市.立券.交易.入学.求嗣.理发.架马.",
		"j": "出行.斋醮.安葬.嫁娶.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "满",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0321": {
		"y": "祭祀.开光.塑绘.纳采.裁衣.拆卸.安床.起基.动土.竖柱.上梁.移徙.入宅.安香.开市.立券.挂匾.沐浴.出行.求嗣.安门.",
		"j": "嫁娶.栽种.伐木.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0331": {
		"y": "祭祀.治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0330": {
		"y": "祭祀.开光.塑绘.祈福.斋醮.裁衣.合帐.冠笄.嫁娶.拆卸.动土.移徙.入宅.入殓.移柩.安葬.谢土.求嗣.入学.理发.伐木.架马.作梁.出火.修造.起基.定磉.放水.赴任.",
		"j": "入宅.安门.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0203": {
		"y": "祭祀.解除.造畜椆栖.教牛马.针灸.余事勿取.",
		"j": "嫁娶.动土.开池.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0201": {
		"y": "开市.交易.立券.纳财.纳畜.造畜椆栖.入宅.移徙.安床.开光.祈福.求嗣.动土.",
		"j": "嫁娶.栽种.安葬.理发.造庙.作灶.入殓.行丧.造桥.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0202": {
		"y": "安床.裁衣.交易.立券.入殓.移柩.安葬.除服.成服.",
		"j": "置产.嫁娶.出行.开光.栽种.动土.破土.入宅.治病.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0204": {
		"y": "裁衣.合帐.入殓.除服.成服.会亲友.纳财.",
		"j": "祭祀.祈福.移徙.嫁娶.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0205": {
		"y": "祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.",
		"j": "掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0207": {
		"y": "作灶.平治道涂.",
		"j": "祭祀.祈福.安葬.安门.余事勿取.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0206": {
		"y": "安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓.",
		"j": "斋醮.作灶.安床.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0208": {
		"y": "塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.",
		"j": "造屋.栽种.安葬.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0209": {
		"y": "祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.",
		"j": "栽种.动土.开市.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0212": {
		"y": "取渔.入殓.除服.成服.移柩.破土.安葬.立碑.",
		"j": "嫁娶.上梁.入宅.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0210": {
		"y": "求医.破屋.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0213": {
		"y": "祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.",
		"j": "安葬.作灶.伐木.作梁.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0216": {
		"y": "安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.",
		"j": "嫁娶.出行.动土.开渠.入宅.祭祀.掘井.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0215": {
		"y": "祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.",
		"j": "开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0211": {
		"y": "祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水.",
		"j": "作灶.安床.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0217": {
		"y": "嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.",
		"j": "掘井.词讼.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0219": {
		"y": "作灶.解除.平治道涂.",
		"j": "栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0214": {
		"y": "祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩.",
		"j": "入殓.安葬.作灶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0218": {
		"y": "嫁娶.开光.求嗣.会亲友.安床.牧养.塑绘.针灸.",
		"j": "入宅.移徙.出火.分居.安香.作灶.开市.交易.立券.安葬.动土.伐木.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0220": {
		"y": "解除.沐浴.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0222": {
		"y": "祭祀.解除.治病.破屋.坏垣.扫舍.",
		"j": "余事勿取.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0223": {
		"y": "祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.入宅.移徙.上梁.挂匾.开池.入殓.安葬.破土.启攒.",
		"j": "嫁娶.作灶.安床.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0225": {
		"y": "移徙.祭祀.开光.祈福.出行.解除.进人口.雇庸.安床.动土.起基.上梁.安门.解除.",
		"j": "嫁娶.安葬.破土.作梁.纳畜.牧养.行丧.作灶.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0226": {
		"y": "嫁娶.开光.祈福.求嗣.解除.动土.安床.栽种.开池.掘井.祭祀.破土.启攒.",
		"j": "入宅.作灶.伐木.安葬.出火.出行.纳畜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0224": {
		"y": "结网.入殓.除服.成服.移柩.安葬.破土.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0228": {
		"y": "裁衣.伐木.作梁.纳财.交易.立券.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0229": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.入殓.破土.安葬.启攒.除服.成服.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0227": {
		"y": "祭祀.合帐.裁衣.经络.伐木.作梁.安床.作灶.入殓.安葬.启攒.移柩.",
		"j": "词讼.出火.入宅.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0221": {
		"y": "嫁娶.祭祀.祈福.出行.解除.出火.拆卸.动土.入宅.移徙.安床.上梁.栽种.纳畜.破土.启攒.安葬.",
		"j": "开市.立券.理发.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0231": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.入殓.破土.安葬.启攒.除服.成服.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0230": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.入殓.破土.安葬.启攒.除服.成服.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0103": {
		"y": "破屋.坏垣.祭祀.沐浴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0102": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0101": {
		"y": "入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.",
		"j": "嫁娶.开市.作灶.置产.作梁.伐木.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0104": {
		"y": "安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.",
		"j": "安门.栽种.作灶.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0107": {
		"y": "祭祀.作灶.入殓.除服.余事勿取.",
		"j": "开市.安床.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0105": {
		"y": "解除.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0106": {
		"y": "入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.",
		"j": "开市.伐木.嫁娶.作梁.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0108": {
		"y": "塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.",
		"j": "嫁娶.入殓.安葬.出行.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0109": {
		"y": "祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.",
		"j": "开仓.嫁娶.移徙.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0112": {
		"y": "出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口.",
		"j": "作灶.掘井.谢土.入宅.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0110": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0116": {
		"y": "解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0113": {
		"y": "修饰垣墙.平治道涂.入殓.移柩.余事勿取.",
		"j": "嫁娶.移徙.入宅.开光.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0115": {
		"y": "祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门.",
		"j": "造屋.开市.作灶.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0111": {
		"y": "沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.",
		"j": "作灶.祭祀.上梁.出行.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0117": {
		"y": "塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.",
		"j": "入宅.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0119": {
		"y": "祭祀.祈福.斋醮.塑绘.开光.除服.成服.入殓.作灶.嫁娶.捕捉.畋猎.纳财.",
		"j": "开仓.造屋.安葬.安床.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0114": {
		"y": "会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜.",
		"j": "出行.治病.安葬.开市.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0118": {
		"y": "入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.",
		"j": "破土.伐木.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0120": {
		"y": "祭祀.出行.沐浴.裁衣.祈福.斋醮.订盟.纳采.嫁娶.安机械.开市.立券.安碓硙.纳畜.",
		"j": "栽种.嫁娶.入殓.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0122": {
		"y": "解除.扫舍.祭祀.教牛马.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "建",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0123": {
		"y": "开市.交易.立券.挂匾.开光.解除.伐木.作梁.出火.入宅.移徙.安床.拆卸.动土.上梁.栽种.纳畜.安葬.",
		"j": "嫁娶.祭祀.出行.置产.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0125": {
		"y": "祭祀.解除.修饰垣墙.平治道涂.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0124": {
		"y": "开市.交易.立券.纳财.开池.补垣.嫁娶.纳采.纳畜.取渔.安床.",
		"j": "修造.上梁.入宅.祈福.探病.掘井.动土.安门.安葬.作灶.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0126": {
		"y": "嫁娶.祭祀.祈福.求嗣.动土.会亲友.起基.造仓.纳畜.牧养.作厕.进人口.",
		"j": "掘井.安葬.栽种.出行.作灶.开市.入宅.安门.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0129": {
		"y": "嫁娶.开市.交易.立券.开光.出行.出火.拆卸.修造.入宅.移徙.动土.破土.移柩.安葬.启攒.除服.成服.",
		"j": "安床.伐木.祈福.纳畜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0127": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.入宅.移徙.安床.修造.动土.进人口.",
		"j": "掘井.安葬.栽种.出行.作灶.开市.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0128": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0121": {
		"y": "祭祀.祈福.斋醮.沐浴.安床.安机械.造车器.入殓.移柩.启攒.安葬.立碑.合帐.经络.交易.",
		"j": "作灶.掘井.嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0131": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0130": {
		"y": "祭祀.入殓.破土.除服.成服.启攒.安葬.修坟.立碑.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	}
};


},{}],198:[function(require,module,exports){
module.exports =  {
	"d0101": {
		"y": "祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.",
		"j": "伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0201": {
		"y": "解除.平治道涂.余事勿取.",
		"j": "移徙.入宅.掘井.造庙.栽种.针灸.治病.开池.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0102": {
		"y": "祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.",
		"j": "嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0103": {
		"y": "沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓硙.筑堤.作厕.断蚁.",
		"j": "移徙.入宅.嫁娶.祈福.开光.掘井.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0104": {
		"y": "交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.",
		"j": "斋醮.入宅.修造.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0105": {
		"y": "嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.",
		"j": "斋醮.伐木.作梁.安葬.行丧.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0106": {
		"y": "沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.",
		"j": "作灶.祭祀.上梁.出行.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0107": {
		"y": "出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口.",
		"j": "作灶.掘井.谢土.入宅.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0108": {
		"y": "修饰垣墙.平治道涂.入殓.移柩.余事勿取.",
		"j": "嫁娶.移徙.入宅.开光.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0109": {
		"y": "会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜.",
		"j": "出行.治病.安葬.开市.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0110": {
		"y": "祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门.",
		"j": "造屋.开市.作灶.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0111": {
		"y": "解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0112": {
		"y": "塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.",
		"j": "入宅.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0113": {
		"y": "入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.",
		"j": "破土.伐木.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0114": {
		"y": "祭祀.祈福.斋醮.塑绘.开光.除服.成服.入殓.作灶.嫁娶.捕捉.畋猎.纳财.",
		"j": "开仓.造屋.安葬.安床.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0115": {
		"y": "祭祀.出行.沐浴.裁衣.祈福.斋醮.订盟.纳采.嫁娶.安机械.开市.立券.安碓硙.纳畜.",
		"j": "栽种.嫁娶.入殓.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0116": {
		"y": "祭祀.祈福.斋醮.沐浴.安床.安机械.造车器.入殓.移柩.启攒.安葬.立碑.合帐.经络.交易.",
		"j": "作灶.掘井.嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0117": {
		"y": "解除.扫舍.祭祀.教牛马.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0118": {
		"y": "开市.交易.立券.挂匾.开光.解除.伐木.作梁.出火.入宅.移徙.安床.拆卸.动土.上梁.栽种.纳畜.安葬.",
		"j": "嫁娶.祭祀.出行.置产.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0119": {
		"y": "开市.交易.立券.纳财.开池.补垣.嫁娶.纳采.纳畜.取渔.安床.",
		"j": "修造.上梁.入宅.祈福.探病.掘井.动土.安门.安葬.作灶.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0120": {
		"y": "祭祀.解除.修饰垣墙.平治道涂.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0121": {
		"y": "嫁娶.祭祀.祈福.求嗣.动土.会亲友.起基.造仓.纳畜.牧养.作厕.进人口.",
		"j": "掘井.安葬.栽种.出行.作灶.开市.入宅.安门.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0122": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.入宅.移徙.安床.修造.动土.进人口.",
		"j": "掘井.安葬.栽种.出行.作灶.开市.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0123": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0124": {
		"y": "嫁娶.开市.交易.立券.开光.出行.出火.拆卸.修造.入宅.移徙.动土.破土.移柩.安葬.启攒.除服.成服.",
		"j": "安床.伐木.祈福.纳畜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0125": {
		"y": "祭祀.入殓.破土.除服.成服.启攒.安葬.修坟.立碑.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0126": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0127": {
		"y": "开市.交易.立券.纳财.纳畜.造畜椆栖.入宅.移徙.安床.开光.祈福.求嗣.动土.",
		"j": "嫁娶.栽种.安葬.理发.造庙.作灶.入殓.行丧.造桥.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0128": {
		"y": "安床.裁衣.交易.立券.入殓.移柩.安葬.除服.成服.",
		"j": "置产.嫁娶.出行.开光.栽种.动土.破土.入宅.治病.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0129": {
		"y": "祭祀.解除.造畜椆栖.教牛马.针灸.余事勿取.",
		"j": "嫁娶.动土.开池.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0130": {
		"y": "沐浴.塑绘.开光.纳采.订盟.开市.交易.立券.纳财.起基.动土.定磉.放水.安葬.破土.启攒.修坟.立碑.移柩.",
		"j": "入宅.安门.祭祀.谢土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0131": {
		"y": "嫁娶.出行.理发.安床.启攒.安葬.修坟.开市.交易.立券.纳财.开池.牧养.",
		"j": "掘井.祈福.谢土.动土.入宅.上梁.修造.作灶.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0215": {
		"y": "解除.沐浴.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0205": {
		"y": "求医.破屋.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0226": {
		"y": "修饰垣墙.平治道涂.祭祀.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0216": {
		"y": "嫁娶.祭祀.祈福.出行.解除.出火.拆卸.动土.入宅.移徙.安床.上梁.栽种.纳畜.破土.启攒.安葬.",
		"j": "开市.立券.理发.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0225": {
		"y": "嫁娶.冠笄.纳采.出行.会亲友.上梁.安机械.安床.牧养.畋猎.祭祀.祈福.开光.修造.安门.造屋.起基.",
		"j": "入宅.作灶.治病.安葬.移徙.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0224": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.入殓.破土.安葬.启攒.除服.成服.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0222": {
		"y": "祭祀.合帐.裁衣.经络.伐木.作梁.安床.作灶.入殓.安葬.启攒.移柩.",
		"j": "词讼.出火.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0212": {
		"y": "嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.",
		"j": "掘井.词讼.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0326": {
		"y": "嫁娶.祭祀.出行.冠笄.立券.交易.进人口.开市.移徙.修造.动土.安床.入殓.移柩.破土.",
		"j": "开光.作灶.斋醮.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0202": {
		"y": "嫁娶.祭祀.开光.伐木.出火.拆卸.入宅.移徙.修造.动土.上梁.安床.纳畜.",
		"j": "开市.行丧.栽种.出行.出货财.安葬.置产.词讼.治病.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0203": {
		"y": "嫁娶.纳采.订盟.入宅.移徙.安床.祭祀.祈福.开光.出行.解除.出火.拆卸.动土.纳畜.谢土.安葬.破土.",
		"j": "伐木.开市.交易.上梁.作灶.安门.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0204": {
		"y": "祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.",
		"j": "栽种.动土.开市.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0206": {
		"y": "祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水.",
		"j": "作灶.安床.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0207": {
		"y": "取渔.入殓.除服.成服.移柩.破土.安葬.立碑.",
		"j": "嫁娶.上梁.入宅.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0208": {
		"y": "祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.",
		"j": "安葬.作灶.伐木.作梁.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0209": {
		"y": "祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩.",
		"j": "入殓.安葬.作灶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0210": {
		"y": "祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.",
		"j": "开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0211": {
		"y": "安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.",
		"j": "嫁娶.出行.动土.开渠.入宅.祭祀.掘井.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0213": {
		"y": "嫁娶.开光.求嗣.会亲友.安床.牧养.塑绘.针灸.",
		"j": "入宅.移徙.出火.分居.安香.作灶.开市.交易.立券.安葬.动土.伐木.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0214": {
		"y": "作灶.解除.平治道涂.",
		"j": "栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0217": {
		"y": "祭祀.解除.治病.破屋.坏垣.扫舍.",
		"j": "余事勿取.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0218": {
		"y": "祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.入宅.移徙.上梁.挂匾.开池.入殓.安葬.破土.启攒.",
		"j": "嫁娶.作灶.安床.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0219": {
		"y": "结网.入殓.除服.成服.移柩.安葬.破土.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0220": {
		"y": "移徙.祭祀.开光.祈福.出行.解除.进人口.雇庸.安床.动土.起基.上梁.安门.解除.",
		"j": "嫁娶.安葬.破土.作梁.纳畜.牧养.行丧.作灶.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0221": {
		"y": "嫁娶.开光.祈福.求嗣.解除.动土.安床.栽种.开池.掘井.祭祀.破土.启攒.",
		"j": "入宅.作灶.伐木.安葬.出火.出行.纳畜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0223": {
		"y": "裁衣.伐木.作梁.纳财.交易.立券.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0227": {
		"y": "造车器.纳采.订盟.祭祀.祈福.求嗣.移徙.出行.开市.出火.入宅.立券.交易.入宅.安门.安床.安葬.谢土.",
		"j": "开光.造屋.动土.作灶.栽种.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0228": {
		"y": "动土.入殓.嫁娶.移柩.安葬.破土.",
		"j": "开市.作灶.安床.入宅.上梁.裁衣.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0229": {
		"y": "求医.治病.破屋.坏垣.余事勿取.",
		"j": "开市.嫁娶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0327": {
		"y": "开市.立券.交易.挂匾.祭祀.祈福.开光.入宅.移徙.安床.拆卸.动土.上梁.进人口.",
		"j": "嫁娶.行丧.架马.作梁.理发.牧养.安葬.纳畜.伐木.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0319": {
		"y": "祭祀.出行.嫁娶.冠笄.安床.入殓.移柩.安葬.",
		"j": "掘井.动土.作灶.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0329": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出火.入宅.移徙.安床.拆卸.动土.破土.谢土.",
		"j": "合帐.开市.安葬.入殓.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0427": {
		"y": "开光.出行.交易.塞穴.嫁娶.理发.开市.安床.",
		"j": "祈福.出火.置产.动土.破土.安葬.修造.上梁.置产.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0301": {
		"y": "祭祀.斋醮.沐浴.开生坟.除服.成服.移柩.入殓.破土.安葬.合寿木.",
		"j": "开市.嫁娶.安床.会亲友.入宅.作灶.上梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0302": {
		"y": "祭祀.塞穴.结网.破土.谢土.安葬.移柩.除服.成服.余事勿取.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0303": {
		"y": "祭祀.沐浴.理发.作灶.结网.栽种.",
		"j": "嫁娶.词讼.行丧.安葬.牧养.伐木.作梁.开市.纳畜.造畜椆栖.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0304": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出行.开市.交易.立券.动土.纳财.掘井.会亲友.",
		"j": "入宅.安葬.伐木.作梁.纳畜.造畜椆栖.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0305": {
		"y": "祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.",
		"j": "栽种.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0306": {
		"y": "订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.",
		"j": "作灶.开光.嫁娶.开市.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0307": {
		"y": "祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱.",
		"j": "作灶.掘井.动土.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0308": {
		"y": "祭祀.扫舍.塞穴.",
		"j": "栽种.作灶.安葬.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0309": {
		"y": "开光.塑绘.裁衣.冠笄.伐木.拆卸.竖柱.上梁.开仓.会亲友.安机械.造仓.造屋.交易.解除.开市.立券.纳财.",
		"j": "出行.嫁娶.入宅.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0310": {
		"y": "冠笄.入殓.除服.成服.移柩.平治道涂.修饰垣墙.",
		"j": "造屋.作灶.治病.探病.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0311": {
		"y": "祭祀.嫁娶.祈福.纳采.裁衣.合帐.安床.入宅.安香.入殓.移柩.安葬.谢土.修造.安碓硙.求嗣.会亲友.挂匾.交易.立券.纳财.造仓.放水.",
		"j": "栽种.伐木.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0312": {
		"y": "祭祀.祈福.斋醮.订盟.纳采.裁衣.合帐.拆卸.修造.动土.上梁.起基.移柩.安葬.谢土.沐浴.扫舍.开柱眼.伐木.出火.",
		"j": "安床.开市.立券.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0313": {
		"y": "破屋.坏垣.求医.治病.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0314": {
		"y": "祭祀.动土.上梁.订盟.纳采.嫁娶.安机械.拆卸.安床.入宅.安香.入殓.移柩.破土.安葬.立碑.谢土.赴任.出行.移徙.祈福.求嗣.解除.造仓.进人口.",
		"j": "开光.出货财.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0315": {
		"y": "祭祀.开光.塑绘.纳采.裁衣.拆卸.安床.起基.动土.竖柱.上梁.移徙.入宅.安香.开市.立券.挂匾.沐浴.出行.求嗣.安门.",
		"j": "嫁娶.栽种.伐木.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0316": {
		"y": "裁衣.合帐.冠笄.嫁娶.纳婿.安床.入殓.纳财.",
		"j": "作灶.开市.安葬.作梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0317": {
		"y": "祭祀.订盟.纳采.修造.动土.祈福.塑绘.斋醮.沐浴.拆卸.起基.入宅.安香.造庙.移柩.谢土.除服.成服.入学.习艺.出行.竖柱.上梁.掘井.求嗣.解除.伐木.",
		"j": "作灶.安葬.开市.造屋.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0318": {
		"y": "订盟.纳采.裁衣.合帐.冠笄.安机械.拆卸.安床.入殓.除服.成服.移柩.破土.启攒.安葬.修坟.立碑.经络.交易.立券.纳财.筑堤.造仓.补垣.塞穴.纳畜.伐木.架马.",
		"j": "祭祀.开光.嫁娶.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0320": {
		"y": "塞穴.诸事不宜.",
		"j": "安门.作灶.安葬.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0321": {
		"y": "开光.塑绘.求嗣.纳采.裁衣.合帐.冠笄.安机械.作梁.开柱眼.安门.安床.造仓.祭祀.会亲友.祈福.经络.纳财.开市.立券.交易.入学.求嗣.理发.架马.",
		"j": "出行.斋醮.安葬.嫁娶.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0322": {
		"y": "祭祀.嫁娶.纳婿.安葬.",
		"j": "栽种.造屋.作灶.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0323": {
		"y": "祭祀.会亲友.订盟.裁衣.合帐.安机械.拆卸.上梁.安门.入殓.除服.成服.移柩.启攒.安葬.立碑.开光.塑绘.入学.出行.起基.定磉.放水.移徙.入宅.竖柱.立券.经络.",
		"j": "伐木.作梁.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0324": {
		"y": "祭祀.开光.塑绘.祈福.斋醮.裁衣.合帐.冠笄.嫁娶.拆卸.动土.移徙.入宅.入殓.移柩.安葬.谢土.求嗣.入学.理发.伐木.架马.作梁.出火.修造.起基.定磉.放水.赴任.",
		"j": "入宅.安门.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0325": {
		"y": "祭祀.治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0328": {
		"y": "理发.冠笄.嫁娶.进人口.",
		"j": "置产.伐木.纳畜.造畜椆栖.安葬.破土.作梁.作灶.开生坟.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0330": {
		"y": "安床.伐木.拆卸.修造.动土.上梁.立券.交易.栽种.纳畜.牧养.入殓.安葬.",
		"j": "嫁娶.祭祀.开光.出行.出火.移徙.入宅.安门.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0331": {
		"y": "祭祀.祈福.求嗣.斋醮.嫁娶.冠笄.出行.开市.交易.会亲友.教牛马.除服.成服.启攒.安葬.移柩.",
		"j": "祈福.动土.移徙.入宅.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0527": {
		"y": "纳采.订盟.嫁娶.造车器.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.挂匾.入宅.移徙.安床.栽种.入殓.破土.安葬.除服.成服.",
		"j": "开市.立券.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0401": {
		"y": "塞穴.整手足甲.解除.捕捉.畋猎.结网.余事勿取.诸事不宜.",
		"j": "嫁娶.作灶.掘井.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0402": {
		"y": "纳财.开市.立券.交易.开光.安床.上梁.造屋.修造.起基.",
		"j": "动土.破土.安葬.行丧.赴任.出行.嫁娶.入宅.移徙.谢土.词讼.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0403": {
		"y": "祭祀.祈福.嫁娶.冠笄.修饰垣墙.置产.平治道涂.",
		"j": "开仓.出货财.造屋.作灶.开市.交易.立券.栽种.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0404": {
		"y": "祭祀.作灶.掘井.平治道涂.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0405": {
		"y": "祭祀.斋醮.开市.动土.入殓.破土.安葬.",
		"j": "嫁娶.移徙.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0406": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.移徙.求医.",
		"j": "开市.动土.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0407": {
		"y": "祭祀.求医.治病.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0408": {
		"y": "沐浴.结网.取渔.",
		"j": "嫁娶.入宅.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0409": {
		"y": "",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0410": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0411": {
		"y": "嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.",
		"j": "祈福.入殓.祭祀.作灶.安葬.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0412": {
		"y": "嫁娶.出行.合帐.冠笄.安床.除服.成服.作灶.交易.立券.入殓.移柩.破土.安葬.",
		"j": "词讼.开光.开市.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0413": {
		"y": "出行.修饰垣墙.造畜椆栖.教牛马.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0414": {
		"y": "祭祀.祈福.开光.求嗣.解除.伐木.出火.入宅.移徙.安床.拆卸.修造.动土.造畜椆栖.",
		"j": "嫁娶.纳财.安葬.出行.开市.立券.作灶.栽种.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0415": {
		"y": "纳采.嫁娶.开光.出行.理发.会亲友.开市.安床.栽种.牧养.入殓.移柩.启攒.",
		"j": "谢土.祈福.上梁.作灶.斋醮.修造.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0416": {
		"y": "祭祀.平治道涂.解除.修饰垣墙.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0417": {
		"y": "祭祀.祈福.开光.解除.动土.纳财.交易.纳畜.扫舍.",
		"j": "进人口.出行.嫁娶.置产.安床.赴任.安葬.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0418": {
		"y": "祭祀.祈福.求嗣.开光.解除.出火.拆卸.入宅.安床.修造.安门.纳畜.启攒.安葬.",
		"j": "动土.破土.纳财.掘井.挂匾.开市.伐木.交易.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0419": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0420": {
		"y": "塞穴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0421": {
		"y": "祭祀.祈福.求嗣.开光.解除.纳采.冠笄.出火.拆卸.进人口.安床.动土.上梁.造庙.掘井.开池.入殓.移柩.安葬.破土.",
		"j": "",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0422": {
		"y": "解除.破屋.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0423": {
		"y": "嫁娶.祈福.求嗣.开光.出行.解除.拆卸.出火.开市.立券.交易.入宅.移徙.安床.动土.破土.谢土.",
		"j": "祭祀.入殓.安葬.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0424": {
		"y": "祭祀.裁衣.冠笄.安床.交易.立券.开池.补垣.塞穴.入殓.破土.启攒.安葬.谢土.除服.成服.",
		"j": "嫁娶.掘井.探病.开市.开光.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0425": {
		"y": "祭祀.出行.教牛马.扫舍.余事勿取.",
		"j": "开光.伐木.安葬.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0426": {
		"y": "祭祀.祈福.求嗣.开光.纳采.订盟.解除.栽种.纳畜.牧养.扫舍.进人口.",
		"j": "修坟.造桥.作灶.出行.安葬.造屋.入宅.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0428": {
		"y": "祭祀.作灶.畋猎.结网.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.安床.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0429": {
		"y": "沐浴.祭祀.解除.安葬.破土.谢土.移柩.余事勿取.",
		"j": "斋醮.开光.嫁娶.入宅.上梁.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0430": {
		"y": "祭祀.解除.入殓.移柩.启攒.安葬.整手足甲.捕捉.畋猎.取渔.除服.成服.扫舍.谢土.斋醮.",
		"j": "动土.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0522": {
		"y": "进人口.会亲友.",
		"j": "塞穴.上梁.动土.伐木.安葬.词讼.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0517": {
		"y": "结网.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0529": {
		"y": "解除.出行.纳采.冠笄.竖柱.上梁.移徙.作灶.进人口.入宅.纳畜.牧养.",
		"j": "祭祀.伐木.架马.安床.修造.动土.安葬.修坟.破土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0519": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.动土.入宅.移徙.安床.作灶.塞穴.栽种.破土.安葬.",
		"j": "开光.掘井.开仓.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0629": {
		"y": "嫁娶.祭祀.理发.作灶.修饰垣墙.平治道涂.整手足甲.沐浴.冠笄.",
		"j": "破土.出行.栽种.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0501": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.求医.治病.余事勿取.",
		"j": "嫁娶.开市.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0502": {
		"y": "沐浴.塞穴.畋猎.结网.取渔.扫舍.余事勿取.",
		"j": "祈福.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0503": {
		"y": "开市.交易.立券.挂匾.祭祀.开光.祈福.求嗣.安床.解除.修造.安葬.",
		"j": "纳采.问名.订盟.嫁娶.入宅.开仓.出火.动土.破土.纳畜.伐木.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0504": {
		"y": "祭祀.修门.取渔.纳财.纳畜.余事勿取.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0505": {
		"y": "嫁娶.纳采.出行.移徙.入宅.",
		"j": "动土.破土.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0506": {
		"y": "订盟.纳采.祭祀.动土.破土.交易.立券.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0507": {
		"y": "嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.",
		"j": "赴任.捕捉.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0508": {
		"y": "塞穴.结网.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0509": {
		"y": "嫁娶.订盟.纳采.出行.祭祀.祈福.斋醮.动土.上梁.破土.安葬.",
		"j": "移徙.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0510": {
		"y": "订盟.纳采.会亲友.安床.作灶.造畜椆栖.",
		"j": "开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0511": {
		"y": "沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0512": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.",
		"j": "",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0513": {
		"y": "祭祀.开光.出行.解除.塑绘.裁衣.入殓.移柩.破土.启攒.安葬.除服.成服.",
		"j": "嫁娶.上梁.修造.拆卸.架马.入宅.伐木.动土.出火.开柱眼.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0514": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0515": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.动土.上梁.出火.进人口.入宅.移徙.安床.栽种.纳畜.牧养.竖柱.安门.修造.解除.会亲友.",
		"j": "",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0516": {
		"y": "开市.交易.立券.祭祀.祈福.开光.伐木.进人口.安床.拆卸.修造.动土.栽种.破土.移柩.安葬.",
		"j": "入宅.移徙.理发.出火.嫁娶.出行.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0518": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.开市.交易.立券.安床.出行.拆卸.",
		"j": "纳畜.入宅.移徙.安葬.探病.伐木.上梁.安门.入殓.动土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0520": {
		"y": "解除.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0521": {
		"y": "开市.交易.立券.挂匾.开光.出行.拆卸.进人口.入宅.移柩.动土.安门.上梁.栽种.破土.修坟.安葬.",
		"j": "嫁娶.安床.探病.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0523": {
		"y": "沐浴.平治道涂.扫舍.入殓.破土.安葬.除服.成服.",
		"j": "嫁娶.移徙.伐木.作梁.安床.祭祀.祈福.造屋.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0524": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.解除.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.安门.上梁.安葬.破土.谢土.",
		"j": "",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0525": {
		"y": "祭祀.祈福.求嗣.开光.解除.合帐.冠笄.伐木.架马.作梁.修造.进人口.嫁娶.裁衣.合帐.安床.动土.起基.上梁.竖柱.放水.会亲友.",
		"j": "",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0526": {
		"y": "破屋.坏垣.沐浴.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0528": {
		"y": "开市.交易.立券.祭祀.祈福.开光.动土.安床.出行.栽种.纳畜.牧养.竖柱.上梁.解除.破土.",
		"j": "嫁娶.掘井.入宅.移徙.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0530": {
		"y": "祭祀.祈福.求嗣.开光.出行.开市.交易.立券.栽种.安床.纳畜.移徙.起基.动土.定磉.造仓.置产.破土.启攒.修坟.",
		"j": "入宅.移徙.修造.安门.伐木.入殓.安葬.造屋.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0531": {
		"y": "嫁娶.交易.立券.作厕.补垣.塞穴.畋猎.取渔.开生坟.",
		"j": "安床.开渠.上梁.修造.开市.开光.入宅.移徙.安床.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0624": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0622": {
		"y": "开市.交易.立券.纳财.栽种.安床.拆卸.修造.动土.上梁.入殓.安葬.破土.除服.成服.",
		"j": "嫁娶.出火.伐木.祭祀.入宅.移徙.纳畜.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0614": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0612": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.",
		"j": "安葬.开市.交易.立券.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0619": {
		"y": "祭祀.祈福.求嗣.开光.出行.伐木.出火.拆卸.修造.动土.起基.安床.入宅.移徙.",
		"j": "嫁娶.开市.交易.行丧.安葬.修坟.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0627": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.开市.纳财.立券.移徙.出行.修造.动土.起基.定磉.竖柱.拆卸.扫舍.放水.安香.安床.造船.开池.掘井.造畜椆栖.栽种.",
		"j": "行丧.安葬.破土.作灶.伐木.斋醮.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0604": {
		"y": "纳采.嫁娶.裁衣.理发.出行.修造.动土.进人口.开市.交易.立券.挂匾.移徙.上梁.栽种.纳畜.",
		"j": "伐木.安葬.安床.祭祀.祈福.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0727": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0601": {
		"y": "塞穴.断蚁.结网.畋猎.余事勿取.",
		"j": "嫁娶.安葬.入宅.出行.动土.词讼.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0602": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.解除.出行.出火.入宅.移徙.栽种.纳畜.牧养.动土.破土.入殓.安葬.",
		"j": "作灶.安床.开仓.造屋.动土.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0603": {
		"y": "开光.纳采.裁衣.冠笄.安床.作灶.进人口.造仓.塞穴.",
		"j": "嫁娶.栽种.修造.动土.出行.伐木.作梁.安葬.谢土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0605": {
		"y": "嫁娶.祭祀.沐浴.扫舍.修饰垣墙.",
		"j": "行丧.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0606": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0607": {
		"y": "订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0608": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0609": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.",
		"j": "开光.开市.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0610": {
		"y": "开光.求医.治病.动土.上梁.入殓.破土.安葬.",
		"j": "嫁娶.开光.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0611": {
		"y": "祭祀.栽种.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0613": {
		"y": "求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖.",
		"j": "安葬.出行.祈福.栽种.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0615": {
		"y": "嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.",
		"j": "安葬.行丧.伐木.作梁.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0616": {
		"y": "开光.求嗣.出行.解除.伐木.出火.拆卸.修造.上梁.起基.入宅.移徙.开市.交易.立券.栽种.牧养.入殓.安葬.除服.成服.",
		"j": "置产.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0617": {
		"y": "祭祀.理发.修饰垣墙.平治道涂.沐浴.整手足甲.扫舍.",
		"j": "出行.安门.修造.嫁娶.上梁.入宅.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0618": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出行.出火.拆卸.动土.修造.进人口.入宅.移徙.安床.挂匾.交易.立券.栽种.纳畜.入殓.破土.启攒.安葬.",
		"j": "",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0620": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0621": {
		"y": "开市.交易.立券.纳财.开池.作厕.结网.祭祀.修造.动土.安床.放水.经络.破土.",
		"j": "嫁娶.造桥.词讼.移徙.安门.作灶.栽种.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0623": {
		"y": "祭祀.作灶.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0625": {
		"y": "修造.动土.起基.安门.安床.栽种.筑堤.补垣.造畜椆栖.",
		"j": "嫁娶.掘井.入宅.移徙.出火.出行.行丧.安葬.开光.理发.进人口.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0626": {
		"y": "祭祀.教牛马.断蚁.余事勿取.",
		"j": "斋醮.移徙.入宅.动土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0628": {
		"y": "嫁娶.开光.祭祀.祈福.出行.解除.移徙.入宅.开市.纳财.起基.修造.竖柱.上梁.造屋.作灶.出火.安香.补垣.塞穴.拆卸.放水.扫舍.造仓.造船.栽种.安葬.",
		"j": "纳采.订盟.安床.谢土.破土.动土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0630": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.入宅.移徙.安床.交易.立券.挂匾.纳财.入殓.安葬.启攒.除服.成服.",
		"j": "动土.掘井.破土.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0728": {
		"y": "开市.交易.立券.纳财.动土.开光.出行.嫁娶.纳采.订盟.出行.纳财.入学.开仓.出货财.纳畜.牧养.栽种.破土.启攒.安葬.立碑.",
		"j": "入宅.移徙.作灶.祭祀.谢土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0725": {
		"y": "祭祀.祈福.求嗣.开光.伐木.出火.拆卸.入宅.安床.修造.动土.上梁.挂匾.纳畜.",
		"j": "嫁娶.栽种.行丧.理发.修坟.行丧.作灶.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0718": {
		"y": "祭祀.作灶.纳财.栽种.纳畜.进人口.",
		"j": "安葬.经络.修坟.破土.开市.安床.启攒.立碑.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0708": {
		"y": "补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0717": {
		"y": "嫁娶.开光.出行.祈福.求嗣.解除.拆卸.动土.修造.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.纳畜.入殓.移柩.安葬.",
		"j": "",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0707": {
		"y": "嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅.",
		"j": "造庙.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0722": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.栽种.纳畜.入殓.启攒.除服.成服.",
		"j": "",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0726": {
		"y": "解除.祭祀.理发.入殓.安葬.破土.",
		"j": "嫁娶.开市.出火.作灶.置产.斋醮.入宅.移徙.安门.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0716": {
		"y": "嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.",
		"j": "伐木.祭祀.纳畜.祭祀.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0712": {
		"y": "嫁娶.祭祀.裁衣.结网.冠笄.沐浴.",
		"j": "开仓.出货财.置产.安葬.动土.破土.掘井.栽种.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0702": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "移徙.入宅.开仓.出货财.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0706": {
		"y": "嫁娶.纳采.订盟.冠笄.造车器.祭祀.开光.祈福.求嗣.出行.解除.伐木.出火.入宅.拆卸.修造.动土.上梁.安床.栽种.破土.",
		"j": "行丧.置产.入宅.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0729": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.入殓.破土.谢土.安葬.",
		"j": "掘井.伐木.纳畜.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0719": {
		"y": "祭祀.祈福.求嗣.开光.开市.牧养.理发.",
		"j": "嫁娶.出行.安葬.入殓.入宅.作灶.冠笄.上梁.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0715": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0826": {
		"y": "祭祀.动土.筑堤.开池.会亲友.塞穴.入殓.移柩.破土.安葬.",
		"j": "开光.出行.修造.上梁.入宅.安门.作灶.裁衣.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0701": {
		"y": "畋猎.捕捉.结网.取渔.祭祀.沐浴.余事勿取.",
		"j": "嫁娶.开市.安葬.启攒.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0703": {
		"y": "祭祀.斋醮.塑绘.开光.出行.修造.动土.造畜椆栖.安床.放水.掘井.开池.作厕.结网.破土.",
		"j": "出火.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0704": {
		"y": "开市.交易.立券.挂匾.开光.解除.拆卸.动土.安床.修造.上梁.置产.栽种.破土.安葬.",
		"j": "作灶.出火.祭祀.嫁娶.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0705": {
		"y": "祭祀.结网.余事勿取.",
		"j": "入宅.出行.掘井.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0709": {
		"y": "嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.",
		"j": "动土.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0710": {
		"y": "嫁娶.祭祀.祈福.斋醮.治病.破土.安葬.",
		"j": "开市.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0711": {
		"y": "嫁娶.出行.开市.安床.入殓.启攒.安葬.",
		"j": "祈福.动土.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0713": {
		"y": "入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.",
		"j": "嫁娶.破土.置产.栽种.安葬.修坟.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0714": {
		"y": "祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.",
		"j": "嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0720": {
		"y": "祭祀.入殓.破土.除服.成服.移柩.启攒.安葬.谢土.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0721": {
		"y": "祭祀.出行.交易.割蜜.造畜椆栖.",
		"j": "嫁娶.作灶.安葬.动土.词讼.作梁.伐木.掘井.破土.移徙.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0723": {
		"y": "嫁娶.开光.解除.安床.牧养.理发.开市.入殓.启攒.移柩.安葬.扫舍.",
		"j": "作灶.动土.上梁.栽种.入宅.移徙.修造.祈福.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0724": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0730": {
		"y": "祭祀.冠笄.作灶.交易.纳财.栽种.结网.纳畜.牧养.进人口.",
		"j": "开渠.造船.安床.安葬.破土.出行.修坟.掘井.开市.开生坟.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0731": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.纳采.裁衣.冠笄.开光.安床.作梁.修造.动土.作灶.起基.上梁.造屋.纳畜.牧养.",
		"j": "移徙.栽种.出行.行丧.破土.安葬.词讼.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0816": {
		"y": "祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍.",
		"j": "嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0822": {
		"y": "祭祀.结网.入殓.移柩.启攒.安葬.移柩.除服.成服.合寿木.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0812": {
		"y": "订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.",
		"j": "动土.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0802": {
		"y": "嫁娶.祭祀.出行.裁衣.冠笄.交易.雕刻.纳财.造畜椆栖.造车器.雕刻.教牛马.",
		"j": "移徙.入宅.栽种.动土.破土.作灶.安葬.行丧.伐木.上梁.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0829": {
		"y": "纳采.订盟.开光.出行.解除.安香.出火.拆卸.入宅.移徙.修造.上梁.安床.栽种.纳畜.会亲友.安机械.经络.",
		"j": "伐木.谢土.行丧.祭祀.作灶.动土.破土.安葬.祈福.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0929": {
		"y": "开市.交易.立券.纳财.挂匾.栽种.祭祀.祈福.开光.拆卸.动土.安床.",
		"j": "嫁娶.破土.进人口.出行.入宅.移徙.出火.纳畜.词讼.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0801": {
		"y": "经络.祭祀.沐浴.补垣.塞穴.除服.成服.移柩.入殓.启攒.立碑.",
		"j": "开光.治病.嫁娶.掘井.破土.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0803": {
		"y": "修造.动土.安机械.祭祀.沐浴.解除.拆卸.治病.作灶.造屋.起基.开池.扫舍.造畜椆栖.开生坟.合寿木.安葬.破土.启攒.移柩.入殓.立碑.",
		"j": "开市.入宅.出行.安床.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0804": {
		"y": "嫁娶.纳采.订盟.造车器.开光.出行.拆卸.起基.安床.除服.成服.开市.交易.立券.栽种.牧养.入殓.移柩.启攒.",
		"j": "上梁.入宅.修造.动土.破土.祭祀.祈福.斋醮.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0805": {
		"y": "祭祀.嫁娶.畋猎.结网.",
		"j": "动土.破土.治病.开渠.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0806": {
		"y": "纳采.订盟.会亲友.入学.祭祀.祈福.求嗣.开光.出行.解除.理发.动土.起基.开市.交易.立券.纳财.造仓.栽种.纳畜.牧养.",
		"j": "嫁娶.作灶.出火.置产.嫁娶.入宅.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0807": {
		"y": "嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0808": {
		"y": "捕捉.结网.入殓.破土.安葬.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0809": {
		"y": "沐浴.治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0810": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.",
		"j": "动土.破土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0811": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.",
		"j": "开光.针灸.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0813": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.",
		"j": "入宅.作梁.安门.伐木.修造.上梁.入殓.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0814": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.",
		"j": "造屋.开光.理发.造船.掘井.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0815": {
		"y": "祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.",
		"j": "破土.置产.掘井.动土.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0817": {
		"y": "塑绘.开光.进人口.纳畜.补垣.塞穴.栽种.牧养.",
		"j": "嫁娶.纳财.祈福.安葬.修造.开市.交易.立券.动土.上梁.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0818": {
		"y": "祭祀.作灶.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0819": {
		"y": "祭祀.求嗣.开光.出行.伐木.作梁.出火.解除.拆卸.进人口.修造.动土.起基.安床.栽种.纳畜.入殓.破土.安葬.除服.成服.",
		"j": "嫁娶.移徙.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0820": {
		"y": "祭祀.求医.捕捉.栽种.塞穴.入殓.破土.安葬.移柩.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "执",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0821": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0823": {
		"y": "嫁娶.出火.拆卸.祭祀.祈福.开光.伐木.动土.开市.交易.立券.入宅.移徙.安床.纳畜.入殓.安葬.",
		"j": "栽种.作灶.针灸.出行.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0824": {
		"y": "祭祀.开光.解除.移徙.裁衣.开市.立券.祈福.求嗣.进人口.交易.纳财.纳畜.",
		"j": "动土.破土.理发.出行.入宅.分居.安香.出火.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0825": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.安床.栽种.移柩.进人口.会亲友.除服.成服.",
		"j": "造屋.入殓.安葬.伐木.入宅.移徙.置产.纳畜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0827": {
		"y": "祭祀.裁衣.安门.纳财.扫舍.出行.进人口.作灶.纳畜.造畜椆栖.",
		"j": "安床.动土.安葬.开生坟.合寿木.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0828": {
		"y": "祭祀.解除.拆卸.修造.动土.起基.上梁.安床.安门.开渠.开池.入殓.破土.启攒.",
		"j": "嫁娶.出行.进人口.作灶.入宅.移徙.栽种.赴任.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0830": {
		"y": "修饰垣墙.平治道涂.祭祀.沐浴.作灶.",
		"j": "嫁娶.词讼.治病.置产.作梁.祈福.安葬.栽种.伐木.安门.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0831": {
		"y": "嫁娶.祭祀.祈福.求嗣.出火.出行.开光.解除.拆卸.修造.进人口.安香.交易.立券.入宅.移徙.安床.动土.破土.谢土.安葬.入殓.除服.成服.",
		"j": "斋醮.开市.开仓.作灶.造船.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0925": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.栽种.纳畜.入殓.安葬.除服.成服.",
		"j": "",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1029": {
		"y": "祭祀.开光.出行.解除.理发.伐木.出火.拆卸.上梁.合脊.安床.造畜椆栖.",
		"j": "嫁娶.安葬.行丧.词讼.造桥.作灶.破土.动土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0901": {
		"y": "破土.安葬.移柩.入殓.祭祀.捕捉.除服.成服.余事勿取.",
		"j": "嫁娶.入宅.开市.交易.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0902": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "祈福.纳采.订盟.嫁娶.入宅.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0903": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.安香.出火.解除.伐木.入宅.移徙.安床.开市.交易.立券.栽种.出火.出行.安葬.",
		"j": "掘井.理发.作灶.动土.破土.开池.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0904": {
		"y": "安机械.纳采.订盟.祭祀.祈福.求嗣.开光.普渡.出行.出火.拆卸.修造.动土.进人口.开市.交易.立券.移徙.安床.栽种.上梁.纳畜.破土.移柩.安葬.",
		"j": "入宅.嫁娶.掘井.牧养.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0905": {
		"y": "嫁娶.祭祀.祈福.求嗣.裁衣.冠笄.经络.修造.进人口.安床.动土.竖柱.上梁.移徙.交易.立券.栽种.会亲友.",
		"j": "行丧.安葬.出行.作梁.纳畜.伐木.造桥.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0906": {
		"y": "嫁娶.纳采.订盟.开光.祭祀.出行.理发.动土.安床.放水.开渠.栽种.进人口.",
		"j": "入宅.上梁.入殓.造屋.探病.作灶.安门.安葬.纳畜.伐木.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0907": {
		"y": "祭祀.诸事不宜.",
		"j": "入殓.安葬.开市.交易.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0908": {
		"y": "祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.",
		"j": "安床.开光.开市.交易.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0909": {
		"y": "祭祀.出行.成服.除服.沐浴.入殓.",
		"j": "动土.冠笄.移徙.入宅.开市.竖柱.上梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0910": {
		"y": "祭祀.沐浴.赴任.出行.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0911": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0912": {
		"y": "沐浴.入殓.移柩.除服.成服.破土.平治道涂.",
		"j": "嫁娶.移徙.入宅.开市.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0913": {
		"y": "嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.",
		"j": "",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0914": {
		"y": "开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩.",
		"j": "嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0915": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0916": {
		"y": "嫁娶.祈福.求嗣.出行.出火.拆卸.修造.动土.上梁.开光.进人口.开市.交易.立券.挂匾.安床.入宅.移徙.栽种.伐木.入殓.破土.除服.成服.",
		"j": "",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0917": {
		"y": "开市.交易.立券.挂匾.祭祀.开光.进人口.入宅.安床.出火.拆卸.修造.动土.栽种.",
		"j": "嫁娶.立碑.出行.伐木.安葬.行丧.移徙.纳畜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0918": {
		"y": "祭祀.理发.会亲友.进人口.嫁娶.针灸.入殓.移柩.",
		"j": "探病.开渠.安葬.伐木.作灶.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0919": {
		"y": "祭祀.立碑.修坟.启攒.除服.成服.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0920": {
		"y": "嫁娶.出行.伐木.拆卸.修造.动土.移徙.安葬.破土.修坟.立碑.",
		"j": "掘井.祈福.安床.开市.入宅.挂匾.开光.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0921": {
		"y": "祭祀.出行.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0922": {
		"y": "嫁娶.祭祀.塑绘.开光.出行.解除.理发.整手足甲.动土.安床.开池.放水.扫舍.",
		"j": "伐木.行丧.作灶.作梁.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0923": {
		"y": "开市.交易.立券.挂匾.开光.出行.入宅.移徙.安床.出火.上梁.",
		"j": "作灶.行丧.理发.乘船.嫁娶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0924": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0926": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0927": {
		"y": "祭祀.治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0928": {
		"y": "嫁娶.纳采.订盟.祭祀.开光.出行.理发.作梁.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.移徙.拆卸.挂匾.栽种.纳畜.破土.安葬.入殓.除服.成服.",
		"j": "开市.掘井.开渠.造桥.造船.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0930": {
		"y": "嫁娶.祭祀.理发.进人口.作灶.移柩.冠笄.会亲友.",
		"j": "开仓.出货财.伐木.纳畜.开市.上梁.造屋.破土.启攒.栽种.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1025": {
		"y": "嫁娶.祭祀.作灶.纳财.",
		"j": "安葬.开市.修坟.立碑.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d1015": {
		"y": "祭祀.解除.裁衣.理发.安床.作灶.造畜椆栖.放水.筑堤.补垣.塞穴.整手足甲.扫舍.",
		"j": "嫁娶.开光.会亲友.掘井.安门.栽种.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d1030": {
		"y": "纳采.订盟.会亲友.沐浴.理发.裁衣.冠笄.安床.除服.成服.启攒.移柩.安葬.会亲友.开生坟.",
		"j": "开市.入宅.出行.嫁娶.修坟.祈福.动土.入宅.安门.谢土.上梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d1005": {
		"y": "纳采.订盟.开市.交易.立券.挂匾.纳财.栽种.进人口.入宅.移徙.安床.开光.出火.拆卸.安门.修造.",
		"j": "斋醮.嫁娶.行丧.动土.作灶.安葬.破土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d1125": {
		"y": "嫁娶.开光.出行.出火.拆卸.修造.动土.入宅.移徙.安床.上梁.开市.交易.立券.栽种.",
		"j": "祈福.祭祀.伐木.掘井.作灶.谢土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1001": {
		"y": "祭祀.修坟.除服.成服.启攒.移柩.余事勿取.",
		"j": "开市.入宅.嫁娶.动土.破土.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d1002": {
		"y": "嫁娶.冠笄.安机械.解除.纳畜.牧养.沐浴.伐木.架马.作梁.安门.扫舍.合寿木.安葬.启攒.立碑.修坟.",
		"j": "祈福.开光.开市.入宅.动土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d1003": {
		"y": "祭祀.出行.沐浴.扫舍.安葬.余事勿取.",
		"j": "动土.破土.置产.掘井.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d1004": {
		"y": "嫁娶.纳采.祭祀.解除.出行.修造.动土.开市.上梁.安床.整手足甲.扫舍.求医.治病.起基.定磉.造屋.合脊.",
		"j": "造庙.行丧.安葬.伐木.作灶.造船.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d1006": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.入宅.安床.出行.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d1007": {
		"y": "开光.祈福.求嗣.斋醮.修造.动土.纳财.造仓.作厕.栽种.牧养.会亲友.",
		"j": "作灶.出火.进人口.开渠.入宅.移徙.祭祀.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d1008": {
		"y": "入殓.除服.成服.移柩.破土.启攒.安葬.",
		"j": "移徙.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d1009": {
		"y": "嫁娶.订盟.纳采.出行.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "开市.赴任.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d1010": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d1011": {
		"y": "订盟.纳采.会亲友.安机械.纳财.牧养.",
		"j": "祈福.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d1012": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "斋醮.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d1013": {
		"y": "祭祀.塞穴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d1014": {
		"y": "祭祀.祈福.求嗣.开光.开市.出行.解除.动土.起基.置产.栽种.",
		"j": "嫁娶.作灶.修坟.安门.入宅.立碑.安葬.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d1016": {
		"y": "祭祀.出行.裁衣.冠笄.会亲友.造畜椆栖.嫁娶.竖柱.上梁.移徙.纳财.纳畜.",
		"j": "动土.伐木.作梁.行丧.安葬.开生坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d1017": {
		"y": "祭祀.祈福.求嗣.开光.出行.解除.移徙.伐木.安床.纳畜.出火.拆卸.",
		"j": "安葬.修坟.作灶.破土.造庙.动土.嫁娶.纳采.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d1018": {
		"y": "开市.交易.立券.纳财.会亲友.开光.理发.入殓.移柩.安葬.启攒.",
		"j": "嫁娶.作灶.出火.出行.入宅.移徙.安床.祈福.上梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d1019": {
		"y": "造畜椆栖.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d1020": {
		"y": "入殓.破土.安葬.启攒.除服.成服.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d1021": {
		"y": "祭祀.入殓.移柩.开生坟.破土.启攒.安葬.除服.成服.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1022": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d1023": {
		"y": "嫁娶.求嗣.纳采.进人口.纳财.结网.纳畜.牧养.会亲友.",
		"j": "上梁.作灶.伐木.出行.安葬.安门.理发.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d1024": {
		"y": "嫁娶.祭祀.开市.开光.出行.入宅.移徙.出火.拆卸.修造.安床.",
		"j": "纳畜.伐木.置产.作梁.行丧.安葬.修坟.立碑.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d1026": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.进人口.开市.交易.立券.挂匾.纳财.入宅.移徙.栽种.破土.谢土.",
		"j": "安床.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d1027": {
		"y": "嫁娶.祭祀.祈福.求嗣.动土.安床.扫舍.入殓.移柩.破土.启攒.安葬.作灶.整手足甲.补垣.除服.成服.",
		"j": "开光.栽种.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d1028": {
		"y": "祭祀.祈福.求嗣.开光.出行.解除.上梁.入宅.移徙.安床.安门.纳财.纳畜.造畜椆栖.",
		"j": "伐木.行丧.破土.嫁娶.安葬.开渠.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d1031": {
		"y": "解除.祭祀.修饰垣墙.平治道涂.造畜椆栖.余事勿取.",
		"j": "嫁娶.开市.交易.入宅.入学.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d1121": {
		"y": "安床.祭祀.开池.补垣.入殓.移柩.破土.启攒.",
		"j": "入宅.移徙.嫁娶.掘井.作灶.出火.进人口.开市.开光.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d1221": {
		"y": "入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.",
		"j": "嫁娶.开市.作灶.置产.作梁.伐木.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d1101": {
		"y": "入殓.破土.启攒.安葬.除服.成服.余事勿取.",
		"j": "开市.入宅.祭祀.置产.补垣.塞穴.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d1102": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.修造.动土.上梁.安床.纳畜.入殓.破土.",
		"j": "入宅.移徙.掘井.理发.伐木.交易.开市.作灶.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d1103": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "嫁娶.入宅.上梁.出行.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d1104": {
		"y": "祭祀.求嗣.冠笄.进人口.会亲友.安门.安床.经络.纳财.牧养.畋猎.放水.割蜜.",
		"j": "祈福.斋醮.纳采.订盟.嫁娶.入宅.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1105": {
		"y": "嫁娶.纳采.订盟.开市.交易.立券.挂匾.祭祀.祈福.开光.造车器.挂匾.出行.入宅.移徙.安床.安门.拆卸.修造.动土.栽种.安葬.破土.启攒.除服.成服.入殓.立碑.",
		"j": "探病.纳畜.伐木.起基.作梁.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d1106": {
		"y": "祭祀.冠笄.移徙.会亲友.纳财.理发.捕捉.",
		"j": "嫁娶.开市.开池.作厕.破土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d1107": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d1108": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d1109": {
		"y": "祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网.",
		"j": "入宅.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d1110": {
		"y": "祭祀.沐浴.出行.冠笄.进人口.余事勿取.",
		"j": "嫁娶.动土.安葬.作灶.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d1111": {
		"y": "祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.",
		"j": "开市.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d1112": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d1113": {
		"y": "开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.",
		"j": "栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d1114": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服.",
		"j": "",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d1115": {
		"y": "开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.",
		"j": "嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1116": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d1117": {
		"y": "嫁娶.祭祀.开光.出火.出行.拆卸.修造.动土.解除.开市.交易.立券.挂匾.纳财.入宅.移徙.安床.栽种.纳畜.",
		"j": "探病.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d1118": {
		"y": "祭祀.祈福.求嗣.开光.解除.理发.会亲友.栽种.纳畜.牧养.安葬.修坟.立碑.启攒.",
		"j": "入宅.作灶.词讼.移徙.出行.赴任.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d1119": {
		"y": "祭祀.沐浴.结网.移柩.入殓.除服.成服.",
		"j": "安床.开市.交易.出货财.安葬.修坟.嫁娶.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d1120": {
		"y": "解除.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "开",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d1122": {
		"y": "祭祀.沐浴.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d1123": {
		"y": "嫁娶.开光.出行.解除.出火.拆卸.修造.进人口.动土.入宅.移徙.栽种.纳畜.掘井.安葬.除服.成服.",
		"j": "置产.安床.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d1124": {
		"y": "开光.裁衣.安门.会亲友.安床.结网.理发.",
		"j": "嫁娶.冠笄.出行.祈福.安葬.伐木.入宅.移徙.出火.栽种.动土.上梁.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1126": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.开市.交易.立券.挂匾.伐木.入宅.移徙.安床.安葬.",
		"j": "栽种.掘井.置产.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d1127": {
		"y": "祭祀.理发.针灸.解除.进人口.整手足甲.",
		"j": "嫁娶.动土.造船.开池.掘井.出行.修造.入宅.上梁.移徙.安葬.破土.作灶.开市.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d1128": {
		"y": "破屋.坏垣.求医.治病.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d1129": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.雕刻.移徙.开市.入宅.出行.动土.会亲友.入学.修造.动土.起基.安门.安床.造庙.解除.纳财.开池.造畜椆栖.牧养.牧养.",
		"j": "上梁.开仓.出货财.造屋.造船.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1130": {
		"y": "祭祀.祈福.求嗣.开光.解除.伐木.拆卸.修造.栽种.纳畜.安葬.修坟.立碑.",
		"j": "嫁娶.进人口.入宅.移徙.出火.出行.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d1228": {
		"y": "沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓硙.筑堤.作厕.断蚁.",
		"j": "移徙.入宅.嫁娶.祈福.开光.掘井.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d1226": {
		"y": "祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.",
		"j": "伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d1206": {
		"y": "祭祀.塑绘.理发.会亲友.牧养.开池.造畜椆栖.畋猎.结网.",
		"j": "祈福.谢土.安葬.上梁.作灶.开市.嫁娶.出行.入宅.动土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d1223": {
		"y": "破屋.坏垣.祭祀.沐浴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d1225": {
		"y": "解除.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d1201": {
		"y": "沐浴.扫舍.捕捉.畋猎.解除.塞穴.余事勿取.",
		"j": "嫁娶.入宅.开市.安床.破土.修坟.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d1202": {
		"y": "嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.开光.出行.解除.动土.开市.交易.立券.挂匾.拆卸.破土.",
		"j": "伐木.上梁.修造.入殓.理发.会亲友.入宅.安门.安葬.作灶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d1203": {
		"y": "合帐.裁衣.嫁娶.安床.入殓.移柩.破土.造畜椆栖.",
		"j": "置产.造船.开光.掘井.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d1204": {
		"y": "解除.修饰垣墙.冠笄.出行.余事勿取.",
		"j": "开市.动土.破土.嫁娶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d1205": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.进人口.开市.立券.挂匾.入宅.移徙.安门.栽种.动土.求医.治病.会亲友.起基.修造.造屋.安葬.",
		"j": "作灶.经络.安床.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d1207": {
		"y": "开市.立券.开光.解除.安机械.上梁.启攒.安葬.",
		"j": "嫁娶.祈福.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d1208": {
		"y": "平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d1209": {
		"y": "求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.",
		"j": "开市.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d1210": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d1211": {
		"y": "治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d1212": {
		"y": "祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.",
		"j": "造桥.安门.理发.造庙.栽种.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d1213": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d1214": {
		"y": "沐浴.理发.扫舍.",
		"j": "伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d1215": {
		"y": "祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.",
		"j": "嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d1216": {
		"y": "诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.",
		"j": "嫁娶.祈福.掘井.行丧.安葬.安床.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d1217": {
		"y": "安葬.启攒.移柩.入殓.除服.成服.",
		"j": "余事勿取.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d1218": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.",
		"j": "作灶.塑绘.行丧.词讼.伐木.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d1219": {
		"y": "理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.",
		"j": "入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d1220": {
		"y": "祭祀.修饰垣墙.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1222": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d1224": {
		"y": "安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.",
		"j": "安门.栽种.作灶.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d1227": {
		"y": "祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.",
		"j": "嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d1229": {
		"y": "交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.",
		"j": "斋醮.入宅.修造.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d1230": {
		"y": "嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.",
		"j": "斋醮.伐木.作梁.安葬.行丧.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d1231": {
		"y": "纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.",
		"j": "嫁娶.动土.破土.祈福.出火.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	}
};


},{}],199:[function(require,module,exports){
module.exports =  {
	"d0101": {
		"y": "祭祀.平治道涂.除服.成服.安葬.余事勿取.",
		"j": "嫁娶.入宅.纳采.订盟.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0201": {
		"y": "祭祀.斋醮.纳财.捕捉.畋猎.",
		"j": "嫁娶.开市.入宅.安床.破土.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0102": {
		"y": "纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.",
		"j": "开市.造庙.置产.掘井.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0103": {
		"y": "嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.",
		"j": "开生坟.破土.行丧.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0104": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "移徙.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0105": {
		"y": "解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0106": {
		"y": "塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.",
		"j": "入宅.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0107": {
		"y": "入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.",
		"j": "破土.伐木.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0108": {
		"y": "祭祀.祈福.斋醮.塑绘.开光.除服.成服.入殓.作灶.嫁娶.捕捉.畋猎.纳财.",
		"j": "开仓.造屋.安葬.安床.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0109": {
		"y": "祭祀.出行.沐浴.裁衣.祈福.斋醮.订盟.纳采.嫁娶.安机械.开市.立券.安碓硙.纳畜.",
		"j": "栽种.嫁娶.入殓.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0110": {
		"y": "祭祀.祈福.斋醮.沐浴.安床.安机械.造车器.入殓.移柩.启攒.安葬.立碑.合帐.经络.交易.",
		"j": "作灶.掘井.嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0111": {
		"y": "解除.扫舍.祭祀.教牛马.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0112": {
		"y": "开市.交易.立券.挂匾.开光.解除.伐木.作梁.出火.入宅.移徙.安床.拆卸.动土.上梁.栽种.纳畜.安葬.",
		"j": "嫁娶.祭祀.出行.置产.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0113": {
		"y": "开市.交易.立券.纳财.开池.补垣.嫁娶.纳采.纳畜.取渔.安床.",
		"j": "修造.上梁.入宅.祈福.探病.掘井.动土.安门.安葬.作灶.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0114": {
		"y": "祭祀.解除.修饰垣墙.平治道涂.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0115": {
		"y": "嫁娶.祭祀.祈福.求嗣.动土.会亲友.起基.造仓.纳畜.牧养.作厕.进人口.",
		"j": "掘井.安葬.栽种.出行.作灶.开市.入宅.安门.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0116": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.入宅.移徙.安床.修造.动土.进人口.",
		"j": "掘井.安葬.栽种.出行.作灶.开市.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0117": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0118": {
		"y": "嫁娶.开市.交易.立券.开光.出行.出火.拆卸.修造.入宅.移徙.动土.破土.移柩.安葬.启攒.除服.成服.",
		"j": "安床.伐木.祈福.纳畜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0119": {
		"y": "祭祀.入殓.破土.除服.成服.启攒.安葬.修坟.立碑.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0120": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0121": {
		"y": "开市.交易.立券.纳财.纳畜.造畜椆栖.入宅.移徙.安床.开光.祈福.求嗣.动土.",
		"j": "嫁娶.栽种.安葬.理发.造庙.作灶.入殓.行丧.造桥.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0122": {
		"y": "安床.裁衣.交易.立券.入殓.移柩.安葬.除服.成服.",
		"j": "置产.嫁娶.出行.开光.栽种.动土.破土.入宅.治病.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0123": {
		"y": "祭祀.解除.造畜椆栖.教牛马.针灸.余事勿取.",
		"j": "嫁娶.动土.开池.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0124": {
		"y": "沐浴.塑绘.开光.纳采.订盟.开市.交易.立券.纳财.起基.动土.定磉.放水.安葬.破土.启攒.修坟.立碑.移柩.",
		"j": "入宅.安门.祭祀.谢土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0125": {
		"y": "嫁娶.出行.理发.安床.启攒.安葬.修坟.开市.交易.立券.纳财.开池.牧养.",
		"j": "掘井.祈福.谢土.动土.入宅.上梁.修造.作灶.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0126": {
		"y": "解除.平治道涂.余事勿取.",
		"j": "移徙.入宅.掘井.造庙.栽种.针灸.治病.开池.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0127": {
		"y": "嫁娶.祭祀.开光.伐木.出火.拆卸.入宅.移徙.修造.动土.上梁.安床.纳畜.",
		"j": "开市.行丧.栽种.出行.出货财.安葬.置产.词讼.治病.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0128": {
		"y": "嫁娶.纳采.订盟.入宅.移徙.安床.祭祀.祈福.开光.出行.解除.出火.拆卸.动土.纳畜.谢土.安葬.破土.",
		"j": "伐木.开市.交易.上梁.作灶.安门.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0129": {
		"y": "祭祀.破屋.坏垣.解除.余事勿取.",
		"j": "开市.动土.破土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0130": {
		"y": "嫁娶.纳采.订盟.开光.安香.出火.纳财.开市.交易.立券.裁衣.造屋.起基.修造.动土.安门.移徙.入宅.栽种.牧养.畋猎.掘井.开池.安葬.破土.入殓.除服.成服.立碑.",
		"j": "祈福.造庙.祭祀.安床.谢土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0131": {
		"y": "祭祀.斋醮.入殓.破土.启攒.安葬.修坟.立碑.除服.成服.",
		"j": "嫁娶.入宅.作灶.纳采.订盟.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0216": {
		"y": "祭祀.合帐.裁衣.经络.伐木.作梁.安床.作灶.入殓.安葬.启攒.移柩.",
		"j": "词讼.出火.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0206": {
		"y": "嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.",
		"j": "掘井.词讼.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0219": {
		"y": "嫁娶.冠笄.纳采.出行.会亲友.上梁.安机械.安床.牧养.畋猎.祭祀.祈福.开光.修造.安门.造屋.起基.",
		"j": "入宅.作灶.治病.安葬.移徙.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0226": {
		"y": "祭祀.沐浴.理发.作灶.结网.栽种.",
		"j": "嫁娶.词讼.行丧.安葬.牧养.伐木.作梁.开市.纳畜.造畜椆栖.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0224": {
		"y": "祭祀.斋醮.沐浴.开生坟.除服.成服.移柩.入殓.破土.安葬.合寿木.",
		"j": "开市.嫁娶.安床.会亲友.入宅.作灶.上梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0214": {
		"y": "移徙.祭祀.开光.祈福.出行.解除.进人口.雇庸.安床.动土.起基.上梁.安门.解除.",
		"j": "嫁娶.安葬.破土.作梁.纳畜.牧养.行丧.作灶.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0204": {
		"y": "祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.",
		"j": "开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0221": {
		"y": "造车器.纳采.订盟.祭祀.祈福.求嗣.移徙.出行.开市.出火.入宅.立券.交易.入宅.安门.安床.安葬.谢土.",
		"j": "开光.造屋.动土.作灶.栽种.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0326": {
		"y": "祭祀.祈福.求嗣.斋醮.嫁娶.冠笄.出行.开市.交易.会亲友.教牛马.除服.成服.启攒.安葬.移柩.",
		"j": "祈福.动土.移徙.入宅.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0202": {
		"y": "纳采.订盟.祭祀.祈福.求嗣.斋醮.沐浴.进人口.会亲友.入学.治病.安碓硙.掘井.开池.纳畜.牧养.造畜椆栖.",
		"j": "嫁娶.合帐.入宅.行丧.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0203": {
		"y": "祭祀.祈福.求嗣.沐浴.问名.交易.纳财.入殓.移柩.安葬.修坟.立碑.谢土.造畜椆栖.教牛马.",
		"j": "入宅.置产.嫁娶.动土.栽种.开市.开光.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0205": {
		"y": "安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.",
		"j": "嫁娶.出行.动土.开渠.入宅.祭祀.掘井.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0207": {
		"y": "嫁娶.开光.求嗣.会亲友.安床.牧养.塑绘.针灸.",
		"j": "入宅.移徙.出火.分居.安香.作灶.开市.交易.立券.安葬.动土.伐木.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0316": {
		"y": "开光.塑绘.求嗣.纳采.裁衣.合帐.冠笄.安机械.作梁.开柱眼.安门.安床.造仓.祭祀.会亲友.祈福.经络.纳财.开市.立券.交易.入学.求嗣.理发.架马.",
		"j": "出行.斋醮.安葬.嫁娶.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0208": {
		"y": "作灶.解除.平治道涂.",
		"j": "栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0209": {
		"y": "解除.沐浴.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0210": {
		"y": "嫁娶.祭祀.祈福.出行.解除.出火.拆卸.动土.入宅.移徙.安床.上梁.栽种.纳畜.破土.启攒.安葬.",
		"j": "开市.立券.理发.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0211": {
		"y": "祭祀.解除.治病.破屋.坏垣.扫舍.",
		"j": "余事勿取.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0212": {
		"y": "祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.入宅.移徙.上梁.挂匾.开池.入殓.安葬.破土.启攒.",
		"j": "嫁娶.作灶.安床.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0213": {
		"y": "结网.入殓.除服.成服.移柩.安葬.破土.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0215": {
		"y": "嫁娶.开光.祈福.求嗣.解除.动土.安床.栽种.开池.掘井.祭祀.破土.启攒.",
		"j": "入宅.作灶.伐木.安葬.出火.出行.纳畜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0217": {
		"y": "裁衣.伐木.作梁.纳财.交易.立券.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0218": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.入殓.破土.安葬.启攒.除服.成服.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0220": {
		"y": "修饰垣墙.平治道涂.祭祀.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0222": {
		"y": "动土.入殓.嫁娶.移柩.安葬.破土.",
		"j": "开市.作灶.安床.入宅.上梁.裁衣.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0223": {
		"y": "求医.治病.破屋.坏垣.余事勿取.",
		"j": "开市.嫁娶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0225": {
		"y": "祭祀.塞穴.结网.破土.谢土.安葬.移柩.除服.成服.余事勿取.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0227": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出行.开市.交易.立券.动土.纳财.掘井.会亲友.",
		"j": "入宅.安葬.伐木.作梁.纳畜.造畜椆栖.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0228": {
		"y": "祭祀.祈福.求嗣.纳畜.入殓.启攒.谢土.除服.成服.",
		"j": "栽种.开光.出行.针灸.嫁娶.入宅.动土.破土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0327": {
		"y": "塞穴.整手足甲.解除.捕捉.畋猎.结网.余事勿取.诸事不宜.",
		"j": "嫁娶.作灶.掘井.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0427": {
		"y": "沐浴.塞穴.畋猎.结网.取渔.扫舍.余事勿取.",
		"j": "祈福.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0301": {
		"y": "开光.解除.伐木.竖柱.上梁.交易.立券.纳畜.入殓.移柩.安葬.",
		"j": "入宅.出行.移徙.祭祀.嫁娶.动土.破土.作灶.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0302": {
		"y": "祭祀.祈福.求嗣.开光.嫁娶.出行.解除.伐木.拆卸.进人口.安床.动土.起基.上梁.栽种.纳畜.破土.谢土.启攒.安葬.",
		"j": "移徙.入宅.出火.作灶.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0303": {
		"y": "会亲友.冠笄.安床.会亲友.安机械.祭祀.祈福.求嗣.经络.",
		"j": "嫁娶.开市.动土.作灶.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0304": {
		"y": "作灶.解除.平治道涂.余事勿取.",
		"j": "祭祀.祈福.安葬.安门.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0305": {
		"y": "冠笄.入殓.除服.成服.移柩.平治道涂.修饰垣墙.",
		"j": "造屋.作灶.治病.探病.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0306": {
		"y": "祭祀.嫁娶.祈福.纳采.裁衣.合帐.安床.入宅.安香.入殓.移柩.安葬.谢土.修造.安碓硙.求嗣.会亲友.挂匾.交易.立券.纳财.造仓.放水.",
		"j": "栽种.伐木.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0307": {
		"y": "祭祀.祈福.斋醮.订盟.纳采.裁衣.合帐.拆卸.修造.动土.上梁.起基.移柩.安葬.谢土.沐浴.扫舍.开柱眼.伐木.出火.",
		"j": "安床.开市.立券.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0308": {
		"y": "破屋.坏垣.求医.治病.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0309": {
		"y": "祭祀.动土.上梁.订盟.纳采.嫁娶.安机械.拆卸.安床.入宅.安香.入殓.移柩.破土.安葬.立碑.谢土.赴任.出行.移徙.祈福.求嗣.解除.造仓.进人口.",
		"j": "开光.出货财.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0310": {
		"y": "祭祀.开光.塑绘.纳采.裁衣.拆卸.安床.起基.动土.竖柱.上梁.移徙.入宅.安香.开市.立券.挂匾.沐浴.出行.求嗣.安门.",
		"j": "嫁娶.栽种.伐木.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0311": {
		"y": "裁衣.合帐.冠笄.嫁娶.纳婿.安床.入殓.纳财.",
		"j": "作灶.开市.安葬.作梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0312": {
		"y": "祭祀.订盟.纳采.修造.动土.祈福.塑绘.斋醮.沐浴.拆卸.起基.入宅.安香.造庙.移柩.谢土.除服.成服.入学.习艺.出行.竖柱.上梁.掘井.求嗣.解除.伐木.",
		"j": "作灶.安葬.开市.造屋.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0313": {
		"y": "订盟.纳采.裁衣.合帐.冠笄.安机械.拆卸.安床.入殓.除服.成服.移柩.破土.启攒.安葬.修坟.立碑.经络.交易.立券.纳财.筑堤.造仓.补垣.塞穴.纳畜.伐木.架马.",
		"j": "祭祀.开光.嫁娶.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0314": {
		"y": "祭祀.出行.嫁娶.冠笄.安床.入殓.移柩.安葬.",
		"j": "掘井.动土.作灶.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0315": {
		"y": "塞穴.诸事不宜.",
		"j": "安门.作灶.安葬.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0317": {
		"y": "祭祀.嫁娶.纳婿.安葬.",
		"j": "栽种.造屋.作灶.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0318": {
		"y": "祭祀.会亲友.订盟.裁衣.合帐.安机械.拆卸.上梁.安门.入殓.除服.成服.移柩.启攒.安葬.立碑.开光.塑绘.入学.出行.起基.定磉.放水.移徙.入宅.竖柱.立券.经络.",
		"j": "伐木.作梁.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0319": {
		"y": "祭祀.开光.塑绘.祈福.斋醮.裁衣.合帐.冠笄.嫁娶.拆卸.动土.移徙.入宅.入殓.移柩.安葬.谢土.求嗣.入学.理发.伐木.架马.作梁.出火.修造.起基.定磉.放水.赴任.",
		"j": "入宅.安门.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0320": {
		"y": "祭祀.治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0321": {
		"y": "嫁娶.祭祀.出行.冠笄.立券.交易.进人口.开市.移徙.修造.动土.安床.入殓.移柩.破土.",
		"j": "开光.作灶.斋醮.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0322": {
		"y": "开市.立券.交易.挂匾.祭祀.祈福.开光.入宅.移徙.安床.拆卸.动土.上梁.进人口.",
		"j": "嫁娶.行丧.架马.作梁.理发.牧养.安葬.纳畜.伐木.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0323": {
		"y": "理发.冠笄.嫁娶.进人口.",
		"j": "置产.伐木.纳畜.造畜椆栖.安葬.破土.作梁.作灶.开生坟.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0324": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出火.入宅.移徙.安床.拆卸.动土.破土.谢土.",
		"j": "合帐.开市.安葬.入殓.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0325": {
		"y": "安床.伐木.拆卸.修造.动土.上梁.立券.交易.栽种.纳畜.牧养.入殓.安葬.",
		"j": "嫁娶.祭祀.开光.出行.出火.移徙.入宅.安门.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0328": {
		"y": "纳财.开市.立券.交易.开光.安床.上梁.造屋.修造.起基.",
		"j": "动土.破土.安葬.行丧.赴任.出行.嫁娶.入宅.移徙.谢土.词讼.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0329": {
		"y": "祭祀.祈福.嫁娶.冠笄.修饰垣墙.置产.平治道涂.",
		"j": "开仓.出货财.造屋.作灶.开市.交易.立券.栽种.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0330": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出行.出火.进人口.入宅.移徙.安床.拆卸.修造.安门.挂匾.纳财.扫舍.",
		"j": "动土.伐木.安葬.行丧.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0331": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.出行.出火.入宅.移徙.解除.栽种.伐木.破土.谢土.安葬.",
		"j": "开市.交易.作灶.纳财.上梁.安床.造屋.造船.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0426": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.求医.治病.余事勿取.",
		"j": "嫁娶.开市.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0416": {
		"y": "祭祀.祈福.求嗣.开光.解除.纳采.冠笄.出火.拆卸.进人口.安床.动土.上梁.造庙.掘井.开池.入殓.移柩.安葬.破土.",
		"j": "",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0428": {
		"y": "开市.交易.立券.挂匾.祭祀.开光.祈福.求嗣.安床.解除.修造.安葬.",
		"j": "纳采.问名.订盟.嫁娶.入宅.开仓.出火.动土.破土.纳畜.伐木.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0430": {
		"y": "安香.出火.纳采.订盟.嫁娶.开市.立券.交易.挂匾.开光.出行.解除.安床.栽种.置产.拆卸.修造.动土.",
		"j": "作灶.安葬.祭祀.入殓.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0425": {
		"y": "祭祀.解除.入殓.移柩.启攒.安葬.整手足甲.捕捉.畋猎.取渔.除服.成服.扫舍.谢土.斋醮.",
		"j": "动土.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0420": {
		"y": "祭祀.出行.教牛马.扫舍.余事勿取.",
		"j": "开光.伐木.安葬.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0527": {
		"y": "塞穴.断蚁.结网.畋猎.余事勿取.",
		"j": "嫁娶.安葬.入宅.出行.动土.词讼.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0401": {
		"y": "破屋.坏垣.求医.治病.余事勿取.",
		"j": "开光.嫁娶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0402": {
		"y": "纳采.交易.立券.安床.安机械.安葬.移柩.动土.破土.立碑.",
		"j": "嫁娶.开光.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0403": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.开光.理发.经络.解除.治病.治病.立碑.栽种.牧养.掘井.开池.",
		"j": "嫁娶.定磉.合寿木.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0404": {
		"y": "",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0405": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0406": {
		"y": "嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.",
		"j": "祈福.入殓.祭祀.作灶.安葬.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0407": {
		"y": "嫁娶.出行.合帐.冠笄.安床.除服.成服.作灶.交易.立券.入殓.移柩.破土.安葬.",
		"j": "词讼.开光.开市.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0408": {
		"y": "出行.修饰垣墙.造畜椆栖.教牛马.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0409": {
		"y": "祭祀.祈福.开光.求嗣.解除.伐木.出火.入宅.移徙.安床.拆卸.修造.动土.造畜椆栖.",
		"j": "嫁娶.纳财.安葬.出行.开市.立券.作灶.栽种.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0410": {
		"y": "纳采.嫁娶.开光.出行.理发.会亲友.开市.安床.栽种.牧养.入殓.移柩.启攒.",
		"j": "谢土.祈福.上梁.作灶.斋醮.修造.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0411": {
		"y": "祭祀.平治道涂.解除.修饰垣墙.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0412": {
		"y": "祭祀.祈福.开光.解除.动土.纳财.交易.纳畜.扫舍.",
		"j": "进人口.出行.嫁娶.置产.安床.赴任.安葬.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0413": {
		"y": "祭祀.祈福.求嗣.开光.解除.出火.拆卸.入宅.安床.修造.安门.纳畜.启攒.安葬.",
		"j": "动土.破土.纳财.掘井.挂匾.开市.伐木.交易.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0414": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0415": {
		"y": "塞穴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0417": {
		"y": "解除.破屋.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0418": {
		"y": "嫁娶.祈福.求嗣.开光.出行.解除.拆卸.出火.开市.立券.交易.入宅.移徙.安床.动土.破土.谢土.",
		"j": "祭祀.入殓.安葬.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0419": {
		"y": "祭祀.裁衣.冠笄.安床.交易.立券.开池.补垣.塞穴.入殓.破土.启攒.安葬.谢土.除服.成服.",
		"j": "嫁娶.掘井.探病.开市.开光.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0421": {
		"y": "祭祀.祈福.求嗣.开光.纳采.订盟.解除.栽种.纳畜.牧养.扫舍.进人口.",
		"j": "修坟.造桥.作灶.出行.安葬.造屋.入宅.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0422": {
		"y": "开光.出行.交易.塞穴.嫁娶.理发.开市.安床.",
		"j": "祈福.出火.置产.动土.破土.安葬.修造.上梁.置产.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0423": {
		"y": "祭祀.作灶.畋猎.结网.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.安床.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0424": {
		"y": "沐浴.祭祀.解除.安葬.破土.谢土.移柩.余事勿取.",
		"j": "斋醮.开光.嫁娶.入宅.上梁.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0429": {
		"y": "祭祀.修门.取渔.纳财.纳畜.余事勿取.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0627": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "移徙.入宅.开仓.出货财.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0501": {
		"y": "祭祀.出行.修造.动土.合帐.造畜椆栖.安床.移徙.入殓.移柩.破土.启攒.安葬.开生坟.合寿木.补垣.塞穴.",
		"j": "移徙.入宅.作灶.理发.开光.安门.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0502": {
		"y": "祭祀.修饰垣墙.余事勿取.",
		"j": "开光.修造.动土.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0503": {
		"y": "嫁娶.祭祀.祈福.求嗣.斋醮.开光.出火.移徙.入宅.竖柱.上梁.会亲友.造屋.起基.治病.治病.安门.造车器.掘井.开池.",
		"j": "纳采.出行.修坟.安葬.开市.立券.作灶.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0504": {
		"y": "祭祀.塑绘.开光.纳采.嫁娶.开市.出行.会亲友.安床.结网.除服.成服.启攒.安葬.移柩.",
		"j": "祈福.入宅.造屋.动土.破土.探病.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0505": {
		"y": "订盟.纳采.会亲友.安床.作灶.造畜椆栖.",
		"j": "开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0506": {
		"y": "沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0507": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.",
		"j": "",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0508": {
		"y": "祭祀.开光.出行.解除.塑绘.裁衣.入殓.移柩.破土.启攒.安葬.除服.成服.",
		"j": "嫁娶.上梁.修造.拆卸.架马.入宅.伐木.动土.出火.开柱眼.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0509": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0510": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.动土.上梁.出火.进人口.入宅.移徙.安床.栽种.纳畜.牧养.竖柱.安门.修造.解除.会亲友.",
		"j": "",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0511": {
		"y": "开市.交易.立券.祭祀.祈福.开光.伐木.进人口.安床.拆卸.修造.动土.栽种.破土.移柩.安葬.",
		"j": "入宅.移徙.理发.出火.嫁娶.出行.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0512": {
		"y": "结网.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0513": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.开市.交易.立券.安床.出行.拆卸.",
		"j": "纳畜.入宅.移徙.安葬.探病.伐木.上梁.安门.入殓.动土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0514": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.动土.入宅.移徙.安床.作灶.塞穴.栽种.破土.安葬.",
		"j": "开光.掘井.开仓.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0515": {
		"y": "解除.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0516": {
		"y": "开市.交易.立券.挂匾.开光.出行.拆卸.进人口.入宅.移柩.动土.安门.上梁.栽种.破土.修坟.安葬.",
		"j": "嫁娶.安床.探病.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0517": {
		"y": "进人口.会亲友.",
		"j": "塞穴.上梁.动土.伐木.安葬.词讼.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0518": {
		"y": "沐浴.平治道涂.扫舍.入殓.破土.安葬.除服.成服.",
		"j": "嫁娶.移徙.伐木.作梁.安床.祭祀.祈福.造屋.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0519": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.解除.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.安门.上梁.安葬.破土.谢土.",
		"j": "",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0520": {
		"y": "祭祀.祈福.求嗣.开光.解除.合帐.冠笄.伐木.架马.作梁.修造.进人口.嫁娶.裁衣.合帐.安床.动土.起基.上梁.竖柱.放水.会亲友.",
		"j": "",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0521": {
		"y": "破屋.坏垣.沐浴.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0522": {
		"y": "纳采.订盟.嫁娶.造车器.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.挂匾.入宅.移徙.安床.栽种.入殓.破土.安葬.除服.成服.",
		"j": "开市.立券.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0523": {
		"y": "开市.交易.立券.祭祀.祈福.开光.动土.安床.出行.栽种.纳畜.牧养.竖柱.上梁.解除.破土.",
		"j": "嫁娶.掘井.入宅.移徙.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0524": {
		"y": "解除.出行.纳采.冠笄.竖柱.上梁.移徙.作灶.进人口.入宅.纳畜.牧养.",
		"j": "祭祀.伐木.架马.安床.修造.动土.安葬.修坟.破土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0525": {
		"y": "祭祀.祈福.求嗣.开光.出行.开市.交易.立券.栽种.安床.纳畜.移徙.起基.动土.定磉.造仓.置产.破土.启攒.修坟.",
		"j": "入宅.移徙.修造.安门.伐木.入殓.安葬.造屋.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0526": {
		"y": "嫁娶.交易.立券.作厕.补垣.塞穴.畋猎.取渔.开生坟.",
		"j": "安床.开渠.上梁.修造.开市.开光.入宅.移徙.安床.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0528": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.解除.出行.出火.入宅.移徙.栽种.纳畜.牧养.动土.破土.入殓.安葬.",
		"j": "作灶.安床.开仓.造屋.动土.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0529": {
		"y": "开光.纳采.裁衣.冠笄.安床.作灶.进人口.造仓.塞穴.",
		"j": "嫁娶.栽种.修造.动土.出行.伐木.作梁.安葬.谢土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0530": {
		"y": "纳采.嫁娶.裁衣.理发.出行.修造.动土.进人口.开市.交易.立券.挂匾.移徙.上梁.栽种.纳畜.",
		"j": "伐木.安葬.安床.祭祀.祈福.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0531": {
		"y": "开市.交易.立券.挂匾.祭祀.祈福.斋醮.出行.开市.交易.立券.造屋.起基.修造.动土.定磉.安床.安机械.安葬.破土.启攒.除服.成服.立碑.",
		"j": "作灶.嫁娶.移徙.入宅.理发.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0617": {
		"y": "开市.交易.立券.纳财.栽种.安床.拆卸.修造.动土.上梁.入殓.安葬.破土.除服.成服.",
		"j": "嫁娶.出火.伐木.祭祀.入宅.移徙.纳畜.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0630": {
		"y": "祭祀.结网.余事勿取.",
		"j": "入宅.出行.掘井.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0628": {
		"y": "祭祀.斋醮.塑绘.开光.出行.修造.动土.造畜椆栖.安床.放水.掘井.开池.作厕.结网.破土.",
		"j": "出火.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0728": {
		"y": "嫁娶.祭祀.出行.裁衣.冠笄.交易.雕刻.纳财.造畜椆栖.造车器.雕刻.教牛马.",
		"j": "移徙.入宅.栽种.动土.破土.作灶.安葬.行丧.伐木.上梁.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0601": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.修造.进人口.入宅.移徙.安床.解除.挂匾.栽种.破土.谢土.入殓.移柩.安葬.",
		"j": "开市.立券.造船.合寿木.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0602": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "开光.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0603": {
		"y": "订盟.纳采.嫁娶.解除.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.入宅.移徙.安床.栽种.纳畜.动土.破土.谢土.安葬.修坟.",
		"j": "作灶.开市.经络.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0604": {
		"y": "祭祀.祈福.求嗣.开光.订盟.纳采.解除.动土.起基.进人口.开市.交易.立券.纳财.造仓.开池.栽种.纳畜.破土.安葬.",
		"j": "安床.上梁.裁衣.入宅.嫁娶.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0605": {
		"y": "开光.求医.治病.动土.上梁.入殓.破土.安葬.",
		"j": "嫁娶.开光.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0606": {
		"y": "祭祀.栽种.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0607": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.",
		"j": "安葬.开市.交易.立券.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0608": {
		"y": "求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖.",
		"j": "安葬.出行.祈福.栽种.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "闭",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0609": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0610": {
		"y": "嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.",
		"j": "安葬.行丧.伐木.作梁.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0611": {
		"y": "开光.求嗣.出行.解除.伐木.出火.拆卸.修造.上梁.起基.入宅.移徙.开市.交易.立券.栽种.牧养.入殓.安葬.除服.成服.",
		"j": "置产.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0612": {
		"y": "祭祀.理发.修饰垣墙.平治道涂.沐浴.整手足甲.扫舍.",
		"j": "出行.安门.修造.嫁娶.上梁.入宅.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0613": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出行.出火.拆卸.动土.修造.进人口.入宅.移徙.安床.挂匾.交易.立券.栽种.纳畜.入殓.破土.启攒.安葬.",
		"j": "",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0614": {
		"y": "祭祀.祈福.求嗣.开光.出行.伐木.出火.拆卸.修造.动土.起基.安床.入宅.移徙.",
		"j": "嫁娶.开市.交易.行丧.安葬.修坟.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0615": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0616": {
		"y": "开市.交易.立券.纳财.开池.作厕.结网.祭祀.修造.动土.安床.放水.经络.破土.",
		"j": "嫁娶.造桥.词讼.移徙.安门.作灶.栽种.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0618": {
		"y": "祭祀.作灶.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0619": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0620": {
		"y": "修造.动土.起基.安门.安床.栽种.筑堤.补垣.造畜椆栖.",
		"j": "嫁娶.掘井.入宅.移徙.出火.出行.行丧.安葬.开光.理发.进人口.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0621": {
		"y": "祭祀.教牛马.断蚁.余事勿取.",
		"j": "斋醮.移徙.入宅.动土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0622": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.开市.纳财.立券.移徙.出行.修造.动土.起基.定磉.竖柱.拆卸.扫舍.放水.安香.安床.造船.开池.掘井.造畜椆栖.栽种.",
		"j": "行丧.安葬.破土.作灶.伐木.斋醮.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0623": {
		"y": "嫁娶.开光.祭祀.祈福.出行.解除.移徙.入宅.开市.纳财.起基.修造.竖柱.上梁.造屋.作灶.出火.安香.补垣.塞穴.拆卸.放水.扫舍.造仓.造船.栽种.安葬.",
		"j": "纳采.订盟.安床.谢土.破土.动土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0624": {
		"y": "嫁娶.祭祀.理发.作灶.修饰垣墙.平治道涂.整手足甲.沐浴.冠笄.",
		"j": "破土.出行.栽种.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0625": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.入宅.移徙.安床.交易.立券.挂匾.纳财.入殓.安葬.启攒.除服.成服.",
		"j": "动土.掘井.破土.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0626": {
		"y": "畋猎.捕捉.结网.取渔.祭祀.沐浴.余事勿取.",
		"j": "嫁娶.开市.安葬.启攒.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0629": {
		"y": "开市.交易.立券.挂匾.开光.解除.拆卸.动土.安床.修造.上梁.置产.栽种.破土.安葬.",
		"j": "作灶.出火.祭祀.嫁娶.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0723": {
		"y": "开市.交易.立券.纳财.动土.开光.出行.嫁娶.纳采.订盟.出行.纳财.入学.开仓.出货财.纳畜.牧养.栽种.破土.启攒.安葬.立碑.",
		"j": "入宅.移徙.作灶.祭祀.谢土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0828": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "祈福.纳采.订盟.嫁娶.入宅.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0701": {
		"y": "嫁娶.纳采.订盟.冠笄.造车器.祭祀.开光.祈福.求嗣.出行.解除.伐木.出火.入宅.拆卸.修造.动土.上梁.安床.栽种.破土.",
		"j": "行丧.置产.入宅.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0702": {
		"y": "嫁娶.合帐.裁衣.冠笄.伐木.上梁.出火.拆卸.移徙.修造.动土.安门.纳财.筑堤.栽种.塞穴.",
		"j": "安床.祈福.出行.安葬.行丧.开光.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0703": {
		"y": "出行.教牛马.割蜜.余事勿取.",
		"j": "斋醮.造屋.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0704": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.修造.进人口.入宅.移徙.动土.安床.纳畜.栽种.纳财.交易.立券.挂匾.造畜椆栖.",
		"j": "安葬.开生坟.合寿木.行丧.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0705": {
		"y": "安机械.祭祀.祈福.求嗣.沐浴.解除.纳采.开市.修造.竖柱.上梁.开柱眼.安碓硙.归岫.补垣.塞穴.拆卸.放水.出火.扫舍.开生坟.合寿木.安葬.谢土.启攒.除服.成服.",
		"j": "嫁娶.安床.作灶.动土.破土.造船.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0706": {
		"y": "祭祀.沐浴.理发.整手足甲.修饰垣墙.平治道涂.余事勿取.",
		"j": "开市.入宅.出行.修造.词讼.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0707": {
		"y": "嫁娶.祭祀.裁衣.结网.冠笄.沐浴.",
		"j": "开仓.出货财.置产.安葬.动土.破土.掘井.栽种.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0708": {
		"y": "入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.",
		"j": "嫁娶.破土.置产.栽种.安葬.修坟.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0709": {
		"y": "祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.",
		"j": "嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0710": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0711": {
		"y": "嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.",
		"j": "伐木.祭祀.纳畜.祭祀.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0712": {
		"y": "嫁娶.开光.出行.祈福.求嗣.解除.拆卸.动土.修造.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.纳畜.入殓.移柩.安葬.",
		"j": "",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0713": {
		"y": "祭祀.作灶.纳财.栽种.纳畜.进人口.",
		"j": "安葬.经络.修坟.破土.开市.安床.启攒.立碑.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0714": {
		"y": "祭祀.祈福.求嗣.开光.开市.牧养.理发.",
		"j": "嫁娶.出行.安葬.入殓.入宅.作灶.冠笄.上梁.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0715": {
		"y": "祭祀.入殓.破土.除服.成服.移柩.启攒.安葬.谢土.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0716": {
		"y": "祭祀.出行.交易.割蜜.造畜椆栖.",
		"j": "嫁娶.作灶.安葬.动土.词讼.作梁.伐木.掘井.破土.移徙.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0717": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.栽种.纳畜.入殓.启攒.除服.成服.",
		"j": "",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0718": {
		"y": "嫁娶.开光.解除.安床.牧养.理发.开市.入殓.启攒.移柩.安葬.扫舍.",
		"j": "作灶.动土.上梁.栽种.入宅.移徙.修造.祈福.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0719": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0720": {
		"y": "祭祀.祈福.求嗣.开光.伐木.出火.拆卸.入宅.安床.修造.动土.上梁.挂匾.纳畜.",
		"j": "嫁娶.栽种.行丧.理发.修坟.行丧.作灶.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0721": {
		"y": "解除.祭祀.理发.入殓.安葬.破土.",
		"j": "嫁娶.开市.出火.作灶.置产.斋醮.入宅.移徙.安门.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0722": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0724": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.入殓.破土.谢土.安葬.",
		"j": "掘井.伐木.纳畜.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0725": {
		"y": "祭祀.冠笄.作灶.交易.纳财.栽种.结网.纳畜.牧养.进人口.",
		"j": "开渠.造船.安床.安葬.破土.出行.修坟.掘井.开市.开生坟.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0726": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.纳采.裁衣.冠笄.开光.安床.作梁.修造.动土.作灶.起基.上梁.造屋.纳畜.牧养.",
		"j": "移徙.栽种.出行.行丧.破土.安葬.词讼.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0727": {
		"y": "经络.祭祀.沐浴.补垣.塞穴.除服.成服.移柩.入殓.启攒.立碑.",
		"j": "开光.治病.嫁娶.掘井.破土.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0729": {
		"y": "修造.动土.安机械.祭祀.沐浴.解除.拆卸.治病.作灶.造屋.起基.开池.扫舍.造畜椆栖.开生坟.合寿木.安葬.破土.启攒.移柩.入殓.立碑.",
		"j": "开市.入宅.出行.安床.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0730": {
		"y": "嫁娶.纳采.订盟.造车器.开光.出行.拆卸.起基.安床.除服.成服.开市.交易.立券.栽种.牧养.入殓.移柩.启攒.",
		"j": "上梁.入宅.修造.动土.破土.祭祀.祈福.斋醮.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0731": {
		"y": "祭祀.嫁娶.畋猎.结网.",
		"j": "动土.破土.治病.开渠.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0818": {
		"y": "嫁娶.出火.拆卸.祭祀.祈福.开光.伐木.动土.开市.交易.立券.入宅.移徙.安床.纳畜.入殓.安葬.",
		"j": "栽种.作灶.针灸.出行.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0829": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.安香.出火.解除.伐木.入宅.移徙.安床.开市.交易.立券.栽种.出火.出行.安葬.",
		"j": "掘井.理发.作灶.动土.破土.开池.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0831": {
		"y": "嫁娶.祭祀.祈福.求嗣.裁衣.冠笄.经络.修造.进人口.安床.动土.竖柱.上梁.移徙.交易.立券.栽种.会亲友.",
		"j": "行丧.安葬.出行.作梁.纳畜.伐木.造桥.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0823": {
		"y": "祭祀.解除.拆卸.修造.动土.起基.上梁.安床.安门.开渠.开池.入殓.破土.启攒.",
		"j": "嫁娶.出行.进人口.作灶.入宅.移徙.栽种.赴任.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0923": {
		"y": "嫁娶.纳采.订盟.祭祀.开光.出行.理发.作梁.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.移徙.拆卸.挂匾.栽种.纳畜.破土.安葬.入殓.除服.成服.",
		"j": "开市.掘井.开渠.造桥.造船.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0801": {
		"y": "纳采.订盟.会亲友.入学.祭祀.祈福.求嗣.开光.出行.解除.理发.动土.起基.开市.交易.立券.纳财.造仓.栽种.纳畜.牧养.",
		"j": "嫁娶.作灶.出火.置产.嫁娶.入宅.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0802": {
		"y": "祭祀.祈福.解除.整手足甲.安床.沐浴.入殓.移柩.破土.启攒.安葬.谢土.",
		"j": "嫁娶.斋醮.开市.出火.入宅.移徙.出行.作灶.安门.伐木.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0803": {
		"y": "破屋.坏垣.解除.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0804": {
		"y": "嫁娶.开市.立券.移徙.入宅.安机械.会亲友.经络.安门.安床.挂匾.拆卸.开仓.出货财.开池.栽种.纳畜.牧养.破土.安葬.启攒.移柩.入殓.立碑.",
		"j": "祭祀.祈福.探病.谢土.造桥.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0805": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.斋醮.开光.会亲友.求医.治病.造屋.起基.竖柱.上梁.安门.安碓硙.筑堤.开池.破土.安葬.除服.成服.",
		"j": "入宅.开市.掘井.词讼.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0806": {
		"y": "纳采.订盟.嫁娶.移徙.入宅.出行.祭祀.祈福.斋醮.塑绘.开光.安香.出火.会亲友.解除.入学.竖柱.上梁.拆卸.造屋.起基.栽种.牧养.纳畜.",
		"j": "安葬.破土.开市.开仓.出货财.启攒.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0807": {
		"y": "订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.",
		"j": "动土.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0808": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.",
		"j": "入宅.作梁.安门.伐木.修造.上梁.入殓.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0809": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.",
		"j": "造屋.开光.理发.造船.掘井.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0810": {
		"y": "祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.",
		"j": "破土.置产.掘井.动土.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0811": {
		"y": "祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍.",
		"j": "嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0812": {
		"y": "塑绘.开光.进人口.纳畜.补垣.塞穴.栽种.牧养.",
		"j": "嫁娶.纳财.祈福.安葬.修造.开市.交易.立券.动土.上梁.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0813": {
		"y": "祭祀.作灶.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0814": {
		"y": "祭祀.求嗣.开光.出行.伐木.作梁.出火.解除.拆卸.进人口.修造.动土.起基.安床.栽种.纳畜.入殓.破土.安葬.除服.成服.",
		"j": "嫁娶.移徙.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0815": {
		"y": "祭祀.求医.捕捉.栽种.塞穴.入殓.破土.安葬.移柩.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0816": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0817": {
		"y": "祭祀.结网.入殓.移柩.启攒.安葬.移柩.除服.成服.合寿木.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0819": {
		"y": "祭祀.开光.解除.移徙.裁衣.开市.立券.祈福.求嗣.进人口.交易.纳财.纳畜.",
		"j": "动土.破土.理发.出行.入宅.分居.安香.出火.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0820": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.安床.栽种.移柩.进人口.会亲友.除服.成服.",
		"j": "造屋.入殓.安葬.伐木.入宅.移徙.置产.纳畜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0821": {
		"y": "祭祀.动土.筑堤.开池.会亲友.塞穴.入殓.移柩.破土.安葬.",
		"j": "开光.出行.修造.上梁.入宅.安门.作灶.裁衣.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0822": {
		"y": "祭祀.裁衣.安门.纳财.扫舍.出行.进人口.作灶.纳畜.造畜椆栖.",
		"j": "安床.动土.安葬.开生坟.合寿木.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0824": {
		"y": "纳采.订盟.开光.出行.解除.安香.出火.拆卸.入宅.移徙.修造.上梁.安床.栽种.纳畜.会亲友.安机械.经络.",
		"j": "伐木.谢土.行丧.祭祀.作灶.动土.破土.安葬.祈福.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0825": {
		"y": "修饰垣墙.平治道涂.祭祀.沐浴.作灶.",
		"j": "嫁娶.词讼.治病.置产.作梁.祈福.安葬.栽种.伐木.安门.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0826": {
		"y": "嫁娶.祭祀.祈福.求嗣.出火.出行.开光.解除.拆卸.修造.进人口.安香.交易.立券.入宅.移徙.安床.动土.破土.谢土.安葬.入殓.除服.成服.",
		"j": "斋醮.开市.开仓.作灶.造船.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0827": {
		"y": "破土.安葬.移柩.入殓.祭祀.捕捉.除服.成服.余事勿取.",
		"j": "嫁娶.入宅.开市.交易.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0830": {
		"y": "安机械.纳采.订盟.祭祀.祈福.求嗣.开光.普渡.出行.出火.拆卸.修造.动土.进人口.开市.交易.立券.移徙.安床.栽种.上梁.纳畜.破土.移柩.安葬.",
		"j": "入宅.嫁娶.掘井.牧养.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0930": {
		"y": "纳采.订盟.开市.交易.立券.挂匾.纳财.栽种.进人口.入宅.移徙.安床.开光.出火.拆卸.安门.修造.",
		"j": "斋醮.嫁娶.行丧.动土.作灶.安葬.破土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0922": {
		"y": "祭祀.治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0929": {
		"y": "嫁娶.纳采.祭祀.解除.出行.修造.动土.开市.上梁.安床.整手足甲.扫舍.求医.治病.起基.定磉.造屋.合脊.",
		"j": "造庙.行丧.安葬.伐木.作灶.造船.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0928": {
		"y": "祭祀.出行.沐浴.扫舍.安葬.余事勿取.",
		"j": "动土.破土.置产.掘井.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0912": {
		"y": "开市.交易.立券.挂匾.祭祀.开光.进人口.入宅.安床.出火.拆卸.修造.动土.栽种.",
		"j": "嫁娶.立碑.出行.伐木.安葬.行丧.移徙.纳畜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0920": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.栽种.纳畜.入殓.安葬.除服.成服.",
		"j": "",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0910": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d1029": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "嫁娶.入宅.上梁.出行.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0901": {
		"y": "嫁娶.纳采.订盟.开光.祭祀.出行.理发.动土.安床.放水.开渠.栽种.进人口.",
		"j": "入宅.上梁.入殓.造屋.探病.作灶.安门.安葬.纳畜.伐木.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0902": {
		"y": "祭祀.出行.作梁.出火.拆卸.修造.动土.起基.安床.补垣.塞穴.入殓.破土.安葬.移柩.造畜椆栖.",
		"j": "嫁娶.入宅.斋醮.开光.针灸.掘井.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0903": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.出行.解除.竖柱.入宅.移徙.纳财.上梁.纳畜.入殓.安葬.启攒.",
		"j": "栽种.掘井.动土.安床.破土.置产.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0904": {
		"y": "解除.祭祀.祈福.求嗣.修造.动土.竖柱.上梁.安床.纳畜.造屋.合脊.起基.入殓.破土.安葬.",
		"j": "出火.嫁娶.开光.进人口.出行.词讼.开市.入宅.移徙.赴任.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0905": {
		"y": "沐浴.理发.会亲友.塑绘.开光.栽种.牧养.嫁娶.经络.补垣.塞穴.",
		"j": "开市.入宅.动土.破土.安葬.作灶.上梁.安床.开仓.祈福.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0906": {
		"y": "祭祀.理发.作灶.沐浴.修饰垣墙.平治道涂.",
		"j": "嫁娶.栽种.祈福.造桥.安葬.安门.伐木.作梁.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0907": {
		"y": "沐浴.入殓.移柩.除服.成服.破土.平治道涂.",
		"j": "嫁娶.移徙.入宅.开市.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0908": {
		"y": "嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.",
		"j": "",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0909": {
		"y": "开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩.",
		"j": "嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0911": {
		"y": "嫁娶.祈福.求嗣.出行.出火.拆卸.修造.动土.上梁.开光.进人口.开市.交易.立券.挂匾.安床.入宅.移徙.栽种.伐木.入殓.破土.除服.成服.",
		"j": "",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0913": {
		"y": "祭祀.理发.会亲友.进人口.嫁娶.针灸.入殓.移柩.",
		"j": "探病.开渠.安葬.伐木.作灶.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0914": {
		"y": "祭祀.立碑.修坟.启攒.除服.成服.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0915": {
		"y": "嫁娶.出行.伐木.拆卸.修造.动土.移徙.安葬.破土.修坟.立碑.",
		"j": "掘井.祈福.安床.开市.入宅.挂匾.开光.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0916": {
		"y": "祭祀.出行.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0917": {
		"y": "嫁娶.祭祀.塑绘.开光.出行.解除.理发.整手足甲.动土.安床.开池.放水.扫舍.",
		"j": "伐木.行丧.作灶.作梁.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0918": {
		"y": "开市.交易.立券.挂匾.开光.出行.入宅.移徙.安床.出火.上梁.",
		"j": "作灶.行丧.理发.乘船.嫁娶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0919": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0921": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0924": {
		"y": "开市.交易.立券.纳财.挂匾.栽种.祭祀.祈福.开光.拆卸.动土.安床.",
		"j": "嫁娶.破土.进人口.出行.入宅.移徙.出火.纳畜.词讼.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0925": {
		"y": "嫁娶.祭祀.理发.进人口.作灶.移柩.冠笄.会亲友.",
		"j": "开仓.出货财.伐木.纳畜.开市.上梁.造屋.破土.启攒.栽种.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0926": {
		"y": "祭祀.修坟.除服.成服.启攒.移柩.余事勿取.",
		"j": "开市.入宅.嫁娶.动土.破土.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0927": {
		"y": "嫁娶.冠笄.安机械.解除.纳畜.牧养.沐浴.伐木.架马.作梁.安门.扫舍.合寿木.安葬.启攒.立碑.修坟.",
		"j": "祈福.开光.开市.入宅.动土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d1027": {
		"y": "入殓.破土.启攒.安葬.除服.成服.余事勿取.",
		"j": "开市.入宅.祭祀.置产.补垣.塞穴.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d1025": {
		"y": "纳采.订盟.会亲友.沐浴.理发.裁衣.冠笄.安床.除服.成服.启攒.移柩.安葬.会亲友.开生坟.",
		"j": "开市.入宅.出行.嫁娶.修坟.祈福.动土.入宅.安门.谢土.上梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d1125": {
		"y": "祭祀.祈福.求嗣.开光.解除.伐木.拆卸.修造.栽种.纳畜.安葬.修坟.立碑.",
		"j": "嫁娶.进人口.入宅.移徙.出火.出行.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d1001": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.入宅.安床.出行.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d1002": {
		"y": "开光.祈福.求嗣.斋醮.修造.动土.纳财.造仓.作厕.栽种.牧养.会亲友.",
		"j": "作灶.出火.进人口.开渠.入宅.移徙.祭祀.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d1003": {
		"y": "开光.解除.拆卸.修造.动土.竖柱.安门.牧养.安葬.修坟.破土.移柩.",
		"j": "出火.入宅.移徙.祈福.祭祀.安床.开市.嫁娶.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d1004": {
		"y": "破屋.坏垣.求医.治病.余事勿取.",
		"j": "移徙.入宅.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d1005": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.上梁.合脊.放水.掘井.破土.移柩.谢土.除服.成服.",
		"j": "开市.开仓.安门.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d1006": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.解除.进人口.入宅.移徙.出火.安床.开市.交易.立券.挂匾.",
		"j": "安葬.纳畜.出行.行丧.伐木.栽种.造庙.造桥.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d1007": {
		"y": "祭祀.冠笄.捕捉.余事勿取.",
		"j": "嫁娶.开市.造屋.作梁.合寿木.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d1008": {
		"y": "祭祀.塞穴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d1009": {
		"y": "祭祀.祈福.求嗣.开光.开市.出行.解除.动土.起基.置产.栽种.",
		"j": "嫁娶.作灶.修坟.安门.入宅.立碑.安葬.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d1010": {
		"y": "祭祀.解除.裁衣.理发.安床.作灶.造畜椆栖.放水.筑堤.补垣.塞穴.整手足甲.扫舍.",
		"j": "嫁娶.开光.会亲友.掘井.安门.栽种.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d1011": {
		"y": "祭祀.出行.裁衣.冠笄.会亲友.造畜椆栖.嫁娶.竖柱.上梁.移徙.纳财.纳畜.",
		"j": "动土.伐木.作梁.行丧.安葬.开生坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d1012": {
		"y": "祭祀.祈福.求嗣.开光.出行.解除.移徙.伐木.安床.纳畜.出火.拆卸.",
		"j": "安葬.修坟.作灶.破土.造庙.动土.嫁娶.纳采.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d1013": {
		"y": "开市.交易.立券.纳财.会亲友.开光.理发.入殓.移柩.安葬.启攒.",
		"j": "嫁娶.作灶.出火.出行.入宅.移徙.安床.祈福.上梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d1014": {
		"y": "造畜椆栖.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d1015": {
		"y": "入殓.破土.安葬.启攒.除服.成服.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d1016": {
		"y": "祭祀.入殓.移柩.开生坟.破土.启攒.安葬.除服.成服.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1017": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d1018": {
		"y": "嫁娶.求嗣.纳采.进人口.纳财.结网.纳畜.牧养.会亲友.",
		"j": "上梁.作灶.伐木.出行.安葬.安门.理发.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d1019": {
		"y": "嫁娶.祭祀.开市.开光.出行.入宅.移徙.出火.拆卸.修造.安床.",
		"j": "纳畜.伐木.置产.作梁.行丧.安葬.修坟.立碑.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d1020": {
		"y": "嫁娶.祭祀.作灶.纳财.",
		"j": "安葬.开市.修坟.立碑.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d1021": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.进人口.开市.交易.立券.挂匾.纳财.入宅.移徙.栽种.破土.谢土.",
		"j": "安床.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d1022": {
		"y": "嫁娶.祭祀.祈福.求嗣.动土.安床.扫舍.入殓.移柩.破土.启攒.安葬.作灶.整手足甲.补垣.除服.成服.",
		"j": "开光.栽种.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d1023": {
		"y": "祭祀.祈福.求嗣.开光.出行.解除.上梁.入宅.移徙.安床.安门.纳财.纳畜.造畜椆栖.",
		"j": "伐木.行丧.破土.嫁娶.安葬.开渠.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d1024": {
		"y": "祭祀.开光.出行.解除.理发.伐木.出火.拆卸.上梁.合脊.安床.造畜椆栖.",
		"j": "嫁娶.安葬.行丧.词讼.造桥.作灶.破土.动土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d1026": {
		"y": "解除.祭祀.修饰垣墙.平治道涂.造畜椆栖.余事勿取.",
		"j": "嫁娶.开市.交易.入宅.入学.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d1028": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.修造.动土.上梁.安床.纳畜.入殓.破土.",
		"j": "入宅.移徙.掘井.理发.伐木.交易.开市.作灶.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d1030": {
		"y": "祭祀.求嗣.冠笄.进人口.会亲友.安门.安床.经络.纳财.牧养.畋猎.放水.割蜜.",
		"j": "祈福.斋醮.纳采.订盟.嫁娶.入宅.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1031": {
		"y": "嫁娶.纳采.订盟.开市.交易.立券.挂匾.祭祀.祈福.开光.造车器.挂匾.出行.入宅.移徙.安床.安门.拆卸.修造.动土.栽种.安葬.破土.启攒.除服.成服.入殓.立碑.",
		"j": "探病.纳畜.伐木.起基.作梁.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d1105": {
		"y": "祭祀.开光.出行.解除.伐木.作梁.出火.拆卸.入宅.移徙.安床.修造.造畜椆栖.扫舍.",
		"j": "造庙.嫁娶.掘井.栽种.造桥.作灶.动土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d1128": {
		"y": "合帐.裁衣.嫁娶.安床.入殓.移柩.破土.造畜椆栖.",
		"j": "置产.造船.开光.掘井.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d1115": {
		"y": "解除.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d1108": {
		"y": "开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.",
		"j": "栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d1126": {
		"y": "沐浴.扫舍.捕捉.畋猎.解除.塞穴.余事勿取.",
		"j": "嫁娶.入宅.开市.安床.破土.修坟.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d1120": {
		"y": "嫁娶.开光.出行.出火.拆卸.修造.动土.入宅.移徙.安床.上梁.开市.交易.立券.栽种.",
		"j": "祈福.祭祀.伐木.掘井.作灶.谢土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1130": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.进人口.开市.立券.挂匾.入宅.移徙.安门.栽种.动土.求医.治病.会亲友.起基.修造.造屋.安葬.",
		"j": "作灶.经络.安床.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d1225": {
		"y": "嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.",
		"j": "斋醮.伐木.作梁.安葬.行丧.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d1101": {
		"y": "祭祀.冠笄.移徙.会亲友.纳财.理发.捕捉.",
		"j": "嫁娶.开市.开池.作厕.破土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d1102": {
		"y": "祭祀.祈福.求嗣.斋醮.开光.出行.嫁娶.求医.治病.动土.破土.入学.起基.扫舍.竖柱.上梁.开仓.出货财.置产.栽种.牧养.开生坟.谢土.立碑.",
		"j": "安门.安床.裁衣.入宅.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d1103": {
		"y": "嫁娶.裁衣.冠笄.合帐.祭祀.出行.安床.移徙.塞穴.入殓.破土.移柩.安葬.",
		"j": "开市.出行.栽种.置产.词讼.安门.掘井.开光.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d1104": {
		"y": "祭祀.造车器.出行.修造.上梁.造屋.安门.安床.造畜椆栖.教牛马.",
		"j": "出货财.开仓.动土.破土.安葬.行丧.伐木.开渠.栽种.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d1106": {
		"y": "纳采.订盟.开市.交易.立券.会亲友.纳畜.牧养.问名.移徙.解除.作厕.入学.起基.安床.开仓.出货财.安葬.启攒.入殓.除服.成服.",
		"j": "入宅.上梁.斋醮.出火.谢土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d1107": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d1109": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服.",
		"j": "",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d1110": {
		"y": "开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.",
		"j": "嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1111": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d1112": {
		"y": "嫁娶.祭祀.开光.出火.出行.拆卸.修造.动土.解除.开市.交易.立券.挂匾.纳财.入宅.移徙.安床.栽种.纳畜.",
		"j": "探病.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d1113": {
		"y": "祭祀.祈福.求嗣.开光.解除.理发.会亲友.栽种.纳畜.牧养.安葬.修坟.立碑.启攒.",
		"j": "入宅.作灶.词讼.移徙.出行.赴任.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d1114": {
		"y": "祭祀.沐浴.结网.移柩.入殓.除服.成服.",
		"j": "安床.开市.交易.出货财.安葬.修坟.嫁娶.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d1116": {
		"y": "安床.祭祀.开池.补垣.入殓.移柩.破土.启攒.",
		"j": "入宅.移徙.嫁娶.掘井.作灶.出火.进人口.开市.开光.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d1117": {
		"y": "祭祀.沐浴.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d1118": {
		"y": "嫁娶.开光.出行.解除.出火.拆卸.修造.进人口.动土.入宅.移徙.栽种.纳畜.掘井.安葬.除服.成服.",
		"j": "置产.安床.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d1119": {
		"y": "开光.裁衣.安门.会亲友.安床.结网.理发.",
		"j": "嫁娶.冠笄.出行.祈福.安葬.伐木.入宅.移徙.出火.栽种.动土.上梁.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1121": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.开市.交易.立券.挂匾.伐木.入宅.移徙.安床.安葬.",
		"j": "栽种.掘井.置产.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d1122": {
		"y": "祭祀.理发.针灸.解除.进人口.整手足甲.",
		"j": "嫁娶.动土.造船.开池.掘井.出行.修造.入宅.上梁.移徙.安葬.破土.作灶.开市.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d1123": {
		"y": "破屋.坏垣.求医.治病.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d1124": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.雕刻.移徙.开市.入宅.出行.动土.会亲友.入学.修造.动土.起基.安门.安床.造庙.解除.纳财.开池.造畜椆栖.牧养.牧养.",
		"j": "上梁.开仓.出货财.造屋.造船.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1127": {
		"y": "嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.开光.出行.解除.动土.开市.交易.立券.挂匾.拆卸.破土.",
		"j": "伐木.上梁.修造.入殓.理发.会亲友.入宅.安门.安葬.作灶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d1129": {
		"y": "解除.修饰垣墙.冠笄.出行.余事勿取.",
		"j": "开市.动土.破土.嫁娶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d1201": {
		"y": "祭祀.塑绘.理发.会亲友.牧养.开池.造畜椆栖.畋猎.结网.",
		"j": "祈福.谢土.安葬.上梁.作灶.开市.嫁娶.出行.入宅.动土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d1202": {
		"y": "出行.纳财.开市.交易.立券.动土.移徙.入宅.裁衣.会亲友.拆卸.进人口.安香.经络.出货财.修饰垣墙.平治道涂.",
		"j": "造庙.谢土.作灶.作梁.伐木.安葬.行丧.修坟.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d1203": {
		"y": "嫁娶.纳采.订盟.祭祀.斋醮.开光.安香.出火.出行.出火.拆卸.动土.祈福.进人口.纳财.交易.立券.移徙.安床.修造.安葬.除服.成服.",
		"j": "置产.掘井.词讼.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d1204": {
		"y": "嫁娶.纳采.订盟.祭祀.开光.出行.解除.伐木.出火.入宅.移徙.拆卸.修造.栽种.安葬.入殓.",
		"j": "破土.动土.安门.作灶.开市.交易.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d1205": {
		"y": "祭祀.解除.破屋.坏垣.求医.治病.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d1206": {
		"y": "祭祀.扫舍.破土.安葬.除服.成服.启攒.移柩.入殓.立碑.余事勿取.",
		"j": "祭祀.嫁娶.入宅.修造.动土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d1207": {
		"y": "祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.",
		"j": "造桥.安门.理发.造庙.栽种.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d1208": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d1209": {
		"y": "沐浴.理发.扫舍.",
		"j": "伐木.纳畜.上梁.入宅.作灶.造畜椆栖.嫁娶.安葬.作梁.造船.安门.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d1210": {
		"y": "祭祀.开光.祈福.解除.作梁.动土.安床.掘井.栽种.纳畜.破土.移柩.",
		"j": "嫁娶.出行.赴任.造屋.入殓.入宅.移徙.出火.进人口.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d1211": {
		"y": "诸事不宜.作梁.修造.动土.安门.作灶.塞穴.开池.作厕.筑堤.补垣.栽种.",
		"j": "嫁娶.祈福.掘井.行丧.安葬.安床.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d1212": {
		"y": "安葬.启攒.移柩.入殓.除服.成服.",
		"j": "余事勿取.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d1213": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.",
		"j": "作灶.塑绘.行丧.词讼.伐木.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d1214": {
		"y": "理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.",
		"j": "入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d1215": {
		"y": "祭祀.修饰垣墙.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1216": {
		"y": "入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.",
		"j": "嫁娶.开市.作灶.置产.作梁.伐木.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d1217": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d1218": {
		"y": "破屋.坏垣.祭祀.沐浴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d1219": {
		"y": "安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.",
		"j": "安门.栽种.作灶.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d1220": {
		"y": "解除.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d1221": {
		"y": "祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.",
		"j": "伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d1222": {
		"y": "祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.",
		"j": "嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d1223": {
		"y": "沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓硙.筑堤.作厕.断蚁.",
		"j": "移徙.入宅.嫁娶.祈福.开光.掘井.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d1224": {
		"y": "交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.",
		"j": "斋醮.入宅.修造.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d1226": {
		"y": "纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.",
		"j": "嫁娶.动土.破土.祈福.出火.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d1227": {
		"y": "祭祀.平治道涂.除服.成服.安葬.余事勿取.",
		"j": "嫁娶.入宅.纳采.订盟.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d1228": {
		"y": "纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.",
		"j": "开市.造庙.置产.掘井.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d1229": {
		"y": "嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.",
		"j": "开生坟.破土.行丧.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1230": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "移徙.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d1231": {
		"y": "安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.",
		"j": "作灶.安门.造桥.开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	}
};


},{}],200:[function(require,module,exports){
module.exports =  {
	"d0101": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.",
		"j": "伐木.作梁.动土.安床.破土.栽种.造桥.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0201": {
		"y": "出行.起基.安床.纳财.交易.立券.嫁娶.栽种.入殓.移柩.安葬.",
		"j": "挂匾.入宅.上梁.祈福.词讼.作梁.作灶.开池.安门.动土.破土.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0102": {
		"y": "祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.",
		"j": "会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0103": {
		"y": "纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.",
		"j": "嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0104": {
		"y": "入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.",
		"j": "嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0105": {
		"y": "祭祀.祈福.斋醮.沐浴.安床.安机械.造车器.入殓.移柩.启攒.安葬.立碑.合帐.经络.交易.",
		"j": "作灶.掘井.嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0106": {
		"y": "解除.扫舍.祭祀.教牛马.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0107": {
		"y": "开市.交易.立券.挂匾.开光.解除.伐木.作梁.出火.入宅.移徙.安床.拆卸.动土.上梁.栽种.纳畜.安葬.",
		"j": "嫁娶.祭祀.出行.置产.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0108": {
		"y": "开市.交易.立券.纳财.开池.补垣.嫁娶.纳采.纳畜.取渔.安床.",
		"j": "修造.上梁.入宅.祈福.探病.掘井.动土.安门.安葬.作灶.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0109": {
		"y": "祭祀.解除.修饰垣墙.平治道涂.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0110": {
		"y": "嫁娶.祭祀.祈福.求嗣.动土.会亲友.起基.造仓.纳畜.牧养.作厕.进人口.",
		"j": "掘井.安葬.栽种.出行.作灶.开市.入宅.安门.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0111": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.入宅.移徙.安床.修造.动土.进人口.",
		"j": "掘井.安葬.栽种.出行.作灶.开市.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0112": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0113": {
		"y": "嫁娶.开市.交易.立券.开光.出行.出火.拆卸.修造.入宅.移徙.动土.破土.移柩.安葬.启攒.除服.成服.",
		"j": "安床.伐木.祈福.纳畜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0114": {
		"y": "祭祀.入殓.破土.除服.成服.启攒.安葬.修坟.立碑.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0115": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0116": {
		"y": "开市.交易.立券.纳财.纳畜.造畜椆栖.入宅.移徙.安床.开光.祈福.求嗣.动土.",
		"j": "嫁娶.栽种.安葬.理发.造庙.作灶.入殓.行丧.造桥.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0117": {
		"y": "安床.裁衣.交易.立券.入殓.移柩.安葬.除服.成服.",
		"j": "置产.嫁娶.出行.开光.栽种.动土.破土.入宅.治病.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0118": {
		"y": "祭祀.解除.造畜椆栖.教牛马.针灸.余事勿取.",
		"j": "嫁娶.动土.开池.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0119": {
		"y": "沐浴.塑绘.开光.纳采.订盟.开市.交易.立券.纳财.起基.动土.定磉.放水.安葬.破土.启攒.修坟.立碑.移柩.",
		"j": "入宅.安门.祭祀.谢土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0120": {
		"y": "嫁娶.出行.理发.安床.启攒.安葬.修坟.开市.交易.立券.纳财.开池.牧养.",
		"j": "掘井.祈福.谢土.动土.入宅.上梁.修造.作灶.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0121": {
		"y": "解除.平治道涂.余事勿取.",
		"j": "移徙.入宅.掘井.造庙.栽种.针灸.治病.开池.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0122": {
		"y": "嫁娶.祭祀.开光.伐木.出火.拆卸.入宅.移徙.修造.动土.上梁.安床.纳畜.",
		"j": "开市.行丧.栽种.出行.出货财.安葬.置产.词讼.治病.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0123": {
		"y": "嫁娶.纳采.订盟.入宅.移徙.安床.祭祀.祈福.开光.出行.解除.出火.拆卸.动土.纳畜.谢土.安葬.破土.",
		"j": "伐木.开市.交易.上梁.作灶.安门.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0124": {
		"y": "祭祀.破屋.坏垣.解除.余事勿取.",
		"j": "开市.动土.破土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0125": {
		"y": "嫁娶.纳采.订盟.开光.安香.出火.纳财.开市.交易.立券.裁衣.造屋.起基.修造.动土.安门.移徙.入宅.栽种.牧养.畋猎.掘井.开池.安葬.破土.入殓.除服.成服.立碑.",
		"j": "祈福.造庙.祭祀.安床.谢土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0126": {
		"y": "祭祀.斋醮.入殓.破土.启攒.安葬.修坟.立碑.除服.成服.",
		"j": "嫁娶.入宅.作灶.纳采.订盟.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0127": {
		"y": "祭祀.斋醮.纳财.捕捉.畋猎.",
		"j": "嫁娶.开市.入宅.安床.破土.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0128": {
		"y": "纳采.订盟.祭祀.祈福.求嗣.斋醮.沐浴.进人口.会亲友.入学.治病.安碓硙.掘井.开池.纳畜.牧养.造畜椆栖.",
		"j": "嫁娶.合帐.入宅.行丧.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0129": {
		"y": "祭祀.祈福.求嗣.沐浴.问名.交易.纳财.入殓.移柩.安葬.修坟.立碑.谢土.造畜椆栖.教牛马.",
		"j": "入宅.置产.嫁娶.动土.栽种.开市.开光.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0130": {
		"y": "祭祀.教牛马.造畜椆栖.祭祀.会亲友.解除.余事勿取.",
		"j": "嫁娶.入宅.出行.动土.破土.安葬.行丧.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0131": {
		"y": "嫁娶.开光.解除.出火.拆卸.修造.进人口.入宅.移徙.安床.栽种.入殓.修坟.动土.除服.成服.",
		"j": "作灶.安葬.祭祀.开市.纳采.订盟.纳畜.谢土.出行.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0210": {
		"y": "嫁娶.开光.祈福.求嗣.解除.动土.安床.栽种.开池.掘井.祭祀.破土.启攒.",
		"j": "入宅.作灶.伐木.安葬.出火.出行.纳畜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0225": {
		"y": "祭祀.祈福.求嗣.开光.嫁娶.出行.解除.伐木.拆卸.进人口.安床.动土.起基.上梁.栽种.纳畜.破土.谢土.启攒.安葬.",
		"j": "移徙.入宅.出火.作灶.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0215": {
		"y": "修饰垣墙.平治道涂.祭祀.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0220": {
		"y": "祭祀.塞穴.结网.破土.谢土.安葬.移柩.除服.成服.余事勿取.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0227": {
		"y": "作灶.解除.平治道涂.余事勿取.",
		"j": "祭祀.祈福.安葬.安门.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0223": {
		"y": "祭祀.祈福.求嗣.纳畜.入殓.启攒.谢土.除服.成服.",
		"j": "栽种.开光.出行.针灸.嫁娶.入宅.动土.破土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0330": {
		"y": "纳财.交易.立券.栽种.捕捉.结网.取渔.进人口.教牛马.理发.",
		"j": "入宅.造屋.竖柱.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0202": {
		"y": "平治道涂.余事勿取.",
		"j": "开光.嫁娶.开仓.出货财.造船.安葬.探病.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0203": {
		"y": "嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产.",
		"j": "开市.出行.安葬.行丧.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0204": {
		"y": "解除.沐浴.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0205": {
		"y": "嫁娶.祭祀.祈福.出行.解除.出火.拆卸.动土.入宅.移徙.安床.上梁.栽种.纳畜.破土.启攒.安葬.",
		"j": "开市.立券.理发.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0206": {
		"y": "祭祀.解除.治病.破屋.坏垣.扫舍.",
		"j": "余事勿取.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0207": {
		"y": "祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.入宅.移徙.上梁.挂匾.开池.入殓.安葬.破土.启攒.",
		"j": "嫁娶.作灶.安床.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0208": {
		"y": "结网.入殓.除服.成服.移柩.安葬.破土.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0209": {
		"y": "移徙.祭祀.开光.祈福.出行.解除.进人口.雇庸.安床.动土.起基.上梁.安门.解除.",
		"j": "嫁娶.安葬.破土.作梁.纳畜.牧养.行丧.作灶.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0211": {
		"y": "祭祀.合帐.裁衣.经络.伐木.作梁.安床.作灶.入殓.安葬.启攒.移柩.",
		"j": "词讼.出火.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0212": {
		"y": "裁衣.伐木.作梁.纳财.交易.立券.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0213": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.入殓.破土.安葬.启攒.除服.成服.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0214": {
		"y": "嫁娶.冠笄.纳采.出行.会亲友.上梁.安机械.安床.牧养.畋猎.祭祀.祈福.开光.修造.安门.造屋.起基.",
		"j": "入宅.作灶.治病.安葬.移徙.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0216": {
		"y": "造车器.纳采.订盟.祭祀.祈福.求嗣.移徙.出行.开市.出火.入宅.立券.交易.入宅.安门.安床.安葬.谢土.",
		"j": "开光.造屋.动土.作灶.栽种.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0217": {
		"y": "动土.入殓.嫁娶.移柩.安葬.破土.",
		"j": "开市.作灶.安床.入宅.上梁.裁衣.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0218": {
		"y": "求医.治病.破屋.坏垣.余事勿取.",
		"j": "开市.嫁娶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0219": {
		"y": "祭祀.斋醮.沐浴.开生坟.除服.成服.移柩.入殓.破土.安葬.合寿木.",
		"j": "开市.嫁娶.安床.会亲友.入宅.作灶.上梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0221": {
		"y": "祭祀.沐浴.理发.作灶.结网.栽种.",
		"j": "嫁娶.词讼.行丧.安葬.牧养.伐木.作梁.开市.纳畜.造畜椆栖.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0222": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出行.开市.交易.立券.动土.纳财.掘井.会亲友.",
		"j": "入宅.安葬.伐木.作梁.纳畜.造畜椆栖.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0224": {
		"y": "开光.解除.伐木.竖柱.上梁.交易.立券.纳畜.入殓.移柩.安葬.",
		"j": "入宅.出行.移徙.祭祀.嫁娶.动土.破土.作灶.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0226": {
		"y": "会亲友.冠笄.安床.会亲友.安机械.祭祀.祈福.求嗣.经络.",
		"j": "嫁娶.开市.动土.作灶.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0228": {
		"y": "嫁娶.祭祀.冠笄.修饰垣墙.置产.",
		"j": "经络.探病.造屋.作灶.动土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0319": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出火.入宅.移徙.安床.拆卸.动土.破土.谢土.",
		"j": "合帐.开市.安葬.入殓.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0328": {
		"y": "纳采.交易.立券.安床.安机械.安葬.移柩.动土.破土.立碑.",
		"j": "嫁娶.开光.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0318": {
		"y": "理发.冠笄.嫁娶.进人口.",
		"j": "置产.伐木.纳畜.造畜椆栖.安葬.破土.作梁.作灶.开生坟.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0308": {
		"y": "订盟.纳采.裁衣.合帐.冠笄.安机械.拆卸.安床.入殓.除服.成服.移柩.破土.启攒.安葬.修坟.立碑.经络.交易.立券.纳财.筑堤.造仓.补垣.塞穴.纳畜.伐木.架马.",
		"j": "祭祀.开光.嫁娶.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0320": {
		"y": "安床.伐木.拆卸.修造.动土.上梁.立券.交易.栽种.纳畜.牧养.入殓.安葬.",
		"j": "嫁娶.祭祀.开光.出行.出火.移徙.入宅.安门.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0331": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.破土.出火.安门.安床.上梁.立碑.移柩.",
		"j": "开市.交易.合帐.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0321": {
		"y": "祭祀.祈福.求嗣.斋醮.嫁娶.冠笄.出行.开市.交易.会亲友.教牛马.除服.成服.启攒.安葬.移柩.",
		"j": "祈福.动土.移徙.入宅.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0310": {
		"y": "塞穴.诸事不宜.",
		"j": "安门.作灶.安葬.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0428": {
		"y": "嫁娶.祭祀.祈福.求嗣.斋醮.开光.出火.移徙.入宅.竖柱.上梁.会亲友.造屋.起基.治病.治病.安门.造车器.掘井.开池.",
		"j": "纳采.出行.修坟.安葬.开市.立券.作灶.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0301": {
		"y": "纳采.嫁娶.祭祀.祈福.出行.修造.动土.移徙.入宅.安葬.破土.",
		"j": "开市.入宅.斋醮.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0302": {
		"y": "祭祀.沐浴.解除.理发.扫舍.破屋.坏垣.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0303": {
		"y": "纳采.订盟.祭祀.祈福.安香.出火.修造.出行.开市.移徙.入宅.动土.安葬.破土.",
		"j": "安床.作灶.造船.会亲友.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0304": {
		"y": "塞穴.结网.取渔.畋猎.",
		"j": "嫁娶.安门.移徙.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0305": {
		"y": "纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅.",
		"j": "嫁娶.开市.安葬.破土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0306": {
		"y": "裁衣.合帐.冠笄.嫁娶.纳婿.安床.入殓.纳财.",
		"j": "作灶.开市.安葬.作梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0307": {
		"y": "祭祀.订盟.纳采.修造.动土.祈福.塑绘.斋醮.沐浴.拆卸.起基.入宅.安香.造庙.移柩.谢土.除服.成服.入学.习艺.出行.竖柱.上梁.掘井.求嗣.解除.伐木.",
		"j": "作灶.安葬.开市.造屋.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0309": {
		"y": "祭祀.出行.嫁娶.冠笄.安床.入殓.移柩.安葬.",
		"j": "掘井.动土.作灶.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0311": {
		"y": "开光.塑绘.求嗣.纳采.裁衣.合帐.冠笄.安机械.作梁.开柱眼.安门.安床.造仓.祭祀.会亲友.祈福.经络.纳财.开市.立券.交易.入学.求嗣.理发.架马.",
		"j": "出行.斋醮.安葬.嫁娶.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0312": {
		"y": "祭祀.嫁娶.纳婿.安葬.",
		"j": "栽种.造屋.作灶.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0313": {
		"y": "祭祀.会亲友.订盟.裁衣.合帐.安机械.拆卸.上梁.安门.入殓.除服.成服.移柩.启攒.安葬.立碑.开光.塑绘.入学.出行.起基.定磉.放水.移徙.入宅.竖柱.立券.经络.",
		"j": "伐木.作梁.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0314": {
		"y": "祭祀.开光.塑绘.祈福.斋醮.裁衣.合帐.冠笄.嫁娶.拆卸.动土.移徙.入宅.入殓.移柩.安葬.谢土.求嗣.入学.理发.伐木.架马.作梁.出火.修造.起基.定磉.放水.赴任.",
		"j": "入宅.安门.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0315": {
		"y": "祭祀.治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0316": {
		"y": "嫁娶.祭祀.出行.冠笄.立券.交易.进人口.开市.移徙.修造.动土.安床.入殓.移柩.破土.",
		"j": "开光.作灶.斋醮.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0317": {
		"y": "开市.立券.交易.挂匾.祭祀.祈福.开光.入宅.移徙.安床.拆卸.动土.上梁.进人口.",
		"j": "嫁娶.行丧.架马.作梁.理发.牧养.安葬.纳畜.伐木.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0322": {
		"y": "塞穴.整手足甲.解除.捕捉.畋猎.结网.余事勿取.诸事不宜.",
		"j": "嫁娶.作灶.掘井.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0323": {
		"y": "纳财.开市.立券.交易.开光.安床.上梁.造屋.修造.起基.",
		"j": "动土.破土.安葬.行丧.赴任.出行.嫁娶.入宅.移徙.谢土.词讼.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0324": {
		"y": "祭祀.祈福.嫁娶.冠笄.修饰垣墙.置产.平治道涂.",
		"j": "开仓.出货财.造屋.作灶.开市.交易.立券.栽种.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0325": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出行.出火.进人口.入宅.移徙.安床.拆卸.修造.安门.挂匾.纳财.扫舍.",
		"j": "动土.伐木.安葬.行丧.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0326": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.出行.出火.入宅.移徙.解除.栽种.伐木.破土.谢土.安葬.",
		"j": "开市.交易.作灶.纳财.上梁.安床.造屋.造船.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0327": {
		"y": "破屋.坏垣.求医.治病.余事勿取.",
		"j": "开光.嫁娶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0329": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.开光.理发.经络.解除.治病.治病.立碑.栽种.牧养.掘井.开池.",
		"j": "嫁娶.定磉.合寿木.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0426": {
		"y": "祭祀.出行.修造.动土.合帐.造畜椆栖.安床.移徙.入殓.移柩.破土.启攒.安葬.开生坟.合寿木.补垣.塞穴.",
		"j": "移徙.入宅.作灶.理发.开光.安门.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0416": {
		"y": "祭祀.祈福.求嗣.开光.纳采.订盟.解除.栽种.纳畜.牧养.扫舍.进人口.",
		"j": "修坟.造桥.作灶.出行.安葬.造屋.入宅.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0425": {
		"y": "安香.出火.纳采.订盟.嫁娶.开市.立券.交易.挂匾.开光.出行.解除.安床.栽种.置产.拆卸.修造.动土.",
		"j": "作灶.安葬.祭祀.入殓.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0422": {
		"y": "沐浴.塞穴.畋猎.结网.取渔.扫舍.余事勿取.",
		"j": "祈福.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0406": {
		"y": "祭祀.平治道涂.解除.修饰垣墙.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0412": {
		"y": "解除.破屋.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0526": {
		"y": "开市.交易.立券.挂匾.祭祀.祈福.斋醮.出行.开市.交易.立券.造屋.起基.修造.动土.定磉.安床.安机械.安葬.破土.启攒.除服.成服.立碑.",
		"j": "作灶.嫁娶.移徙.入宅.理发.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0401": {
		"y": "冠笄.立券.交易.修造.动土.安机械.入殓.安葬.破土.",
		"j": "嫁娶.祈福.出火.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0402": {
		"y": "祭祀.会亲友.出行.立券.交易.冠笄.纳财.",
		"j": "嫁娶.动土.掘井.起基.定磉.破土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0403": {
		"y": "祭祀.沐浴.解除.扫舍.塞穴.牧养.",
		"j": "嫁娶.安葬.行丧.安门.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0404": {
		"y": "纳财.开市.交易.立券.开光.针灸.会亲友.理发.安床.造仓.结网.",
		"j": "移徙.入宅.栽种.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0405": {
		"y": "纳采.嫁娶.开光.出行.理发.会亲友.开市.安床.栽种.牧养.入殓.移柩.启攒.",
		"j": "谢土.祈福.上梁.作灶.斋醮.修造.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0407": {
		"y": "祭祀.祈福.开光.解除.动土.纳财.交易.纳畜.扫舍.",
		"j": "进人口.出行.嫁娶.置产.安床.赴任.安葬.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0408": {
		"y": "祭祀.祈福.求嗣.开光.解除.出火.拆卸.入宅.安床.修造.安门.纳畜.启攒.安葬.",
		"j": "动土.破土.纳财.掘井.挂匾.开市.伐木.交易.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0409": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0410": {
		"y": "塞穴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0411": {
		"y": "祭祀.祈福.求嗣.开光.解除.纳采.冠笄.出火.拆卸.进人口.安床.动土.上梁.造庙.掘井.开池.入殓.移柩.安葬.破土.",
		"j": "",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0413": {
		"y": "嫁娶.祈福.求嗣.开光.出行.解除.拆卸.出火.开市.立券.交易.入宅.移徙.安床.动土.破土.谢土.",
		"j": "祭祀.入殓.安葬.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0414": {
		"y": "祭祀.裁衣.冠笄.安床.交易.立券.开池.补垣.塞穴.入殓.破土.启攒.安葬.谢土.除服.成服.",
		"j": "嫁娶.掘井.探病.开市.开光.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0415": {
		"y": "祭祀.出行.教牛马.扫舍.余事勿取.",
		"j": "开光.伐木.安葬.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0417": {
		"y": "开光.出行.交易.塞穴.嫁娶.理发.开市.安床.",
		"j": "祈福.出火.置产.动土.破土.安葬.修造.上梁.置产.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0418": {
		"y": "祭祀.作灶.畋猎.结网.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.安床.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0419": {
		"y": "沐浴.祭祀.解除.安葬.破土.谢土.移柩.余事勿取.",
		"j": "斋醮.开光.嫁娶.入宅.上梁.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0420": {
		"y": "祭祀.解除.入殓.移柩.启攒.安葬.整手足甲.捕捉.畋猎.取渔.除服.成服.扫舍.谢土.斋醮.",
		"j": "动土.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0421": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.求医.治病.余事勿取.",
		"j": "嫁娶.开市.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0423": {
		"y": "开市.交易.立券.挂匾.祭祀.开光.祈福.求嗣.安床.解除.修造.安葬.",
		"j": "纳采.问名.订盟.嫁娶.入宅.开仓.出火.动土.破土.纳畜.伐木.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0424": {
		"y": "祭祀.修门.取渔.纳财.纳畜.余事勿取.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0427": {
		"y": "祭祀.修饰垣墙.余事勿取.",
		"j": "开光.修造.动土.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0429": {
		"y": "祭祀.塑绘.开光.纳采.嫁娶.开市.出行.会亲友.安床.结网.除服.成服.启攒.安葬.移柩.",
		"j": "祈福.入宅.造屋.动土.破土.探病.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0430": {
		"y": "祭祀.作灶.平治道涂.余事勿取.",
		"j": "安床.入宅.安碓硙.栽种.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0523": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.解除.出行.出火.入宅.移徙.栽种.纳畜.牧养.动土.破土.入殓.安葬.",
		"j": "作灶.安床.开仓.造屋.动土.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0623": {
		"y": "祭祀.斋醮.塑绘.开光.出行.修造.动土.造畜椆栖.安床.放水.掘井.开池.作厕.结网.破土.",
		"j": "出火.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0501": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.纳畜.入殓.破土.安葬.",
		"j": "移徙.入宅.嫁娶.出行.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0502": {
		"y": "纳采.祭祀.祈福.求嗣.斋醮.出行.起基.造屋.定磉.安门.入殓.安葬.",
		"j": "嫁娶.开市.纳财.出火.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0503": {
		"y": "祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.",
		"j": "祈福.斋醮.开市.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0504": {
		"y": "沐浴.捕捉.畋猎.结网.取渔.",
		"j": "祭祀.嫁娶.入宅.作灶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0505": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.动土.上梁.出火.进人口.入宅.移徙.安床.栽种.纳畜.牧养.竖柱.安门.修造.解除.会亲友.",
		"j": "",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0506": {
		"y": "开市.交易.立券.祭祀.祈福.开光.伐木.进人口.安床.拆卸.修造.动土.栽种.破土.移柩.安葬.",
		"j": "入宅.移徙.理发.出火.嫁娶.出行.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0507": {
		"y": "结网.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0508": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.开市.交易.立券.安床.出行.拆卸.",
		"j": "纳畜.入宅.移徙.安葬.探病.伐木.上梁.安门.入殓.动土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0509": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.动土.入宅.移徙.安床.作灶.塞穴.栽种.破土.安葬.",
		"j": "开光.掘井.开仓.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0510": {
		"y": "解除.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0511": {
		"y": "开市.交易.立券.挂匾.开光.出行.拆卸.进人口.入宅.移柩.动土.安门.上梁.栽种.破土.修坟.安葬.",
		"j": "嫁娶.安床.探病.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0512": {
		"y": "进人口.会亲友.",
		"j": "塞穴.上梁.动土.伐木.安葬.词讼.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0513": {
		"y": "沐浴.平治道涂.扫舍.入殓.破土.安葬.除服.成服.",
		"j": "嫁娶.移徙.伐木.作梁.安床.祭祀.祈福.造屋.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0514": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.解除.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.安门.上梁.安葬.破土.谢土.",
		"j": "",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0515": {
		"y": "祭祀.祈福.求嗣.开光.解除.合帐.冠笄.伐木.架马.作梁.修造.进人口.嫁娶.裁衣.合帐.安床.动土.起基.上梁.竖柱.放水.会亲友.",
		"j": "",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0516": {
		"y": "破屋.坏垣.沐浴.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0517": {
		"y": "纳采.订盟.嫁娶.造车器.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.挂匾.入宅.移徙.安床.栽种.入殓.破土.安葬.除服.成服.",
		"j": "开市.立券.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0518": {
		"y": "开市.交易.立券.祭祀.祈福.开光.动土.安床.出行.栽种.纳畜.牧养.竖柱.上梁.解除.破土.",
		"j": "嫁娶.掘井.入宅.移徙.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0519": {
		"y": "解除.出行.纳采.冠笄.竖柱.上梁.移徙.作灶.进人口.入宅.纳畜.牧养.",
		"j": "祭祀.伐木.架马.安床.修造.动土.安葬.修坟.破土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0520": {
		"y": "祭祀.祈福.求嗣.开光.出行.开市.交易.立券.栽种.安床.纳畜.移徙.起基.动土.定磉.造仓.置产.破土.启攒.修坟.",
		"j": "入宅.移徙.修造.安门.伐木.入殓.安葬.造屋.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0521": {
		"y": "嫁娶.交易.立券.作厕.补垣.塞穴.畋猎.取渔.开生坟.",
		"j": "安床.开渠.上梁.修造.开市.开光.入宅.移徙.安床.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0522": {
		"y": "塞穴.断蚁.结网.畋猎.余事勿取.",
		"j": "嫁娶.安葬.入宅.出行.动土.词讼.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0524": {
		"y": "开光.纳采.裁衣.冠笄.安床.作灶.进人口.造仓.塞穴.",
		"j": "嫁娶.栽种.修造.动土.出行.伐木.作梁.安葬.谢土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0525": {
		"y": "纳采.嫁娶.裁衣.理发.出行.修造.动土.进人口.开市.交易.立券.挂匾.移徙.上梁.栽种.纳畜.",
		"j": "伐木.安葬.安床.祭祀.祈福.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0527": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.修造.进人口.入宅.移徙.安床.解除.挂匾.栽种.破土.谢土.入殓.移柩.安葬.",
		"j": "开市.立券.造船.合寿木.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0528": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "开光.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0529": {
		"y": "订盟.纳采.嫁娶.解除.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.入宅.移徙.安床.栽种.纳畜.动土.破土.谢土.安葬.修坟.",
		"j": "作灶.开市.经络.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0530": {
		"y": "祭祀.祈福.求嗣.开光.订盟.纳采.解除.动土.起基.进人口.开市.交易.立券.纳财.造仓.开池.栽种.纳畜.破土.安葬.",
		"j": "安床.上梁.裁衣.入宅.嫁娶.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0531": {
		"y": "祭祀.结网.捕捉.余事勿取.",
		"j": "探病.嫁娶.开市.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0626": {
		"y": "嫁娶.纳采.订盟.冠笄.造车器.祭祀.开光.祈福.求嗣.出行.解除.伐木.出火.入宅.拆卸.修造.动土.上梁.安床.栽种.破土.",
		"j": "行丧.置产.入宅.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0613": {
		"y": "祭祀.作灶.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0603": {
		"y": "祭祀.解除.断蚁.会亲友.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0628": {
		"y": "出行.教牛马.割蜜.余事勿取.",
		"j": "斋醮.造屋.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0618": {
		"y": "嫁娶.开光.祭祀.祈福.出行.解除.移徙.入宅.开市.纳财.起基.修造.竖柱.上梁.造屋.作灶.出火.安香.补垣.塞穴.拆卸.放水.扫舍.造仓.造船.栽种.安葬.",
		"j": "纳采.订盟.安床.谢土.破土.动土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0630": {
		"y": "安机械.祭祀.祈福.求嗣.沐浴.解除.纳采.开市.修造.竖柱.上梁.开柱眼.安碓硙.归岫.补垣.塞穴.拆卸.放水.出火.扫舍.开生坟.合寿木.安葬.谢土.启攒.除服.成服.",
		"j": "嫁娶.安床.作灶.动土.破土.造船.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0726": {
		"y": "祭祀.嫁娶.畋猎.结网.",
		"j": "动土.破土.治病.开渠.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0601": {
		"y": "祭祀.祈福.求嗣.开光.纳采.订盟.嫁娶.出行.动土.破土.会亲友.开市.交易.立券.习艺.拆卸.起基.安碓硙.放水.开池.造仓.开渠.栽种.谢土.启攒.修坟.立碑.",
		"j": "入宅.安门.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0602": {
		"y": "嫁娶.冠笄.祭祀.出行.移徙.入宅.作灶.造车器.补垣.塞穴.作厕.破土.启攒.除服.成服.入殓.",
		"j": "入宅.造屋.造桥.安门.安葬.上梁.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0604": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.治病.造车器.修造.动土.移徙.入宅.",
		"j": "开市.出行.安床.作灶.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0605": {
		"y": "嫁娶.纳采.订盟.会亲友.安机械.结网.冠笄.祭祀.求嗣.进人口.经络.",
		"j": "开市.作灶.动土.行丧.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0606": {
		"y": "开光.求嗣.出行.解除.伐木.出火.拆卸.修造.上梁.起基.入宅.移徙.开市.交易.立券.栽种.牧养.入殓.安葬.除服.成服.",
		"j": "置产.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0607": {
		"y": "祭祀.理发.修饰垣墙.平治道涂.沐浴.整手足甲.扫舍.",
		"j": "出行.安门.修造.嫁娶.上梁.入宅.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0608": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出行.出火.拆卸.动土.修造.进人口.入宅.移徙.安床.挂匾.交易.立券.栽种.纳畜.入殓.破土.启攒.安葬.",
		"j": "",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0609": {
		"y": "祭祀.祈福.求嗣.开光.出行.伐木.出火.拆卸.修造.动土.起基.安床.入宅.移徙.",
		"j": "嫁娶.开市.交易.行丧.安葬.修坟.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0610": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0611": {
		"y": "开市.交易.立券.纳财.开池.作厕.结网.祭祀.修造.动土.安床.放水.经络.破土.",
		"j": "嫁娶.造桥.词讼.移徙.安门.作灶.栽种.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0612": {
		"y": "开市.交易.立券.纳财.栽种.安床.拆卸.修造.动土.上梁.入殓.安葬.破土.除服.成服.",
		"j": "嫁娶.出火.伐木.祭祀.入宅.移徙.纳畜.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0614": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0615": {
		"y": "修造.动土.起基.安门.安床.栽种.筑堤.补垣.造畜椆栖.",
		"j": "嫁娶.掘井.入宅.移徙.出火.出行.行丧.安葬.开光.理发.进人口.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0616": {
		"y": "祭祀.教牛马.断蚁.余事勿取.",
		"j": "斋醮.移徙.入宅.动土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0617": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.开市.纳财.立券.移徙.出行.修造.动土.起基.定磉.竖柱.拆卸.扫舍.放水.安香.安床.造船.开池.掘井.造畜椆栖.栽种.",
		"j": "行丧.安葬.破土.作灶.伐木.斋醮.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0619": {
		"y": "嫁娶.祭祀.理发.作灶.修饰垣墙.平治道涂.整手足甲.沐浴.冠笄.",
		"j": "破土.出行.栽种.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0620": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.入宅.移徙.安床.交易.立券.挂匾.纳财.入殓.安葬.启攒.除服.成服.",
		"j": "动土.掘井.破土.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0621": {
		"y": "畋猎.捕捉.结网.取渔.祭祀.沐浴.余事勿取.",
		"j": "嫁娶.开市.安葬.启攒.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0622": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "移徙.入宅.开仓.出货财.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0624": {
		"y": "开市.交易.立券.挂匾.开光.解除.拆卸.动土.安床.修造.上梁.置产.栽种.破土.安葬.",
		"j": "作灶.出火.祭祀.嫁娶.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0625": {
		"y": "祭祀.结网.余事勿取.",
		"j": "入宅.出行.掘井.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0627": {
		"y": "嫁娶.合帐.裁衣.冠笄.伐木.上梁.出火.拆卸.移徙.修造.动土.安门.纳财.筑堤.栽种.塞穴.",
		"j": "安床.祈福.出行.安葬.行丧.开光.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0629": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.修造.进人口.入宅.移徙.动土.安床.纳畜.栽种.纳财.交易.立券.挂匾.造畜椆栖.",
		"j": "安葬.开生坟.合寿木.行丧.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0730": {
		"y": "嫁娶.开市.立券.移徙.入宅.安机械.会亲友.经络.安门.安床.挂匾.拆卸.开仓.出货财.开池.栽种.纳畜.牧养.破土.安葬.启攒.移柩.入殓.立碑.",
		"j": "祭祀.祈福.探病.谢土.造桥.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0723": {
		"y": "嫁娶.祭祀.出行.裁衣.冠笄.交易.雕刻.纳财.造畜椆栖.造车器.雕刻.教牛马.",
		"j": "移徙.入宅.栽种.动土.破土.作灶.安葬.行丧.伐木.上梁.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0720": {
		"y": "祭祀.冠笄.作灶.交易.纳财.栽种.结网.纳畜.牧养.进人口.",
		"j": "开渠.造船.安床.安葬.破土.出行.修坟.掘井.开市.开生坟.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0725": {
		"y": "嫁娶.纳采.订盟.造车器.开光.出行.拆卸.起基.安床.除服.成服.开市.交易.立券.栽种.牧养.入殓.移柩.启攒.",
		"j": "上梁.入宅.修造.动土.破土.祭祀.祈福.斋醮.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0825": {
		"y": "安机械.纳采.订盟.祭祀.祈福.求嗣.开光.普渡.出行.出火.拆卸.修造.动土.进人口.开市.交易.立券.移徙.安床.栽种.上梁.纳畜.破土.移柩.安葬.",
		"j": "入宅.嫁娶.掘井.牧养.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0701": {
		"y": "祭祀.沐浴.理发.整手足甲.修饰垣墙.平治道涂.余事勿取.",
		"j": "开市.入宅.出行.修造.词讼.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0702": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.立券.移徙.入宅.动土.破土.安葬.",
		"j": "开光.作灶.造屋.架马.开仓.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0703": {
		"y": "纳采.订盟.冠笄.祭祀.祈福.斋醮.出行.修造.动土.移徙.入宅.安香.出火.拆卸.造屋.起基.竖柱.上梁.定磉.安门.开池.",
		"j": "嫁娶.开市.合寿木.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0704": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "入宅.嫁娶.移徙.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0705": {
		"y": "嫁娶.安机械.交易.出行.祭祀.祈福.求嗣.斋醮.塑绘.开光.合帐.裁衣.放水.开池.掘井.",
		"j": "作灶.理发.造桥.行丧.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0706": {
		"y": "纳采.冠笄.求医.治病.开市.立券.修造.动土.安机械.破土.安葬.",
		"j": "斋醮.祭祀.移徙.入宅.上梁.嫁娶.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0707": {
		"y": "嫁娶.开光.出行.祈福.求嗣.解除.拆卸.动土.修造.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.纳畜.入殓.移柩.安葬.",
		"j": "",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0708": {
		"y": "祭祀.作灶.纳财.栽种.纳畜.进人口.",
		"j": "安葬.经络.修坟.破土.开市.安床.启攒.立碑.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0709": {
		"y": "祭祀.祈福.求嗣.开光.开市.牧养.理发.",
		"j": "嫁娶.出行.安葬.入殓.入宅.作灶.冠笄.上梁.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0710": {
		"y": "祭祀.入殓.破土.除服.成服.移柩.启攒.安葬.谢土.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0711": {
		"y": "祭祀.出行.交易.割蜜.造畜椆栖.",
		"j": "嫁娶.作灶.安葬.动土.词讼.作梁.伐木.掘井.破土.移徙.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0712": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.栽种.纳畜.入殓.启攒.除服.成服.",
		"j": "",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0713": {
		"y": "嫁娶.开光.解除.安床.牧养.理发.开市.入殓.启攒.移柩.安葬.扫舍.",
		"j": "作灶.动土.上梁.栽种.入宅.移徙.修造.祈福.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0714": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0715": {
		"y": "祭祀.祈福.求嗣.开光.伐木.出火.拆卸.入宅.安床.修造.动土.上梁.挂匾.纳畜.",
		"j": "嫁娶.栽种.行丧.理发.修坟.行丧.作灶.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0716": {
		"y": "解除.祭祀.理发.入殓.安葬.破土.",
		"j": "嫁娶.开市.出火.作灶.置产.斋醮.入宅.移徙.安门.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0717": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0718": {
		"y": "开市.交易.立券.纳财.动土.开光.出行.嫁娶.纳采.订盟.出行.纳财.入学.开仓.出货财.纳畜.牧养.栽种.破土.启攒.安葬.立碑.",
		"j": "入宅.移徙.作灶.祭祀.谢土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0719": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.入殓.破土.谢土.安葬.",
		"j": "掘井.伐木.纳畜.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0721": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.纳采.裁衣.冠笄.开光.安床.作梁.修造.动土.作灶.起基.上梁.造屋.纳畜.牧养.",
		"j": "移徙.栽种.出行.行丧.破土.安葬.词讼.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0722": {
		"y": "经络.祭祀.沐浴.补垣.塞穴.除服.成服.移柩.入殓.启攒.立碑.",
		"j": "开光.治病.嫁娶.掘井.破土.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0724": {
		"y": "修造.动土.安机械.祭祀.沐浴.解除.拆卸.治病.作灶.造屋.起基.开池.扫舍.造畜椆栖.开生坟.合寿木.安葬.破土.启攒.移柩.入殓.立碑.",
		"j": "开市.入宅.出行.安床.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0727": {
		"y": "纳采.订盟.会亲友.入学.祭祀.祈福.求嗣.开光.出行.解除.理发.动土.起基.开市.交易.立券.纳财.造仓.栽种.纳畜.牧养.",
		"j": "嫁娶.作灶.出火.置产.嫁娶.入宅.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0728": {
		"y": "祭祀.祈福.解除.整手足甲.安床.沐浴.入殓.移柩.破土.启攒.安葬.谢土.",
		"j": "嫁娶.斋醮.开市.出火.入宅.移徙.出行.作灶.安门.伐木.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0729": {
		"y": "破屋.坏垣.解除.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0731": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.斋醮.开光.会亲友.求医.治病.造屋.起基.竖柱.上梁.安门.安碓硙.筑堤.开池.破土.安葬.除服.成服.",
		"j": "入宅.开市.掘井.词讼.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0815": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.安床.栽种.移柩.进人口.会亲友.除服.成服.",
		"j": "造屋.入殓.安葬.伐木.入宅.移徙.置产.纳畜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0829": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.出行.解除.竖柱.入宅.移徙.纳财.上梁.纳畜.入殓.安葬.启攒.",
		"j": "栽种.掘井.动土.安床.破土.置产.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0822": {
		"y": "破土.安葬.移柩.入殓.祭祀.捕捉.除服.成服.余事勿取.",
		"j": "嫁娶.入宅.开市.交易.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0922": {
		"y": "嫁娶.冠笄.安机械.解除.纳畜.牧养.沐浴.伐木.架马.作梁.安门.扫舍.合寿木.安葬.启攒.立碑.修坟.",
		"j": "祈福.开光.开市.入宅.动土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0801": {
		"y": "纳采.订盟.嫁娶.移徙.入宅.出行.祭祀.祈福.斋醮.塑绘.开光.安香.出火.会亲友.解除.入学.竖柱.上梁.拆卸.造屋.起基.栽种.牧养.纳畜.",
		"j": "安葬.破土.开市.开仓.出货财.启攒.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0802": {
		"y": "纳采.订盟.嫁娶.祭祀.沐浴.塑绘.开光.出火.治病.习艺.伐木.造屋.竖柱.上梁.安床.作灶.安碓硙.挂匾.掘井.纳畜.",
		"j": "出行.安葬.造桥.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0803": {
		"y": "祭祀.入殓.除服.成服.移柩.破土.启攒.安葬.塞穴.断蚁.结网.",
		"j": "开市.入宅.嫁娶.开光.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0804": {
		"y": "祭祀.修造.出行.造屋.竖柱.造车器.教牛马.造畜椆栖.割蜜.",
		"j": "动土.破土.掘井.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0805": {
		"y": "祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.",
		"j": "嫁娶.出行.纳采.入宅.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0806": {
		"y": "纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.",
		"j": "斋醮.入宅.安门.安葬.破土.行丧.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0807": {
		"y": "塑绘.开光.进人口.纳畜.补垣.塞穴.栽种.牧养.",
		"j": "嫁娶.纳财.祈福.安葬.修造.开市.交易.立券.动土.上梁.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0808": {
		"y": "祭祀.作灶.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0809": {
		"y": "祭祀.求嗣.开光.出行.伐木.作梁.出火.解除.拆卸.进人口.修造.动土.起基.安床.栽种.纳畜.入殓.破土.安葬.除服.成服.",
		"j": "嫁娶.移徙.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0810": {
		"y": "祭祀.求医.捕捉.栽种.塞穴.入殓.破土.安葬.移柩.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0811": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0812": {
		"y": "祭祀.结网.入殓.移柩.启攒.安葬.移柩.除服.成服.合寿木.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0813": {
		"y": "嫁娶.出火.拆卸.祭祀.祈福.开光.伐木.动土.开市.交易.立券.入宅.移徙.安床.纳畜.入殓.安葬.",
		"j": "栽种.作灶.针灸.出行.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0814": {
		"y": "祭祀.开光.解除.移徙.裁衣.开市.立券.祈福.求嗣.进人口.交易.纳财.纳畜.",
		"j": "动土.破土.理发.出行.入宅.分居.安香.出火.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0816": {
		"y": "祭祀.动土.筑堤.开池.会亲友.塞穴.入殓.移柩.破土.安葬.",
		"j": "开光.出行.修造.上梁.入宅.安门.作灶.裁衣.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0817": {
		"y": "祭祀.裁衣.安门.纳财.扫舍.出行.进人口.作灶.纳畜.造畜椆栖.",
		"j": "安床.动土.安葬.开生坟.合寿木.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0818": {
		"y": "祭祀.解除.拆卸.修造.动土.起基.上梁.安床.安门.开渠.开池.入殓.破土.启攒.",
		"j": "嫁娶.出行.进人口.作灶.入宅.移徙.栽种.赴任.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0819": {
		"y": "纳采.订盟.开光.出行.解除.安香.出火.拆卸.入宅.移徙.修造.上梁.安床.栽种.纳畜.会亲友.安机械.经络.",
		"j": "伐木.谢土.行丧.祭祀.作灶.动土.破土.安葬.祈福.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0820": {
		"y": "修饰垣墙.平治道涂.祭祀.沐浴.作灶.",
		"j": "嫁娶.词讼.治病.置产.作梁.祈福.安葬.栽种.伐木.安门.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0821": {
		"y": "嫁娶.祭祀.祈福.求嗣.出火.出行.开光.解除.拆卸.修造.进人口.安香.交易.立券.入宅.移徙.安床.动土.破土.谢土.安葬.入殓.除服.成服.",
		"j": "斋醮.开市.开仓.作灶.造船.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0823": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "祈福.纳采.订盟.嫁娶.入宅.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0824": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.安香.出火.解除.伐木.入宅.移徙.安床.开市.交易.立券.栽种.出火.出行.安葬.",
		"j": "掘井.理发.作灶.动土.破土.开池.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0826": {
		"y": "嫁娶.祭祀.祈福.求嗣.裁衣.冠笄.经络.修造.进人口.安床.动土.竖柱.上梁.移徙.交易.立券.栽种.会亲友.",
		"j": "行丧.安葬.出行.作梁.纳畜.伐木.造桥.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0827": {
		"y": "嫁娶.纳采.订盟.开光.祭祀.出行.理发.动土.安床.放水.开渠.栽种.进人口.",
		"j": "入宅.上梁.入殓.造屋.探病.作灶.安门.安葬.纳畜.伐木.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0828": {
		"y": "祭祀.出行.作梁.出火.拆卸.修造.动土.起基.安床.补垣.塞穴.入殓.破土.安葬.移柩.造畜椆栖.",
		"j": "嫁娶.入宅.斋醮.开光.针灸.掘井.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0830": {
		"y": "解除.祭祀.祈福.求嗣.修造.动土.竖柱.上梁.安床.纳畜.造屋.合脊.起基.入殓.破土.安葬.",
		"j": "出火.嫁娶.开光.进人口.出行.词讼.开市.入宅.移徙.赴任.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "除",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0831": {
		"y": "沐浴.理发.会亲友.塑绘.开光.栽种.牧养.嫁娶.经络.补垣.塞穴.",
		"j": "开市.入宅.动土.破土.安葬.作灶.上梁.安床.开仓.祈福.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0930": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.上梁.合脊.放水.掘井.破土.移柩.谢土.除服.成服.",
		"j": "开市.开仓.安门.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d1022": {
		"y": "入殓.破土.启攒.安葬.除服.成服.余事勿取.",
		"j": "开市.入宅.祭祀.置产.补垣.塞穴.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0901": {
		"y": "祭祀.理发.作灶.沐浴.修饰垣墙.平治道涂.",
		"j": "嫁娶.栽种.祈福.造桥.安葬.安门.伐木.作梁.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0902": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.斋醮.普渡.移徙.入宅.出行.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.定磉.安门.安葬.破土.",
		"j": "开市.立券.置产.作灶.造桥.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0903": {
		"y": "祭祀.普渡.捕捉.解除.结网.畋猎.入殓.破土.安葬.",
		"j": "开市.交易.入宅.嫁娶.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0904": {
		"y": "沐浴.破屋.坏垣.余事勿取.",
		"j": "斋醮.开市.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0905": {
		"y": "订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬.",
		"j": "动土.破土.嫁娶.掘井.安床.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0906": {
		"y": "嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网.",
		"j": "纳采.订盟.经络.行丧.安葬.探病.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0907": {
		"y": "嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.",
		"j": "掘井.出行.破土.行丧.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0908": {
		"y": "祭祀.理发.会亲友.进人口.嫁娶.针灸.入殓.移柩.",
		"j": "探病.开渠.安葬.伐木.作灶.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0909": {
		"y": "祭祀.立碑.修坟.启攒.除服.成服.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0910": {
		"y": "嫁娶.出行.伐木.拆卸.修造.动土.移徙.安葬.破土.修坟.立碑.",
		"j": "掘井.祈福.安床.开市.入宅.挂匾.开光.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0911": {
		"y": "祭祀.出行.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0912": {
		"y": "嫁娶.祭祀.塑绘.开光.出行.解除.理发.整手足甲.动土.安床.开池.放水.扫舍.",
		"j": "伐木.行丧.作灶.作梁.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0913": {
		"y": "开市.交易.立券.挂匾.开光.出行.入宅.移徙.安床.出火.上梁.",
		"j": "作灶.行丧.理发.乘船.嫁娶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0914": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0915": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.栽种.纳畜.入殓.安葬.除服.成服.",
		"j": "",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0916": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0917": {
		"y": "祭祀.治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0918": {
		"y": "嫁娶.纳采.订盟.祭祀.开光.出行.理发.作梁.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.移徙.拆卸.挂匾.栽种.纳畜.破土.安葬.入殓.除服.成服.",
		"j": "开市.掘井.开渠.造桥.造船.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0919": {
		"y": "开市.交易.立券.纳财.挂匾.栽种.祭祀.祈福.开光.拆卸.动土.安床.",
		"j": "嫁娶.破土.进人口.出行.入宅.移徙.出火.纳畜.词讼.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0920": {
		"y": "嫁娶.祭祀.理发.进人口.作灶.移柩.冠笄.会亲友.",
		"j": "开仓.出货财.伐木.纳畜.开市.上梁.造屋.破土.启攒.栽种.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0921": {
		"y": "祭祀.修坟.除服.成服.启攒.移柩.余事勿取.",
		"j": "开市.入宅.嫁娶.动土.破土.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0923": {
		"y": "祭祀.出行.沐浴.扫舍.安葬.余事勿取.",
		"j": "动土.破土.置产.掘井.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0924": {
		"y": "嫁娶.纳采.祭祀.解除.出行.修造.动土.开市.上梁.安床.整手足甲.扫舍.求医.治病.起基.定磉.造屋.合脊.",
		"j": "造庙.行丧.安葬.伐木.作灶.造船.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0925": {
		"y": "纳采.订盟.开市.交易.立券.挂匾.纳财.栽种.进人口.入宅.移徙.安床.开光.出火.拆卸.安门.修造.",
		"j": "斋醮.嫁娶.行丧.动土.作灶.安葬.破土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0926": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.入宅.安床.出行.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0927": {
		"y": "开光.祈福.求嗣.斋醮.修造.动土.纳财.造仓.作厕.栽种.牧养.会亲友.",
		"j": "作灶.出火.进人口.开渠.入宅.移徙.祭祀.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0928": {
		"y": "开光.解除.拆卸.修造.动土.竖柱.安门.牧养.安葬.修坟.破土.移柩.",
		"j": "出火.入宅.移徙.祈福.祭祀.安床.开市.嫁娶.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0929": {
		"y": "破屋.坏垣.求医.治病.余事勿取.",
		"j": "移徙.入宅.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d1027": {
		"y": "祭祀.冠笄.移徙.会亲友.纳财.理发.捕捉.",
		"j": "嫁娶.开市.开池.作厕.破土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d1122": {
		"y": "嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.开光.出行.解除.动土.开市.交易.立券.挂匾.拆卸.破土.",
		"j": "伐木.上梁.修造.入殓.理发.会亲友.入宅.安门.安葬.作灶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d1001": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.解除.进人口.入宅.移徙.出火.安床.开市.交易.立券.挂匾.",
		"j": "安葬.纳畜.出行.行丧.伐木.栽种.造庙.造桥.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d1002": {
		"y": "祭祀.冠笄.捕捉.余事勿取.",
		"j": "嫁娶.开市.造屋.作梁.合寿木.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d1003": {
		"y": "祭祀.解除.结网.畋猎.取渔.会亲友.入学.移柩.启攒.除服.成服.",
		"j": "开市.祈福.动土.破土.入殓.安葬.造船.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d1004": {
		"y": "冠笄.沐浴.出行.修造.动土.移徙.入宅.破土.安葬.",
		"j": "嫁娶.开市.祭祀.祈福.斋醮.纳采.修坟.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d1005": {
		"y": "祭祀.出行.",
		"j": "嫁娶.入宅.修造.动土.会亲友.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d1006": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.",
		"j": "针灸.伐木.作梁.造庙.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d1007": {
		"y": "出行.开市.交易.立券.安机械.出火.上梁.移徙.",
		"j": "嫁娶.安葬.动土.造桥.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d1008": {
		"y": "开市.交易.立券.纳财.会亲友.开光.理发.入殓.移柩.安葬.启攒.",
		"j": "嫁娶.作灶.出火.出行.入宅.移徙.安床.祈福.上梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d1009": {
		"y": "造畜椆栖.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d1010": {
		"y": "入殓.破土.安葬.启攒.除服.成服.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d1011": {
		"y": "祭祀.入殓.移柩.开生坟.破土.启攒.安葬.除服.成服.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1012": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d1013": {
		"y": "嫁娶.求嗣.纳采.进人口.纳财.结网.纳畜.牧养.会亲友.",
		"j": "上梁.作灶.伐木.出行.安葬.安门.理发.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d1014": {
		"y": "嫁娶.祭祀.开市.开光.出行.入宅.移徙.出火.拆卸.修造.安床.",
		"j": "纳畜.伐木.置产.作梁.行丧.安葬.修坟.立碑.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d1015": {
		"y": "嫁娶.祭祀.作灶.纳财.",
		"j": "安葬.开市.修坟.立碑.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d1016": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.进人口.开市.交易.立券.挂匾.纳财.入宅.移徙.栽种.破土.谢土.",
		"j": "安床.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d1017": {
		"y": "嫁娶.祭祀.祈福.求嗣.动土.安床.扫舍.入殓.移柩.破土.启攒.安葬.作灶.整手足甲.补垣.除服.成服.",
		"j": "开光.栽种.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d1018": {
		"y": "祭祀.祈福.求嗣.开光.出行.解除.上梁.入宅.移徙.安床.安门.纳财.纳畜.造畜椆栖.",
		"j": "伐木.行丧.破土.嫁娶.安葬.开渠.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d1019": {
		"y": "祭祀.开光.出行.解除.理发.伐木.出火.拆卸.上梁.合脊.安床.造畜椆栖.",
		"j": "嫁娶.安葬.行丧.词讼.造桥.作灶.破土.动土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d1020": {
		"y": "纳采.订盟.会亲友.沐浴.理发.裁衣.冠笄.安床.除服.成服.启攒.移柩.安葬.会亲友.开生坟.",
		"j": "开市.入宅.出行.嫁娶.修坟.祈福.动土.入宅.安门.谢土.上梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d1021": {
		"y": "解除.祭祀.修饰垣墙.平治道涂.造畜椆栖.余事勿取.",
		"j": "嫁娶.开市.交易.入宅.入学.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d1023": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.修造.动土.上梁.安床.纳畜.入殓.破土.",
		"j": "入宅.移徙.掘井.理发.伐木.交易.开市.作灶.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d1024": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "嫁娶.入宅.上梁.出行.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d1025": {
		"y": "祭祀.求嗣.冠笄.进人口.会亲友.安门.安床.经络.纳财.牧养.畋猎.放水.割蜜.",
		"j": "祈福.斋醮.纳采.订盟.嫁娶.入宅.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1026": {
		"y": "嫁娶.纳采.订盟.开市.交易.立券.挂匾.祭祀.祈福.开光.造车器.挂匾.出行.入宅.移徙.安床.安门.拆卸.修造.动土.栽种.安葬.破土.启攒.除服.成服.入殓.立碑.",
		"j": "探病.纳畜.伐木.起基.作梁.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d1028": {
		"y": "祭祀.祈福.求嗣.斋醮.开光.出行.嫁娶.求医.治病.动土.破土.入学.起基.扫舍.竖柱.上梁.开仓.出货财.置产.栽种.牧养.开生坟.谢土.立碑.",
		"j": "安门.安床.裁衣.入宅.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d1029": {
		"y": "嫁娶.裁衣.冠笄.合帐.祭祀.出行.安床.移徙.塞穴.入殓.破土.移柩.安葬.",
		"j": "开市.出行.栽种.置产.词讼.安门.掘井.开光.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d1030": {
		"y": "祭祀.造车器.出行.修造.上梁.造屋.安门.安床.造畜椆栖.教牛马.",
		"j": "出货财.开仓.动土.破土.安葬.行丧.伐木.开渠.栽种.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d1031": {
		"y": "祭祀.开光.出行.解除.伐木.作梁.出火.拆卸.入宅.移徙.安床.修造.造畜椆栖.扫舍.",
		"j": "造庙.嫁娶.掘井.栽种.造桥.作灶.动土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d1128": {
		"y": "嫁娶.纳采.订盟.祭祀.斋醮.开光.安香.出火.出行.出火.拆卸.动土.祈福.进人口.纳财.交易.立券.移徙.安床.修造.安葬.除服.成服.",
		"j": "置产.掘井.词讼.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d1125": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.进人口.开市.立券.挂匾.入宅.移徙.安门.栽种.动土.求医.治病.会亲友.起基.修造.造屋.安葬.",
		"j": "作灶.经络.安床.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d1225": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "移徙.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d1101": {
		"y": "纳采.订盟.开市.交易.立券.会亲友.纳畜.牧养.问名.移徙.解除.作厕.入学.起基.安床.开仓.出货财.安葬.启攒.入殓.除服.成服.",
		"j": "入宅.上梁.斋醮.出火.谢土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d1102": {
		"y": "祭祀.平治道涂.余事勿取.",
		"j": "嫁娶.开市.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d1103": {
		"y": "捕捉.畋猎.余事勿取.",
		"j": "开市.交易.祭祀.入宅.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d1104": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.安香.出火.造庙.移徙.出行.入宅.造庙.起基.竖柱.上梁.安床.纳畜.捕捉.纳婿.安葬.",
		"j": "开市.破土.掘井.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d1105": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "开市.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1106": {
		"y": "订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.",
		"j": "嫁娶.开市.入宅.祈福.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d1107": {
		"y": "嫁娶.祭祀.开光.出火.出行.拆卸.修造.动土.解除.开市.交易.立券.挂匾.纳财.入宅.移徙.安床.栽种.纳畜.",
		"j": "探病.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d1108": {
		"y": "祭祀.祈福.求嗣.开光.解除.理发.会亲友.栽种.纳畜.牧养.安葬.修坟.立碑.启攒.",
		"j": "入宅.作灶.词讼.移徙.出行.赴任.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d1109": {
		"y": "祭祀.沐浴.结网.移柩.入殓.除服.成服.",
		"j": "安床.开市.交易.出货财.安葬.修坟.嫁娶.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d1110": {
		"y": "解除.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d1111": {
		"y": "安床.祭祀.开池.补垣.入殓.移柩.破土.启攒.",
		"j": "入宅.移徙.嫁娶.掘井.作灶.出火.进人口.开市.开光.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d1112": {
		"y": "祭祀.沐浴.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d1113": {
		"y": "嫁娶.开光.出行.解除.出火.拆卸.修造.进人口.动土.入宅.移徙.栽种.纳畜.掘井.安葬.除服.成服.",
		"j": "置产.安床.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d1114": {
		"y": "开光.裁衣.安门.会亲友.安床.结网.理发.",
		"j": "嫁娶.冠笄.出行.祈福.安葬.伐木.入宅.移徙.出火.栽种.动土.上梁.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1115": {
		"y": "嫁娶.开光.出行.出火.拆卸.修造.动土.入宅.移徙.安床.上梁.开市.交易.立券.栽种.",
		"j": "祈福.祭祀.伐木.掘井.作灶.谢土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1116": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.开市.交易.立券.挂匾.伐木.入宅.移徙.安床.安葬.",
		"j": "栽种.掘井.置产.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d1117": {
		"y": "祭祀.理发.针灸.解除.进人口.整手足甲.",
		"j": "嫁娶.动土.造船.开池.掘井.出行.修造.入宅.上梁.移徙.安葬.破土.作灶.开市.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d1118": {
		"y": "破屋.坏垣.求医.治病.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d1119": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.雕刻.移徙.开市.入宅.出行.动土.会亲友.入学.修造.动土.起基.安门.安床.造庙.解除.纳财.开池.造畜椆栖.牧养.牧养.",
		"j": "上梁.开仓.出货财.造屋.造船.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1120": {
		"y": "祭祀.祈福.求嗣.开光.解除.伐木.拆卸.修造.栽种.纳畜.安葬.修坟.立碑.",
		"j": "嫁娶.进人口.入宅.移徙.出火.出行.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d1121": {
		"y": "沐浴.扫舍.捕捉.畋猎.解除.塞穴.余事勿取.",
		"j": "嫁娶.入宅.开市.安床.破土.修坟.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d1123": {
		"y": "合帐.裁衣.嫁娶.安床.入殓.移柩.破土.造畜椆栖.",
		"j": "置产.造船.开光.掘井.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d1124": {
		"y": "解除.修饰垣墙.冠笄.出行.余事勿取.",
		"j": "开市.动土.破土.嫁娶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d1126": {
		"y": "祭祀.塑绘.理发.会亲友.牧养.开池.造畜椆栖.畋猎.结网.",
		"j": "祈福.谢土.安葬.上梁.作灶.开市.嫁娶.出行.入宅.动土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d1127": {
		"y": "出行.纳财.开市.交易.立券.动土.移徙.入宅.裁衣.会亲友.拆卸.进人口.安香.经络.出货财.修饰垣墙.平治道涂.",
		"j": "造庙.谢土.作灶.作梁.伐木.安葬.行丧.修坟.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d1129": {
		"y": "嫁娶.纳采.订盟.祭祀.开光.出行.解除.伐木.出火.入宅.移徙.拆卸.修造.栽种.安葬.入殓.",
		"j": "破土.动土.安门.作灶.开市.交易.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d1130": {
		"y": "祭祀.解除.破屋.坏垣.求医.治病.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d1201": {
		"y": "祭祀.扫舍.破土.安葬.除服.成服.启攒.移柩.入殓.立碑.余事勿取.",
		"j": "祭祀.嫁娶.入宅.修造.动土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d1202": {
		"y": "订盟.纳采.会亲友.祭祀.祈福.修造.动土.安机械.破土.安葬.",
		"j": "嫁娶.移徙.出火.开市.入宅.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d1203": {
		"y": "祭祀.沐浴.捕捉.畋猎.结网.扫舍.",
		"j": "嫁娶.纳采.订盟.安床.动土.破土.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d1204": {
		"y": "开市.纳财.出行.祭祀.祈福.求嗣.斋醮.问名.入学.起基.定磉.置产.开渠.掘井.拆卸.栽种.纳畜.牧养.动土.破土.启攒.",
		"j": "移徙.入宅.出火.入殓.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d1205": {
		"y": "祭祀.理发.置产.塞穴.除服.成服.移柩.入殓.破土.安葬.",
		"j": "嫁娶.入宅.安床.掘井.开光.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d1206": {
		"y": "祭祀.沐浴.出行.余事勿取.",
		"j": "开市.动土.破土.行丧.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d1207": {
		"y": "安葬.启攒.移柩.入殓.除服.成服.",
		"j": "余事勿取.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d1208": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.",
		"j": "作灶.塑绘.行丧.词讼.伐木.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d1209": {
		"y": "理发.开光.解除.拆卸.修造.安葬.开市.交易.立券.挂匾.安床.栽种.",
		"j": "入宅.移徙.作灶.祈福.祭祀.嫁娶.谢土.掘井.造屋.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d1210": {
		"y": "祭祀.修饰垣墙.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1211": {
		"y": "入宅.安床.开光.祭祀.出火.拆卸.动土.挂匾.入殓.破土.安葬.纳畜.",
		"j": "嫁娶.开市.作灶.置产.作梁.伐木.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d1212": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d1213": {
		"y": "破屋.坏垣.祭祀.沐浴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d1214": {
		"y": "安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.",
		"j": "安门.栽种.作灶.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d1215": {
		"y": "解除.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d1216": {
		"y": "祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.",
		"j": "伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d1217": {
		"y": "祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.",
		"j": "嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d1218": {
		"y": "沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓硙.筑堤.作厕.断蚁.",
		"j": "移徙.入宅.嫁娶.祈福.开光.掘井.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d1219": {
		"y": "交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.",
		"j": "斋醮.入宅.修造.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d1220": {
		"y": "嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.",
		"j": "斋醮.伐木.作梁.安葬.行丧.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d1221": {
		"y": "纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.",
		"j": "嫁娶.动土.破土.祈福.出火.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d1222": {
		"y": "祭祀.平治道涂.除服.成服.安葬.余事勿取.",
		"j": "嫁娶.入宅.纳采.订盟.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d1223": {
		"y": "纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.",
		"j": "开市.造庙.置产.掘井.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d1224": {
		"y": "嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.",
		"j": "开生坟.破土.行丧.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1226": {
		"y": "安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.",
		"j": "作灶.安门.造桥.开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d1227": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.",
		"j": "伐木.作梁.动土.安床.破土.栽种.造桥.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d1228": {
		"y": "祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.",
		"j": "会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d1229": {
		"y": "纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.",
		"j": "嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d1230": {
		"y": "入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.",
		"j": "嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d1231": {
		"y": "造畜椆栖.教牛马.",
		"j": "入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	}
};


},{}],201:[function(require,module,exports){
module.exports = {
	"d0101": {
		"y": "订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.",
		"j": "破土.安葬.行丧.开生坟.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0201": {
		"y": "沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬.",
		"j": "祈福.嫁娶.安床.入宅.造船.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0102": {
		"y": "订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.",
		"j": "祈福.出火.嫁娶.入宅.开市.动土.破土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0103": {
		"y": "祭祀.平治道涂.修坟.除服.成服.余事勿取.",
		"j": "移徙.入宅.嫁娶.掘井.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0104": {
		"y": "嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.",
		"j": "开市.纳采.订盟.作灶.造庙.造船.经络.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0105": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓硙.动土.上梁.移徙.入宅.",
		"j": "出行.掘井.破土.行丧.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0106": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.入宅.移徙.安床.修造.动土.进人口.",
		"j": "掘井.安葬.栽种.出行.作灶.开市.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0107": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0108": {
		"y": "嫁娶.开市.交易.立券.开光.出行.出火.拆卸.修造.入宅.移徙.动土.破土.移柩.安葬.启攒.除服.成服.",
		"j": "安床.伐木.祈福.纳畜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0109": {
		"y": "祭祀.入殓.破土.除服.成服.启攒.安葬.修坟.立碑.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0110": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0111": {
		"y": "开市.交易.立券.纳财.纳畜.造畜椆栖.入宅.移徙.安床.开光.祈福.求嗣.动土.",
		"j": "嫁娶.栽种.安葬.理发.造庙.作灶.入殓.行丧.造桥.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0112": {
		"y": "安床.裁衣.交易.立券.入殓.移柩.安葬.除服.成服.",
		"j": "置产.嫁娶.出行.开光.栽种.动土.破土.入宅.治病.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0113": {
		"y": "祭祀.解除.造畜椆栖.教牛马.针灸.余事勿取.",
		"j": "嫁娶.动土.开池.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0114": {
		"y": "沐浴.塑绘.开光.纳采.订盟.开市.交易.立券.纳财.起基.动土.定磉.放水.安葬.破土.启攒.修坟.立碑.移柩.",
		"j": "入宅.安门.祭祀.谢土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0115": {
		"y": "嫁娶.出行.理发.安床.启攒.安葬.修坟.开市.交易.立券.纳财.开池.牧养.",
		"j": "掘井.祈福.谢土.动土.入宅.上梁.修造.作灶.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0116": {
		"y": "解除.平治道涂.余事勿取.",
		"j": "移徙.入宅.掘井.造庙.栽种.针灸.治病.开池.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0117": {
		"y": "嫁娶.祭祀.开光.伐木.出火.拆卸.入宅.移徙.修造.动土.上梁.安床.纳畜.",
		"j": "开市.行丧.栽种.出行.出货财.安葬.置产.词讼.治病.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0118": {
		"y": "嫁娶.纳采.订盟.入宅.移徙.安床.祭祀.祈福.开光.出行.解除.出火.拆卸.动土.纳畜.谢土.安葬.破土.",
		"j": "伐木.开市.交易.上梁.作灶.安门.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0119": {
		"y": "祭祀.破屋.坏垣.解除.余事勿取.",
		"j": "开市.动土.破土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0120": {
		"y": "嫁娶.纳采.订盟.开光.安香.出火.纳财.开市.交易.立券.裁衣.造屋.起基.修造.动土.安门.移徙.入宅.栽种.牧养.畋猎.掘井.开池.安葬.破土.入殓.除服.成服.立碑.",
		"j": "祈福.造庙.祭祀.安床.谢土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0121": {
		"y": "祭祀.斋醮.入殓.破土.启攒.安葬.修坟.立碑.除服.成服.",
		"j": "嫁娶.入宅.作灶.纳采.订盟.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0122": {
		"y": "祭祀.斋醮.纳财.捕捉.畋猎.",
		"j": "嫁娶.开市.入宅.安床.破土.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0123": {
		"y": "纳采.订盟.祭祀.祈福.求嗣.斋醮.沐浴.进人口.会亲友.入学.治病.安碓硙.掘井.开池.纳畜.牧养.造畜椆栖.",
		"j": "嫁娶.合帐.入宅.行丧.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0124": {
		"y": "祭祀.祈福.求嗣.沐浴.问名.交易.纳财.入殓.移柩.安葬.修坟.立碑.谢土.造畜椆栖.教牛马.",
		"j": "入宅.置产.嫁娶.动土.栽种.开市.开光.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0125": {
		"y": "祭祀.教牛马.造畜椆栖.祭祀.会亲友.解除.余事勿取.",
		"j": "嫁娶.入宅.出行.动土.破土.安葬.行丧.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0126": {
		"y": "嫁娶.开光.解除.出火.拆卸.修造.进人口.入宅.移徙.安床.栽种.入殓.修坟.动土.除服.成服.",
		"j": "作灶.安葬.祭祀.开市.纳采.订盟.纳畜.谢土.出行.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0127": {
		"y": "出行.起基.安床.纳财.交易.立券.嫁娶.栽种.入殓.移柩.安葬.",
		"j": "挂匾.入宅.上梁.祈福.词讼.作梁.作灶.开池.安门.动土.破土.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0128": {
		"y": "平治道涂.余事勿取.",
		"j": "开光.嫁娶.开仓.出货财.造船.安葬.探病.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0129": {
		"y": "嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产.",
		"j": "开市.出行.安葬.行丧.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0130": {
		"y": "沐浴.捕捉.畋猎.理发.整手足甲.入殓.除服.成服.破土.安葬.谢土.立碑.修坟.启攒.",
		"j": "纳采.订盟.嫁娶.上梁.开市.斋醮.造屋.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0131": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "斋醮.嫁娶.开市.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0213": {
		"y": "求医.治病.破屋.坏垣.余事勿取.",
		"j": "开市.嫁娶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0226": {
		"y": "纳采.订盟.祭祀.祈福.安香.出火.修造.出行.开市.移徙.入宅.动土.安葬.破土.",
		"j": "安床.作灶.造船.会亲友.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0216": {
		"y": "祭祀.沐浴.理发.作灶.结网.栽种.",
		"j": "嫁娶.词讼.行丧.安葬.牧养.伐木.作梁.开市.纳畜.造畜椆栖.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0223": {
		"y": "嫁娶.祭祀.冠笄.修饰垣墙.置产.",
		"j": "经络.探病.造屋.作灶.动土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0203": {
		"y": "嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.",
		"j": "开市.安床.安葬.修坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0206": {
		"y": "祭祀.合帐.裁衣.经络.伐木.作梁.安床.作灶.入殓.安葬.启攒.移柩.",
		"j": "词讼.出火.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0227": {
		"y": "塞穴.结网.取渔.畋猎.",
		"j": "嫁娶.安门.移徙.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0301": {
		"y": "纳采.嫁娶.祭祀.祈福.出行.开市.会亲友.动土.破土.启攒.",
		"j": "移徙.入宅.出火.安门.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0202": {
		"y": "祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取.",
		"j": "造庙.入宅.修造.安葬.行丧.嫁娶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0204": {
		"y": "移徙.祭祀.开光.祈福.出行.解除.进人口.雇庸.安床.动土.起基.上梁.安门.解除.",
		"j": "嫁娶.安葬.破土.作梁.纳畜.牧养.行丧.作灶.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0205": {
		"y": "嫁娶.开光.祈福.求嗣.解除.动土.安床.栽种.开池.掘井.祭祀.破土.启攒.",
		"j": "入宅.作灶.伐木.安葬.出火.出行.纳畜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0207": {
		"y": "裁衣.伐木.作梁.纳财.交易.立券.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0208": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.入殓.破土.安葬.启攒.除服.成服.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0209": {
		"y": "嫁娶.冠笄.纳采.出行.会亲友.上梁.安机械.安床.牧养.畋猎.祭祀.祈福.开光.修造.安门.造屋.起基.",
		"j": "入宅.作灶.治病.安葬.移徙.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0210": {
		"y": "修饰垣墙.平治道涂.祭祀.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0211": {
		"y": "造车器.纳采.订盟.祭祀.祈福.求嗣.移徙.出行.开市.出火.入宅.立券.交易.入宅.安门.安床.安葬.谢土.",
		"j": "开光.造屋.动土.作灶.栽种.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0212": {
		"y": "动土.入殓.嫁娶.移柩.安葬.破土.",
		"j": "开市.作灶.安床.入宅.上梁.裁衣.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0214": {
		"y": "祭祀.斋醮.沐浴.开生坟.除服.成服.移柩.入殓.破土.安葬.合寿木.",
		"j": "开市.嫁娶.安床.会亲友.入宅.作灶.上梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0215": {
		"y": "祭祀.塞穴.结网.破土.谢土.安葬.移柩.除服.成服.余事勿取.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0217": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出行.开市.交易.立券.动土.纳财.掘井.会亲友.",
		"j": "入宅.安葬.伐木.作梁.纳畜.造畜椆栖.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0218": {
		"y": "祭祀.祈福.求嗣.纳畜.入殓.启攒.谢土.除服.成服.",
		"j": "栽种.开光.出行.针灸.嫁娶.入宅.动土.破土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0219": {
		"y": "开光.解除.伐木.竖柱.上梁.交易.立券.纳畜.入殓.移柩.安葬.",
		"j": "入宅.出行.移徙.祭祀.嫁娶.动土.破土.作灶.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0220": {
		"y": "祭祀.祈福.求嗣.开光.嫁娶.出行.解除.伐木.拆卸.进人口.安床.动土.起基.上梁.栽种.纳畜.破土.谢土.启攒.安葬.",
		"j": "移徙.入宅.出火.作灶.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0221": {
		"y": "会亲友.冠笄.安床.会亲友.安机械.祭祀.祈福.求嗣.经络.",
		"j": "嫁娶.开市.动土.作灶.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0222": {
		"y": "作灶.解除.平治道涂.余事勿取.",
		"j": "祭祀.祈福.安葬.安门.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0224": {
		"y": "纳采.嫁娶.祭祀.祈福.出行.修造.动土.移徙.入宅.安葬.破土.",
		"j": "开市.入宅.斋醮.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0225": {
		"y": "祭祀.沐浴.解除.理发.扫舍.破屋.坏垣.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0228": {
		"y": "纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅.",
		"j": "嫁娶.开市.安葬.破土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0327": {
		"y": "冠笄.立券.交易.修造.动土.安机械.入殓.安葬.破土.",
		"j": "嫁娶.祈福.出火.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0317": {
		"y": "塞穴.整手足甲.解除.捕捉.畋猎.结网.余事勿取.诸事不宜.",
		"j": "嫁娶.作灶.掘井.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0328": {
		"y": "祭祀.会亲友.出行.立券.交易.冠笄.纳财.",
		"j": "嫁娶.动土.掘井.起基.定磉.破土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0323": {
		"y": "纳采.交易.立券.安床.安机械.安葬.移柩.动土.破土.立碑.",
		"j": "嫁娶.开光.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0307": {
		"y": "祭祀.嫁娶.纳婿.安葬.",
		"j": "栽种.造屋.作灶.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0326": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.破土.出火.安门.安床.上梁.立碑.移柩.",
		"j": "开市.交易.合帐.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0325": {
		"y": "纳财.交易.立券.栽种.捕捉.结网.取渔.进人口.教牛马.理发.",
		"j": "入宅.造屋.竖柱.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0427": {
		"y": "纳采.祭祀.祈福.求嗣.斋醮.出行.起基.造屋.定磉.安门.入殓.安葬.",
		"j": "嫁娶.开市.纳财.出火.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0302": {
		"y": "祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "嫁娶.动土.开光.造屋.破土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0303": {
		"y": "纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.",
		"j": "祭祀.移徙.入宅.动土.破土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0304": {
		"y": "祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬.",
		"j": "开光.嫁娶.作灶.掘井.纳畜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0305": {
		"y": "会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.",
		"j": "开市.动土.安葬.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0306": {
		"y": "开光.塑绘.求嗣.纳采.裁衣.合帐.冠笄.安机械.作梁.开柱眼.安门.安床.造仓.祭祀.会亲友.祈福.经络.纳财.开市.立券.交易.入学.求嗣.理发.架马.",
		"j": "出行.斋醮.安葬.嫁娶.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0308": {
		"y": "祭祀.会亲友.订盟.裁衣.合帐.安机械.拆卸.上梁.安门.入殓.除服.成服.移柩.启攒.安葬.立碑.开光.塑绘.入学.出行.起基.定磉.放水.移徙.入宅.竖柱.立券.经络.",
		"j": "伐木.作梁.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0309": {
		"y": "祭祀.开光.塑绘.祈福.斋醮.裁衣.合帐.冠笄.嫁娶.拆卸.动土.移徙.入宅.入殓.移柩.安葬.谢土.求嗣.入学.理发.伐木.架马.作梁.出火.修造.起基.定磉.放水.赴任.",
		"j": "入宅.安门.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0310": {
		"y": "祭祀.治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0311": {
		"y": "嫁娶.祭祀.出行.冠笄.立券.交易.进人口.开市.移徙.修造.动土.安床.入殓.移柩.破土.",
		"j": "开光.作灶.斋醮.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0312": {
		"y": "开市.立券.交易.挂匾.祭祀.祈福.开光.入宅.移徙.安床.拆卸.动土.上梁.进人口.",
		"j": "嫁娶.行丧.架马.作梁.理发.牧养.安葬.纳畜.伐木.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0313": {
		"y": "理发.冠笄.嫁娶.进人口.",
		"j": "置产.伐木.纳畜.造畜椆栖.安葬.破土.作梁.作灶.开生坟.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0314": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出火.入宅.移徙.安床.拆卸.动土.破土.谢土.",
		"j": "合帐.开市.安葬.入殓.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0315": {
		"y": "安床.伐木.拆卸.修造.动土.上梁.立券.交易.栽种.纳畜.牧养.入殓.安葬.",
		"j": "嫁娶.祭祀.开光.出行.出火.移徙.入宅.安门.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0316": {
		"y": "祭祀.祈福.求嗣.斋醮.嫁娶.冠笄.出行.开市.交易.会亲友.教牛马.除服.成服.启攒.安葬.移柩.",
		"j": "祈福.动土.移徙.入宅.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0318": {
		"y": "纳财.开市.立券.交易.开光.安床.上梁.造屋.修造.起基.",
		"j": "动土.破土.安葬.行丧.赴任.出行.嫁娶.入宅.移徙.谢土.词讼.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0319": {
		"y": "祭祀.祈福.嫁娶.冠笄.修饰垣墙.置产.平治道涂.",
		"j": "开仓.出货财.造屋.作灶.开市.交易.立券.栽种.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0320": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出行.出火.进人口.入宅.移徙.安床.拆卸.修造.安门.挂匾.纳财.扫舍.",
		"j": "动土.伐木.安葬.行丧.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0321": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.出行.出火.入宅.移徙.解除.栽种.伐木.破土.谢土.安葬.",
		"j": "开市.交易.作灶.纳财.上梁.安床.造屋.造船.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0322": {
		"y": "破屋.坏垣.求医.治病.余事勿取.",
		"j": "开光.嫁娶.",
		"c": "生肖冲兔",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0324": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.开光.理发.经络.解除.治病.治病.立碑.栽种.牧养.掘井.开池.",
		"j": "嫁娶.定磉.合寿木.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0329": {
		"y": "祭祀.沐浴.解除.扫舍.塞穴.牧养.",
		"j": "嫁娶.安葬.行丧.安门.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0330": {
		"y": "纳财.开市.交易.立券.开光.针灸.会亲友.理发.安床.造仓.结网.",
		"j": "移徙.入宅.栽种.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0331": {
		"y": "嫁娶.冠笄.会亲友.安机械.纳财.交易.立券.置产.",
		"j": "开市.造屋.治病.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0422": {
		"y": "祭祀.修饰垣墙.余事勿取.",
		"j": "开光.修造.动土.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0402": {
		"y": "祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.",
		"j": "纳采.开光.安床.嫁娶.开市.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0412": {
		"y": "开光.出行.交易.塞穴.嫁娶.理发.开市.安床.",
		"j": "祈福.出火.置产.动土.破土.安葬.修造.上梁.置产.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0421": {
		"y": "祭祀.出行.修造.动土.合帐.造畜椆栖.安床.移徙.入殓.移柩.破土.启攒.安葬.开生坟.合寿木.补垣.塞穴.",
		"j": "移徙.入宅.作灶.理发.开光.安门.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0522": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.修造.进人口.入宅.移徙.安床.解除.挂匾.栽种.破土.谢土.入殓.移柩.安葬.",
		"j": "开市.立券.造船.合寿木.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0401": {
		"y": "嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬.",
		"j": "纳畜.理发.合寿木.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0403": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "嫁娶.移徙.开市.入宅.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0404": {
		"y": "嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.",
		"j": "塑绘.开光.造桥.除服.成服.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0405": {
		"y": "塞穴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0406": {
		"y": "祭祀.祈福.求嗣.开光.解除.纳采.冠笄.出火.拆卸.进人口.安床.动土.上梁.造庙.掘井.开池.入殓.移柩.安葬.破土.",
		"j": "",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0407": {
		"y": "解除.破屋.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0408": {
		"y": "嫁娶.祈福.求嗣.开光.出行.解除.拆卸.出火.开市.立券.交易.入宅.移徙.安床.动土.破土.谢土.",
		"j": "祭祀.入殓.安葬.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0409": {
		"y": "祭祀.裁衣.冠笄.安床.交易.立券.开池.补垣.塞穴.入殓.破土.启攒.安葬.谢土.除服.成服.",
		"j": "嫁娶.掘井.探病.开市.开光.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0410": {
		"y": "祭祀.出行.教牛马.扫舍.余事勿取.",
		"j": "开光.伐木.安葬.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0411": {
		"y": "祭祀.祈福.求嗣.开光.纳采.订盟.解除.栽种.纳畜.牧养.扫舍.进人口.",
		"j": "修坟.造桥.作灶.出行.安葬.造屋.入宅.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0413": {
		"y": "祭祀.作灶.畋猎.结网.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.安床.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0414": {
		"y": "沐浴.祭祀.解除.安葬.破土.谢土.移柩.余事勿取.",
		"j": "斋醮.开光.嫁娶.入宅.上梁.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0415": {
		"y": "祭祀.解除.入殓.移柩.启攒.安葬.整手足甲.捕捉.畋猎.取渔.除服.成服.扫舍.谢土.斋醮.",
		"j": "动土.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0416": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.求医.治病.余事勿取.",
		"j": "嫁娶.开市.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0417": {
		"y": "沐浴.塞穴.畋猎.结网.取渔.扫舍.余事勿取.",
		"j": "祈福.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0418": {
		"y": "开市.交易.立券.挂匾.祭祀.开光.祈福.求嗣.安床.解除.修造.安葬.",
		"j": "纳采.问名.订盟.嫁娶.入宅.开仓.出火.动土.破土.纳畜.伐木.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0419": {
		"y": "祭祀.修门.取渔.纳财.纳畜.余事勿取.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0420": {
		"y": "安香.出火.纳采.订盟.嫁娶.开市.立券.交易.挂匾.开光.出行.解除.安床.栽种.置产.拆卸.修造.动土.",
		"j": "作灶.安葬.祭祀.入殓.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0423": {
		"y": "嫁娶.祭祀.祈福.求嗣.斋醮.开光.出火.移徙.入宅.竖柱.上梁.会亲友.造屋.起基.治病.治病.安门.造车器.掘井.开池.",
		"j": "纳采.出行.修坟.安葬.开市.立券.作灶.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0424": {
		"y": "祭祀.塑绘.开光.纳采.嫁娶.开市.出行.会亲友.安床.结网.除服.成服.启攒.安葬.移柩.",
		"j": "祈福.入宅.造屋.动土.破土.探病.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0425": {
		"y": "祭祀.作灶.平治道涂.余事勿取.",
		"j": "安床.入宅.安碓硙.栽种.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0426": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.纳畜.入殓.破土.安葬.",
		"j": "移徙.入宅.嫁娶.出行.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0428": {
		"y": "祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.",
		"j": "祈福.斋醮.开市.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0429": {
		"y": "沐浴.捕捉.畋猎.结网.取渔.",
		"j": "祭祀.嫁娶.入宅.作灶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0430": {
		"y": "祭祀.祈福.求嗣.斋醮.纳采.订盟.开光.竖柱.上梁.开仓.出货财.造屋.起基.定磉.安门.诸事不宜.破土.入殓.启攒.谢土.",
		"j": "出火.嫁娶.开市.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0526": {
		"y": "祭祀.结网.捕捉.余事勿取.",
		"j": "探病.嫁娶.开市.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0516": {
		"y": "嫁娶.交易.立券.作厕.补垣.塞穴.畋猎.取渔.开生坟.",
		"j": "安床.开渠.上梁.修造.开市.开光.入宅.移徙.安床.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0512": {
		"y": "纳采.订盟.嫁娶.造车器.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.挂匾.入宅.移徙.安床.栽种.入殓.破土.安葬.除服.成服.",
		"j": "开市.立券.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0506": {
		"y": "开市.交易.立券.挂匾.开光.出行.拆卸.进人口.入宅.移柩.动土.安门.上梁.栽种.破土.修坟.安葬.",
		"j": "嫁娶.安床.探病.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0523": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "开光.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0513": {
		"y": "开市.交易.立券.祭祀.祈福.开光.动土.安床.出行.栽种.纳畜.牧养.竖柱.上梁.解除.破土.",
		"j": "嫁娶.掘井.入宅.移徙.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0503": {
		"y": "祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.",
		"j": "开光.嫁娶.掘井.安葬.安门.探病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0528": {
		"y": "嫁娶.冠笄.祭祀.出行.移徙.入宅.作灶.造车器.补垣.塞穴.作厕.破土.启攒.除服.成服.入殓.",
		"j": "入宅.造屋.造桥.安门.安葬.上梁.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0518": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.解除.出行.出火.入宅.移徙.栽种.纳畜.牧养.动土.破土.入殓.安葬.",
		"j": "作灶.安床.开仓.造屋.动土.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0530": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.治病.造车器.修造.动土.移徙.入宅.",
		"j": "开市.出行.安床.作灶.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0626": {
		"y": "祭祀.沐浴.理发.整手足甲.修饰垣墙.平治道涂.余事勿取.",
		"j": "开市.入宅.出行.修造.词讼.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0501": {
		"y": "祭祀.捕捉.解除.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0502": {
		"y": "纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.",
		"j": "祈福.动土.破土.安葬.入殓.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0504": {
		"y": "祭祀.解除.教牛马.出行.余事勿取.",
		"j": "动土.破土.行丧.开光.作梁.安葬.探病.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0505": {
		"y": "沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.",
		"j": "开市.嫁娶.移徙.入宅.掘井.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0507": {
		"y": "进人口.会亲友.",
		"j": "塞穴.上梁.动土.伐木.安葬.词讼.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0508": {
		"y": "沐浴.平治道涂.扫舍.入殓.破土.安葬.除服.成服.",
		"j": "嫁娶.移徙.伐木.作梁.安床.祭祀.祈福.造屋.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0509": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.解除.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.安门.上梁.安葬.破土.谢土.",
		"j": "",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0510": {
		"y": "祭祀.祈福.求嗣.开光.解除.合帐.冠笄.伐木.架马.作梁.修造.进人口.嫁娶.裁衣.合帐.安床.动土.起基.上梁.竖柱.放水.会亲友.",
		"j": "",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0511": {
		"y": "破屋.坏垣.沐浴.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0514": {
		"y": "解除.出行.纳采.冠笄.竖柱.上梁.移徙.作灶.进人口.入宅.纳畜.牧养.",
		"j": "祭祀.伐木.架马.安床.修造.动土.安葬.修坟.破土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0515": {
		"y": "祭祀.祈福.求嗣.开光.出行.开市.交易.立券.栽种.安床.纳畜.移徙.起基.动土.定磉.造仓.置产.破土.启攒.修坟.",
		"j": "入宅.移徙.修造.安门.伐木.入殓.安葬.造屋.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0517": {
		"y": "塞穴.断蚁.结网.畋猎.余事勿取.",
		"j": "嫁娶.安葬.入宅.出行.动土.词讼.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0519": {
		"y": "开光.纳采.裁衣.冠笄.安床.作灶.进人口.造仓.塞穴.",
		"j": "嫁娶.栽种.修造.动土.出行.伐木.作梁.安葬.谢土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0520": {
		"y": "纳采.嫁娶.裁衣.理发.出行.修造.动土.进人口.开市.交易.立券.挂匾.移徙.上梁.栽种.纳畜.",
		"j": "伐木.安葬.安床.祭祀.祈福.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0521": {
		"y": "开市.交易.立券.挂匾.祭祀.祈福.斋醮.出行.开市.交易.立券.造屋.起基.修造.动土.定磉.安床.安机械.安葬.破土.启攒.除服.成服.立碑.",
		"j": "作灶.嫁娶.移徙.入宅.理发.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0524": {
		"y": "订盟.纳采.嫁娶.解除.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.入宅.移徙.安床.栽种.纳畜.动土.破土.谢土.安葬.修坟.",
		"j": "作灶.开市.经络.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0525": {
		"y": "祭祀.祈福.求嗣.开光.订盟.纳采.解除.动土.起基.进人口.开市.交易.立券.纳财.造仓.开池.栽种.纳畜.破土.安葬.",
		"j": "安床.上梁.裁衣.入宅.嫁娶.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0527": {
		"y": "祭祀.祈福.求嗣.开光.纳采.订盟.嫁娶.出行.动土.破土.会亲友.开市.交易.立券.习艺.拆卸.起基.安碓硙.放水.开池.造仓.开渠.栽种.谢土.启攒.修坟.立碑.",
		"j": "入宅.安门.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0529": {
		"y": "祭祀.解除.断蚁.会亲友.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0531": {
		"y": "嫁娶.纳采.订盟.会亲友.安机械.结网.冠笄.祭祀.求嗣.进人口.经络.",
		"j": "开市.作灶.动土.行丧.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0624": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.修造.进人口.入宅.移徙.动土.安床.纳畜.栽种.纳财.交易.立券.挂匾.造畜椆栖.",
		"j": "安葬.开生坟.合寿木.行丧.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0614": {
		"y": "嫁娶.祭祀.理发.作灶.修饰垣墙.平治道涂.整手足甲.沐浴.冠笄.",
		"j": "破土.出行.栽种.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0622": {
		"y": "嫁娶.合帐.裁衣.冠笄.伐木.上梁.出火.拆卸.移徙.修造.动土.安门.纳财.筑堤.栽种.塞穴.",
		"j": "安床.祈福.出行.安葬.行丧.开光.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0629": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "入宅.嫁娶.移徙.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0604": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "行丧.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0628": {
		"y": "纳采.订盟.冠笄.祭祀.祈福.斋醮.出行.修造.动土.移徙.入宅.安香.出火.拆卸.造屋.起基.竖柱.上梁.定磉.安门.开池.",
		"j": "嫁娶.开市.合寿木.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0618": {
		"y": "祭祀.斋醮.塑绘.开光.出行.修造.动土.造畜椆栖.安床.放水.掘井.开池.作厕.结网.破土.",
		"j": "出火.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0608": {
		"y": "祭祀.作灶.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0625": {
		"y": "安机械.祭祀.祈福.求嗣.沐浴.解除.纳采.开市.修造.竖柱.上梁.开柱眼.安碓硙.归岫.补垣.塞穴.拆卸.放水.出火.扫舍.开生坟.合寿木.安葬.谢土.启攒.除服.成服.",
		"j": "嫁娶.安床.作灶.动土.破土.造船.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0630": {
		"y": "嫁娶.安机械.交易.出行.祭祀.祈福.求嗣.斋醮.塑绘.开光.合帐.裁衣.放水.开池.掘井.",
		"j": "作灶.理发.造桥.行丧.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0620": {
		"y": "祭祀.结网.余事勿取.",
		"j": "入宅.出行.掘井.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0726": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.斋醮.开光.会亲友.求医.治病.造屋.起基.竖柱.上梁.安门.安碓硙.筑堤.开池.破土.安葬.除服.成服.",
		"j": "入宅.开市.掘井.词讼.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0601": {
		"y": "祭祀.沐浴.移徙.破土.安葬.扫舍.平治道涂.",
		"j": "祈福.嫁娶.入宅.安床.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0602": {
		"y": "祭祀.祈福.斋醮.求嗣.安机械.纳畜.移徙.入宅.安机械.塑绘.开光.起基.竖柱.上梁.作灶.安门.安香.出火.造屋.启攒.安葬.",
		"j": "动土.破土.嫁娶.嫁娶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0603": {
		"y": "嫁娶.纳采.订盟.斋醮.开光.祭祀.祈福.求医.治病.会亲友.动土.解除.捕捉.纳畜.牧养.入殓.破土.安葬.",
		"j": "移徙.入宅.造屋.架马.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0605": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "斋醮.开市.嫁娶.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0606": {
		"y": "开市.交易.立券.纳财.开池.作厕.结网.祭祀.修造.动土.安床.放水.经络.破土.",
		"j": "嫁娶.造桥.词讼.移徙.安门.作灶.栽种.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0607": {
		"y": "开市.交易.立券.纳财.栽种.安床.拆卸.修造.动土.上梁.入殓.安葬.破土.除服.成服.",
		"j": "嫁娶.出火.伐木.祭祀.入宅.移徙.纳畜.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0609": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0610": {
		"y": "修造.动土.起基.安门.安床.栽种.筑堤.补垣.造畜椆栖.",
		"j": "嫁娶.掘井.入宅.移徙.出火.出行.行丧.安葬.开光.理发.进人口.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0611": {
		"y": "祭祀.教牛马.断蚁.余事勿取.",
		"j": "斋醮.移徙.入宅.动土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0612": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.开市.纳财.立券.移徙.出行.修造.动土.起基.定磉.竖柱.拆卸.扫舍.放水.安香.安床.造船.开池.掘井.造畜椆栖.栽种.",
		"j": "行丧.安葬.破土.作灶.伐木.斋醮.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0613": {
		"y": "嫁娶.开光.祭祀.祈福.出行.解除.移徙.入宅.开市.纳财.起基.修造.竖柱.上梁.造屋.作灶.出火.安香.补垣.塞穴.拆卸.放水.扫舍.造仓.造船.栽种.安葬.",
		"j": "纳采.订盟.安床.谢土.破土.动土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0615": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.入宅.移徙.安床.交易.立券.挂匾.纳财.入殓.安葬.启攒.除服.成服.",
		"j": "动土.掘井.破土.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0616": {
		"y": "畋猎.捕捉.结网.取渔.祭祀.沐浴.余事勿取.",
		"j": "嫁娶.开市.安葬.启攒.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0617": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "移徙.入宅.开仓.出货财.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0619": {
		"y": "开市.交易.立券.挂匾.开光.解除.拆卸.动土.安床.修造.上梁.置产.栽种.破土.安葬.",
		"j": "作灶.出火.祭祀.嫁娶.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0621": {
		"y": "嫁娶.纳采.订盟.冠笄.造车器.祭祀.开光.祈福.求嗣.出行.解除.伐木.出火.入宅.拆卸.修造.动土.上梁.安床.栽种.破土.",
		"j": "行丧.置产.入宅.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0623": {
		"y": "出行.教牛马.割蜜.余事勿取.",
		"j": "斋醮.造屋.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0627": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.立券.移徙.入宅.动土.破土.安葬.",
		"j": "开光.作灶.造屋.架马.开仓.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0728": {
		"y": "纳采.订盟.嫁娶.祭祀.沐浴.塑绘.开光.出火.治病.习艺.伐木.造屋.竖柱.上梁.安床.作灶.安碓硙.挂匾.掘井.纳畜.",
		"j": "出行.安葬.造桥.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0730": {
		"y": "祭祀.修造.出行.造屋.竖柱.造车器.教牛马.造畜椆栖.割蜜.",
		"j": "动土.破土.掘井.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0727": {
		"y": "纳采.订盟.嫁娶.移徙.入宅.出行.祭祀.祈福.斋醮.塑绘.开光.安香.出火.会亲友.解除.入学.竖柱.上梁.拆卸.造屋.起基.栽种.牧养.纳畜.",
		"j": "安葬.破土.开市.开仓.出货财.启攒.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0720": {
		"y": "嫁娶.纳采.订盟.造车器.开光.出行.拆卸.起基.安床.除服.成服.开市.交易.立券.栽种.牧养.入殓.移柩.启攒.",
		"j": "上梁.入宅.修造.动土.破土.祭祀.祈福.斋醮.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0717": {
		"y": "经络.祭祀.沐浴.补垣.塞穴.除服.成服.移柩.入殓.启攒.立碑.",
		"j": "开光.治病.嫁娶.掘井.破土.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0707": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.栽种.纳畜.入殓.启攒.除服.成服.",
		"j": "",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0718": {
		"y": "嫁娶.祭祀.出行.裁衣.冠笄.交易.雕刻.纳财.造畜椆栖.造车器.雕刻.教牛马.",
		"j": "移徙.入宅.栽种.动土.破土.作灶.安葬.行丧.伐木.上梁.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0708": {
		"y": "嫁娶.开光.解除.安床.牧养.理发.开市.入殓.启攒.移柩.安葬.扫舍.",
		"j": "作灶.动土.上梁.栽种.入宅.移徙.修造.祈福.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0828": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.斋醮.普渡.移徙.入宅.出行.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.定磉.安门.安葬.破土.",
		"j": "开市.立券.置产.作灶.造桥.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0701": {
		"y": "纳采.冠笄.求医.治病.开市.立券.修造.动土.安机械.破土.安葬.",
		"j": "斋醮.祭祀.移徙.入宅.上梁.嫁娶.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0702": {
		"y": "祭祀.作灶.余事勿取.",
		"j": "开市.安葬.破土.修坟.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0703": {
		"y": "祭祀.祈福.求嗣.斋醮.安香.解除.移徙.入宅.会亲友.求医.治病.动土.破土.开生坟.合寿木.",
		"j": "合帐.上梁.经络.安葬.入殓.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0704": {
		"y": "嫁娶.冠笄.修造.动土.作灶.移徙.入宅.补垣.塞穴.纳畜.牧养.架马.修造.动土.起基.定磉.开池.造船.",
		"j": "祈福.开光.掘井.开市.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0705": {
		"y": "祭祀.交易.纳财.",
		"j": "斋醮.开渠.上梁.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0706": {
		"y": "嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕.",
		"j": "行丧.伐木.作梁.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0709": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0710": {
		"y": "祭祀.祈福.求嗣.开光.伐木.出火.拆卸.入宅.安床.修造.动土.上梁.挂匾.纳畜.",
		"j": "嫁娶.栽种.行丧.理发.修坟.行丧.作灶.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0711": {
		"y": "解除.祭祀.理发.入殓.安葬.破土.",
		"j": "嫁娶.开市.出火.作灶.置产.斋醮.入宅.移徙.安门.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0712": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0713": {
		"y": "开市.交易.立券.纳财.动土.开光.出行.嫁娶.纳采.订盟.出行.纳财.入学.开仓.出货财.纳畜.牧养.栽种.破土.启攒.安葬.立碑.",
		"j": "入宅.移徙.作灶.祭祀.谢土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0714": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.入殓.破土.谢土.安葬.",
		"j": "掘井.伐木.纳畜.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0715": {
		"y": "祭祀.冠笄.作灶.交易.纳财.栽种.结网.纳畜.牧养.进人口.",
		"j": "开渠.造船.安床.安葬.破土.出行.修坟.掘井.开市.开生坟.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0716": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.纳采.裁衣.冠笄.开光.安床.作梁.修造.动土.作灶.起基.上梁.造屋.纳畜.牧养.",
		"j": "移徙.栽种.出行.行丧.破土.安葬.词讼.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0719": {
		"y": "修造.动土.安机械.祭祀.沐浴.解除.拆卸.治病.作灶.造屋.起基.开池.扫舍.造畜椆栖.开生坟.合寿木.安葬.破土.启攒.移柩.入殓.立碑.",
		"j": "开市.入宅.出行.安床.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0721": {
		"y": "祭祀.嫁娶.畋猎.结网.",
		"j": "动土.破土.治病.开渠.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0722": {
		"y": "纳采.订盟.会亲友.入学.祭祀.祈福.求嗣.开光.出行.解除.理发.动土.起基.开市.交易.立券.纳财.造仓.栽种.纳畜.牧养.",
		"j": "嫁娶.作灶.出火.置产.嫁娶.入宅.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0723": {
		"y": "祭祀.祈福.解除.整手足甲.安床.沐浴.入殓.移柩.破土.启攒.安葬.谢土.",
		"j": "嫁娶.斋醮.开市.出火.入宅.移徙.出行.作灶.安门.伐木.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0724": {
		"y": "破屋.坏垣.解除.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0725": {
		"y": "嫁娶.开市.立券.移徙.入宅.安机械.会亲友.经络.安门.安床.挂匾.拆卸.开仓.出货财.开池.栽种.纳畜.牧养.破土.安葬.启攒.移柩.入殓.立碑.",
		"j": "祭祀.祈福.探病.谢土.造桥.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0729": {
		"y": "祭祀.入殓.除服.成服.移柩.破土.启攒.安葬.塞穴.断蚁.结网.",
		"j": "开市.入宅.嫁娶.开光.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0731": {
		"y": "祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.",
		"j": "嫁娶.出行.纳采.入宅.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0827": {
		"y": "祭祀.理发.作灶.沐浴.修饰垣墙.平治道涂.",
		"j": "嫁娶.栽种.祈福.造桥.安葬.安门.伐木.作梁.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0825": {
		"y": "解除.祭祀.祈福.求嗣.修造.动土.竖柱.上梁.安床.纳畜.造屋.合脊.起基.入殓.破土.安葬.",
		"j": "出火.嫁娶.开光.进人口.出行.词讼.开市.入宅.移徙.赴任.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0817": {
		"y": "破土.安葬.移柩.入殓.祭祀.捕捉.除服.成服.余事勿取.",
		"j": "嫁娶.入宅.开市.交易.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0815": {
		"y": "修饰垣墙.平治道涂.祭祀.沐浴.作灶.",
		"j": "嫁娶.词讼.治病.置产.作梁.祈福.安葬.栽种.伐木.安门.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0830": {
		"y": "沐浴.破屋.坏垣.余事勿取.",
		"j": "斋醮.开市.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0824": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.出行.解除.竖柱.入宅.移徙.纳财.上梁.纳畜.入殓.安葬.启攒.",
		"j": "栽种.掘井.动土.安床.破土.置产.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0814": {
		"y": "纳采.订盟.开光.出行.解除.安香.出火.拆卸.入宅.移徙.修造.上梁.安床.栽种.纳畜.会亲友.安机械.经络.",
		"j": "伐木.谢土.行丧.祭祀.作灶.动土.破土.安葬.祈福.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0823": {
		"y": "祭祀.出行.作梁.出火.拆卸.修造.动土.起基.安床.补垣.塞穴.入殓.破土.安葬.移柩.造畜椆栖.",
		"j": "嫁娶.入宅.斋醮.开光.针灸.掘井.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0831": {
		"y": "订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬.",
		"j": "动土.破土.嫁娶.掘井.安床.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0818": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "祈福.纳采.订盟.嫁娶.入宅.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0805": {
		"y": "求医.治病.破屋.坏垣.余事勿取.",
		"j": "嫁娶.出行.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0930": {
		"y": "祭祀.出行.",
		"j": "嫁娶.入宅.修造.动土.会亲友.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0801": {
		"y": "纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.",
		"j": "斋醮.入宅.安门.安葬.破土.行丧.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0802": {
		"y": "祭祀.修饰垣墙.平治道涂.",
		"j": "开市.动土.破土.嫁娶.修造.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0803": {
		"y": "订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.",
		"j": "嫁娶.安葬.行丧.破土.修坟.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0804": {
		"y": "沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.",
		"j": "出火.嫁娶.入宅.作灶.破土.上梁.动土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0806": {
		"y": "纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.",
		"j": "祈福.上梁.开仓.掘井.牧养.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0807": {
		"y": "祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.",
		"j": "嫁娶.开市.栽种.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0808": {
		"y": "嫁娶.出火.拆卸.祭祀.祈福.开光.伐木.动土.开市.交易.立券.入宅.移徙.安床.纳畜.入殓.安葬.",
		"j": "栽种.作灶.针灸.出行.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0809": {
		"y": "祭祀.开光.解除.移徙.裁衣.开市.立券.祈福.求嗣.进人口.交易.纳财.纳畜.",
		"j": "动土.破土.理发.出行.入宅.分居.安香.出火.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0810": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.安床.栽种.移柩.进人口.会亲友.除服.成服.",
		"j": "造屋.入殓.安葬.伐木.入宅.移徙.置产.纳畜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0811": {
		"y": "祭祀.动土.筑堤.开池.会亲友.塞穴.入殓.移柩.破土.安葬.",
		"j": "开光.出行.修造.上梁.入宅.安门.作灶.裁衣.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0812": {
		"y": "祭祀.裁衣.安门.纳财.扫舍.出行.进人口.作灶.纳畜.造畜椆栖.",
		"j": "安床.动土.安葬.开生坟.合寿木.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0813": {
		"y": "祭祀.解除.拆卸.修造.动土.起基.上梁.安床.安门.开渠.开池.入殓.破土.启攒.",
		"j": "嫁娶.出行.进人口.作灶.入宅.移徙.栽种.赴任.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0816": {
		"y": "嫁娶.祭祀.祈福.求嗣.出火.出行.开光.解除.拆卸.修造.进人口.安香.交易.立券.入宅.移徙.安床.动土.破土.谢土.安葬.入殓.除服.成服.",
		"j": "斋醮.开市.开仓.作灶.造船.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0819": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.安香.出火.解除.伐木.入宅.移徙.安床.开市.交易.立券.栽种.出火.出行.安葬.",
		"j": "掘井.理发.作灶.动土.破土.开池.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0820": {
		"y": "安机械.纳采.订盟.祭祀.祈福.求嗣.开光.普渡.出行.出火.拆卸.修造.动土.进人口.开市.交易.立券.移徙.安床.栽种.上梁.纳畜.破土.移柩.安葬.",
		"j": "入宅.嫁娶.掘井.牧养.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0821": {
		"y": "嫁娶.祭祀.祈福.求嗣.裁衣.冠笄.经络.修造.进人口.安床.动土.竖柱.上梁.移徙.交易.立券.栽种.会亲友.",
		"j": "行丧.安葬.出行.作梁.纳畜.伐木.造桥.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0822": {
		"y": "嫁娶.纳采.订盟.开光.祭祀.出行.理发.动土.安床.放水.开渠.栽种.进人口.",
		"j": "入宅.上梁.入殓.造屋.探病.作灶.安门.安葬.纳畜.伐木.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0826": {
		"y": "沐浴.理发.会亲友.塑绘.开光.栽种.牧养.嫁娶.经络.补垣.塞穴.",
		"j": "开市.入宅.动土.破土.安葬.作灶.上梁.安床.开仓.祈福.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0829": {
		"y": "祭祀.普渡.捕捉.解除.结网.畋猎.入殓.破土.安葬.",
		"j": "开市.交易.入宅.嫁娶.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0920": {
		"y": "纳采.订盟.开市.交易.立券.挂匾.纳财.栽种.进人口.入宅.移徙.安床.开光.出火.拆卸.安门.修造.",
		"j": "斋醮.嫁娶.行丧.动土.作灶.安葬.破土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d1030": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.安香.出火.造庙.移徙.出行.入宅.造庙.起基.竖柱.上梁.安床.纳畜.捕捉.纳婿.安葬.",
		"j": "开市.破土.掘井.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0901": {
		"y": "嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网.",
		"j": "纳采.订盟.经络.行丧.安葬.探病.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0902": {
		"y": "嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.",
		"j": "掘井.出行.破土.行丧.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0903": {
		"y": "嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒.",
		"j": "出火.入宅.造屋.安门.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0904": {
		"y": "嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.",
		"j": "动土.破土.掘井.开光.上梁.词讼.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0905": {
		"y": "嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.",
		"j": "开市.动土.破土.安床.开仓.上梁.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0906": {
		"y": "祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.",
		"j": "嫁娶.出行.入宅.开市.安门.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0907": {
		"y": "塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.",
		"j": "祈福.开市.动土.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0908": {
		"y": "开市.交易.立券.挂匾.开光.出行.入宅.移徙.安床.出火.上梁.",
		"j": "作灶.行丧.理发.乘船.嫁娶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0909": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0910": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.开市.交易.立券.挂匾.栽种.纳畜.入殓.安葬.除服.成服.",
		"j": "",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0911": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0912": {
		"y": "祭祀.治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0913": {
		"y": "嫁娶.纳采.订盟.祭祀.开光.出行.理发.作梁.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.移徙.拆卸.挂匾.栽种.纳畜.破土.安葬.入殓.除服.成服.",
		"j": "开市.掘井.开渠.造桥.造船.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0914": {
		"y": "开市.交易.立券.纳财.挂匾.栽种.祭祀.祈福.开光.拆卸.动土.安床.",
		"j": "嫁娶.破土.进人口.出行.入宅.移徙.出火.纳畜.词讼.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0915": {
		"y": "嫁娶.祭祀.理发.进人口.作灶.移柩.冠笄.会亲友.",
		"j": "开仓.出货财.伐木.纳畜.开市.上梁.造屋.破土.启攒.栽种.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0916": {
		"y": "祭祀.修坟.除服.成服.启攒.移柩.余事勿取.",
		"j": "开市.入宅.嫁娶.动土.破土.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0917": {
		"y": "嫁娶.冠笄.安机械.解除.纳畜.牧养.沐浴.伐木.架马.作梁.安门.扫舍.合寿木.安葬.启攒.立碑.修坟.",
		"j": "祈福.开光.开市.入宅.动土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0918": {
		"y": "祭祀.出行.沐浴.扫舍.安葬.余事勿取.",
		"j": "动土.破土.置产.掘井.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0919": {
		"y": "嫁娶.纳采.祭祀.解除.出行.修造.动土.开市.上梁.安床.整手足甲.扫舍.求医.治病.起基.定磉.造屋.合脊.",
		"j": "造庙.行丧.安葬.伐木.作灶.造船.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0921": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.入宅.安床.出行.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0922": {
		"y": "开光.祈福.求嗣.斋醮.修造.动土.纳财.造仓.作厕.栽种.牧养.会亲友.",
		"j": "作灶.出火.进人口.开渠.入宅.移徙.祭祀.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0923": {
		"y": "开光.解除.拆卸.修造.动土.竖柱.安门.牧养.安葬.修坟.破土.移柩.",
		"j": "出火.入宅.移徙.祈福.祭祀.安床.开市.嫁娶.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0924": {
		"y": "破屋.坏垣.求医.治病.余事勿取.",
		"j": "移徙.入宅.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0925": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.上梁.合脊.放水.掘井.破土.移柩.谢土.除服.成服.",
		"j": "开市.开仓.安门.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0926": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.解除.进人口.入宅.移徙.出火.安床.开市.交易.立券.挂匾.",
		"j": "安葬.纳畜.出行.行丧.伐木.栽种.造庙.造桥.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0927": {
		"y": "祭祀.冠笄.捕捉.余事勿取.",
		"j": "嫁娶.开市.造屋.作梁.合寿木.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0928": {
		"y": "祭祀.解除.结网.畋猎.取渔.会亲友.入学.移柩.启攒.除服.成服.",
		"j": "开市.祈福.动土.破土.入殓.安葬.造船.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0929": {
		"y": "冠笄.沐浴.出行.修造.动土.移徙.入宅.破土.安葬.",
		"j": "嫁娶.开市.祭祀.祈福.斋醮.纳采.修坟.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d1020": {
		"y": "祭祀.求嗣.冠笄.进人口.会亲友.安门.安床.经络.纳财.牧养.畋猎.放水.割蜜.",
		"j": "祈福.斋醮.纳采.订盟.嫁娶.入宅.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1022": {
		"y": "祭祀.冠笄.移徙.会亲友.纳财.理发.捕捉.",
		"j": "嫁娶.开市.开池.作厕.破土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d1010": {
		"y": "嫁娶.祭祀.作灶.纳财.",
		"j": "安葬.开市.修坟.立碑.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d1024": {
		"y": "嫁娶.裁衣.冠笄.合帐.祭祀.出行.安床.移徙.塞穴.入殓.破土.移柩.安葬.",
		"j": "开市.出行.栽种.置产.词讼.安门.掘井.开光.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d1012": {
		"y": "嫁娶.祭祀.祈福.求嗣.动土.安床.扫舍.入殓.移柩.破土.启攒.安葬.作灶.整手足甲.补垣.除服.成服.",
		"j": "开光.栽种.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d1002": {
		"y": "出行.开市.交易.立券.安机械.出火.上梁.移徙.",
		"j": "嫁娶.安葬.动土.造桥.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d1027": {
		"y": "纳采.订盟.开市.交易.立券.会亲友.纳畜.牧养.问名.移徙.解除.作厕.入学.起基.安床.开仓.出货财.安葬.启攒.入殓.除服.成服.",
		"j": "入宅.上梁.斋醮.出火.谢土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d1124": {
		"y": "嫁娶.纳采.订盟.祭祀.开光.出行.解除.伐木.出火.入宅.移徙.拆卸.修造.栽种.安葬.入殓.",
		"j": "破土.动土.安门.作灶.开市.交易.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d1001": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.",
		"j": "针灸.伐木.作梁.造庙.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d1003": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "斋醮.嫁娶.移徙.出行.上梁.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d1004": {
		"y": "嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬.",
		"j": "纳采.订盟.架马.词讼.开渠.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d1005": {
		"y": "沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.",
		"j": "祭祀.嫁娶.安床.开市.入宅.探病.上梁.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d1006": {
		"y": "余事勿取.",
		"j": "探病.余事勿取.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1007": {
		"y": "订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.",
		"j": "嫁娶.造庙.造桥.造船.作灶.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d1008": {
		"y": "嫁娶.求嗣.纳采.进人口.纳财.结网.纳畜.牧养.会亲友.",
		"j": "上梁.作灶.伐木.出行.安葬.安门.理发.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d1009": {
		"y": "嫁娶.祭祀.开市.开光.出行.入宅.移徙.出火.拆卸.修造.安床.",
		"j": "纳畜.伐木.置产.作梁.行丧.安葬.修坟.立碑.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d1011": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.进人口.开市.交易.立券.挂匾.纳财.入宅.移徙.栽种.破土.谢土.",
		"j": "安床.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d1013": {
		"y": "祭祀.祈福.求嗣.开光.出行.解除.上梁.入宅.移徙.安床.安门.纳财.纳畜.造畜椆栖.",
		"j": "伐木.行丧.破土.嫁娶.安葬.开渠.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d1014": {
		"y": "祭祀.开光.出行.解除.理发.伐木.出火.拆卸.上梁.合脊.安床.造畜椆栖.",
		"j": "嫁娶.安葬.行丧.词讼.造桥.作灶.破土.动土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d1015": {
		"y": "纳采.订盟.会亲友.沐浴.理发.裁衣.冠笄.安床.除服.成服.启攒.移柩.安葬.会亲友.开生坟.",
		"j": "开市.入宅.出行.嫁娶.修坟.祈福.动土.入宅.安门.谢土.上梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d1016": {
		"y": "解除.祭祀.修饰垣墙.平治道涂.造畜椆栖.余事勿取.",
		"j": "嫁娶.开市.交易.入宅.入学.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d1017": {
		"y": "入殓.破土.启攒.安葬.除服.成服.余事勿取.",
		"j": "开市.入宅.祭祀.置产.补垣.塞穴.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d1018": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.修造.动土.上梁.安床.纳畜.入殓.破土.",
		"j": "入宅.移徙.掘井.理发.伐木.交易.开市.作灶.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d1019": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "嫁娶.入宅.上梁.出行.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d1021": {
		"y": "嫁娶.纳采.订盟.开市.交易.立券.挂匾.祭祀.祈福.开光.造车器.挂匾.出行.入宅.移徙.安床.安门.拆卸.修造.动土.栽种.安葬.破土.启攒.除服.成服.入殓.立碑.",
		"j": "探病.纳畜.伐木.起基.作梁.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d1023": {
		"y": "祭祀.祈福.求嗣.斋醮.开光.出行.嫁娶.求医.治病.动土.破土.入学.起基.扫舍.竖柱.上梁.开仓.出货财.置产.栽种.牧养.开生坟.谢土.立碑.",
		"j": "安门.安床.裁衣.入宅.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d1025": {
		"y": "祭祀.造车器.出行.修造.上梁.造屋.安门.安床.造畜椆栖.教牛马.",
		"j": "出货财.开仓.动土.破土.安葬.行丧.伐木.开渠.栽种.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d1026": {
		"y": "祭祀.开光.出行.解除.伐木.作梁.出火.拆卸.入宅.移徙.安床.修造.造畜椆栖.扫舍.",
		"j": "造庙.嫁娶.掘井.栽种.造桥.作灶.动土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d1028": {
		"y": "祭祀.平治道涂.余事勿取.",
		"j": "嫁娶.开市.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d1029": {
		"y": "捕捉.畋猎.余事勿取.",
		"j": "开市.交易.祭祀.入宅.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d1031": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "开市.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1104": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.",
		"j": "开市.开仓.出货财.安床.安门.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d1121": {
		"y": "祭祀.塑绘.理发.会亲友.牧养.开池.造畜椆栖.畋猎.结网.",
		"j": "祈福.谢土.安葬.上梁.作灶.开市.嫁娶.出行.入宅.动土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d1224": {
		"y": "纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.",
		"j": "嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d1101": {
		"y": "订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.",
		"j": "嫁娶.开市.入宅.祈福.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d1102": {
		"y": "造车器.嫁娶.订盟.纳采.会亲友.祭祀.出行.开市.立券.移徙.入宅.破土.安葬.",
		"j": "上梁.开光.造屋.架马.合寿木.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d1103": {
		"y": "祭祀.作灶.纳财.捕捉.畋猎.余事勿取.",
		"j": "动土.破土.开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d1105": {
		"y": "冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.",
		"j": "开光.嫁娶.会亲友.栽种.针灸.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d1106": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜.",
		"j": "造庙.造船.动土.破土.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d1107": {
		"y": "出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.",
		"j": "嫁娶.动土.破土.修坟.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d1108": {
		"y": "嫁娶.开光.出行.解除.出火.拆卸.修造.进人口.动土.入宅.移徙.栽种.纳畜.掘井.安葬.除服.成服.",
		"j": "置产.安床.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d1109": {
		"y": "开光.裁衣.安门.会亲友.安床.结网.理发.",
		"j": "嫁娶.冠笄.出行.祈福.安葬.伐木.入宅.移徙.出火.栽种.动土.上梁.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1110": {
		"y": "嫁娶.开光.出行.出火.拆卸.修造.动土.入宅.移徙.安床.上梁.开市.交易.立券.栽种.",
		"j": "祈福.祭祀.伐木.掘井.作灶.谢土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1111": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出火.出行.拆卸.开市.交易.立券.挂匾.伐木.入宅.移徙.安床.安葬.",
		"j": "栽种.掘井.置产.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d1112": {
		"y": "祭祀.理发.针灸.解除.进人口.整手足甲.",
		"j": "嫁娶.动土.造船.开池.掘井.出行.修造.入宅.上梁.移徙.安葬.破土.作灶.开市.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d1113": {
		"y": "破屋.坏垣.求医.治病.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d1114": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.雕刻.移徙.开市.入宅.出行.动土.会亲友.入学.修造.动土.起基.安门.安床.造庙.解除.纳财.开池.造畜椆栖.牧养.牧养.",
		"j": "上梁.开仓.出货财.造屋.造船.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1115": {
		"y": "祭祀.祈福.求嗣.开光.解除.伐木.拆卸.修造.栽种.纳畜.安葬.修坟.立碑.",
		"j": "嫁娶.进人口.入宅.移徙.出火.出行.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d1116": {
		"y": "沐浴.扫舍.捕捉.畋猎.解除.塞穴.余事勿取.",
		"j": "嫁娶.入宅.开市.安床.破土.修坟.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d1117": {
		"y": "嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.开光.出行.解除.动土.开市.交易.立券.挂匾.拆卸.破土.",
		"j": "伐木.上梁.修造.入殓.理发.会亲友.入宅.安门.安葬.作灶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d1118": {
		"y": "合帐.裁衣.嫁娶.安床.入殓.移柩.破土.造畜椆栖.",
		"j": "置产.造船.开光.掘井.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d1119": {
		"y": "解除.修饰垣墙.冠笄.出行.余事勿取.",
		"j": "开市.动土.破土.嫁娶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d1120": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.进人口.开市.立券.挂匾.入宅.移徙.安门.栽种.动土.求医.治病.会亲友.起基.修造.造屋.安葬.",
		"j": "作灶.经络.安床.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d1122": {
		"y": "出行.纳财.开市.交易.立券.动土.移徙.入宅.裁衣.会亲友.拆卸.进人口.安香.经络.出货财.修饰垣墙.平治道涂.",
		"j": "造庙.谢土.作灶.作梁.伐木.安葬.行丧.修坟.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d1123": {
		"y": "嫁娶.纳采.订盟.祭祀.斋醮.开光.安香.出火.出行.出火.拆卸.动土.祈福.进人口.纳财.交易.立券.移徙.安床.修造.安葬.除服.成服.",
		"j": "置产.掘井.词讼.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d1125": {
		"y": "祭祀.解除.破屋.坏垣.求医.治病.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "破",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d1126": {
		"y": "祭祀.扫舍.破土.安葬.除服.成服.启攒.移柩.入殓.立碑.余事勿取.",
		"j": "祭祀.嫁娶.入宅.修造.动土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d1127": {
		"y": "订盟.纳采.会亲友.祭祀.祈福.修造.动土.安机械.破土.安葬.",
		"j": "嫁娶.移徙.出火.开市.入宅.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d1128": {
		"y": "祭祀.沐浴.捕捉.畋猎.结网.扫舍.",
		"j": "嫁娶.纳采.订盟.安床.动土.破土.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d1129": {
		"y": "开市.纳财.出行.祭祀.祈福.求嗣.斋醮.问名.入学.起基.定磉.置产.开渠.掘井.拆卸.栽种.纳畜.牧养.动土.破土.启攒.",
		"j": "移徙.入宅.出火.入殓.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d1130": {
		"y": "祭祀.理发.置产.塞穴.除服.成服.移柩.入殓.破土.安葬.",
		"j": "嫁娶.入宅.安床.掘井.开光.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d1214": {
		"y": "交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.",
		"j": "斋醮.入宅.修造.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d1204": {
		"y": "纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕.",
		"j": "开仓.造屋.造桥.祭祀.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d1221": {
		"y": "安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.",
		"j": "作灶.安门.造桥.开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d1228": {
		"y": "订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.",
		"j": "祈福.出火.嫁娶.入宅.开市.动土.破土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d1208": {
		"y": "破屋.坏垣.祭祀.沐浴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d1201": {
		"y": "祭祀.沐浴.出行.余事勿取.",
		"j": "开市.动土.破土.行丧.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d1202": {
		"y": "嫁娶.造车器.出行.会亲友.移徙.入宅.修造.动土.雕刻.开光.安香.出火.理发.会亲友.造屋.合脊.起基.归岫.安门.拆卸.扫舍.栽种.造畜椆栖.",
		"j": "开市.纳采.造庙.安床.开渠.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d1203": {
		"y": "塑绘.会亲友.安机械.塞穴.结网.裁衣.经络.",
		"j": "嫁娶.开市.祈福.斋醮.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d1205": {
		"y": "订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.",
		"j": "嫁娶.安葬.掘井.置产.造船.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1206": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.",
		"j": "开市.造庙.动土.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d1207": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d1209": {
		"y": "安床.祭祀.祈福.求嗣.冠笄.伐木.架马.动土.开池.作厕.结网.入殓.除服.成服.",
		"j": "安门.栽种.作灶.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d1210": {
		"y": "解除.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d1211": {
		"y": "祭祀.开光.理发.整手足甲.安床.作灶.扫舍.教牛马.",
		"j": "伐木.纳畜.破土.安葬.开生坟.嫁娶.开市.动土.交易.作梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d1212": {
		"y": "祭祀.祈福.求嗣.开光.拆卸.修造.动土.上梁.安床.置产.栽种.破土.",
		"j": "嫁娶.进人口.安葬.出行.赴任.入宅.移徙.入殓.开渠.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d1213": {
		"y": "沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓硙.筑堤.作厕.断蚁.",
		"j": "移徙.入宅.嫁娶.祈福.开光.掘井.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d1215": {
		"y": "嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.",
		"j": "斋醮.伐木.作梁.安葬.行丧.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d1216": {
		"y": "纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.",
		"j": "嫁娶.动土.破土.祈福.出火.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d1217": {
		"y": "祭祀.平治道涂.除服.成服.安葬.余事勿取.",
		"j": "嫁娶.入宅.纳采.订盟.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d1218": {
		"y": "纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.",
		"j": "开市.造庙.置产.掘井.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d1219": {
		"y": "嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.",
		"j": "开生坟.破土.行丧.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1220": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "移徙.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d1222": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.",
		"j": "伐木.作梁.动土.安床.破土.栽种.造桥.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d1223": {
		"y": "祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.",
		"j": "会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d1225": {
		"y": "入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.",
		"j": "嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d1226": {
		"y": "造畜椆栖.教牛马.",
		"j": "入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d1227": {
		"y": "订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.",
		"j": "破土.安葬.行丧.开生坟.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d1229": {
		"y": "祭祀.平治道涂.修坟.除服.成服.余事勿取.",
		"j": "移徙.入宅.嫁娶.掘井.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d1230": {
		"y": "嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.",
		"j": "开市.纳采.订盟.作灶.造庙.造船.经络.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1231": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓硙.动土.上梁.移徙.入宅.",
		"j": "出行.掘井.破土.行丧.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	}
};


},{}],202:[function(require,module,exports){
module.exports = {
	"d0101": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "嫁娶.移徙.入宅.探病.出行.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0201": {
		"y": "祭祀.解除.教牛马.会亲友.余事勿取.",
		"j": "破土.动土.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0102": {
		"y": "冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.",
		"j": "安门.动土.破土.行丧.安葬.成服.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0103": {
		"y": "纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.",
		"j": "嫁娶.动土.安床.造桥.掘井.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0104": {
		"y": "祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.",
		"j": "开市.斋醮.破土.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0105": {
		"y": "祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.",
		"j": "移徙.开市.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0106": {
		"y": "开市.交易.立券.纳财.纳畜.造畜椆栖.入宅.移徙.安床.开光.祈福.求嗣.动土.",
		"j": "嫁娶.栽种.安葬.理发.造庙.作灶.入殓.行丧.造桥.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0107": {
		"y": "安床.裁衣.交易.立券.入殓.移柩.安葬.除服.成服.",
		"j": "置产.嫁娶.出行.开光.栽种.动土.破土.入宅.治病.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0108": {
		"y": "祭祀.解除.造畜椆栖.教牛马.针灸.余事勿取.",
		"j": "嫁娶.动土.开池.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0109": {
		"y": "沐浴.塑绘.开光.纳采.订盟.开市.交易.立券.纳财.起基.动土.定磉.放水.安葬.破土.启攒.修坟.立碑.移柩.",
		"j": "入宅.安门.祭祀.谢土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0110": {
		"y": "嫁娶.出行.理发.安床.启攒.安葬.修坟.开市.交易.立券.纳财.开池.牧养.",
		"j": "掘井.祈福.谢土.动土.入宅.上梁.修造.作灶.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0111": {
		"y": "解除.平治道涂.余事勿取.",
		"j": "移徙.入宅.掘井.造庙.栽种.针灸.治病.开池.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0112": {
		"y": "嫁娶.祭祀.开光.伐木.出火.拆卸.入宅.移徙.修造.动土.上梁.安床.纳畜.",
		"j": "开市.行丧.栽种.出行.出货财.安葬.置产.词讼.治病.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0113": {
		"y": "嫁娶.纳采.订盟.入宅.移徙.安床.祭祀.祈福.开光.出行.解除.出火.拆卸.动土.纳畜.谢土.安葬.破土.",
		"j": "伐木.开市.交易.上梁.作灶.安门.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0114": {
		"y": "祭祀.破屋.坏垣.解除.余事勿取.",
		"j": "开市.动土.破土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0115": {
		"y": "嫁娶.纳采.订盟.开光.安香.出火.纳财.开市.交易.立券.裁衣.造屋.起基.修造.动土.安门.移徙.入宅.栽种.牧养.畋猎.掘井.开池.安葬.破土.入殓.除服.成服.立碑.",
		"j": "祈福.造庙.祭祀.安床.谢土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0116": {
		"y": "祭祀.斋醮.入殓.破土.启攒.安葬.修坟.立碑.除服.成服.",
		"j": "嫁娶.入宅.作灶.纳采.订盟.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0117": {
		"y": "祭祀.斋醮.纳财.捕捉.畋猎.",
		"j": "嫁娶.开市.入宅.安床.破土.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0118": {
		"y": "纳采.订盟.祭祀.祈福.求嗣.斋醮.沐浴.进人口.会亲友.入学.治病.安碓硙.掘井.开池.纳畜.牧养.造畜椆栖.",
		"j": "嫁娶.合帐.入宅.行丧.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0119": {
		"y": "祭祀.祈福.求嗣.沐浴.问名.交易.纳财.入殓.移柩.安葬.修坟.立碑.谢土.造畜椆栖.教牛马.",
		"j": "入宅.置产.嫁娶.动土.栽种.开市.开光.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0120": {
		"y": "祭祀.教牛马.造畜椆栖.祭祀.会亲友.解除.余事勿取.",
		"j": "嫁娶.入宅.出行.动土.破土.安葬.行丧.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0121": {
		"y": "嫁娶.开光.解除.出火.拆卸.修造.进人口.入宅.移徙.安床.栽种.入殓.修坟.动土.除服.成服.",
		"j": "作灶.安葬.祭祀.开市.纳采.订盟.纳畜.谢土.出行.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0122": {
		"y": "出行.起基.安床.纳财.交易.立券.嫁娶.栽种.入殓.移柩.安葬.",
		"j": "挂匾.入宅.上梁.祈福.词讼.作梁.作灶.开池.安门.动土.破土.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0123": {
		"y": "平治道涂.余事勿取.",
		"j": "开光.嫁娶.开仓.出货财.造船.安葬.探病.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0124": {
		"y": "嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产.",
		"j": "开市.出行.安葬.行丧.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0125": {
		"y": "沐浴.捕捉.畋猎.理发.整手足甲.入殓.除服.成服.破土.安葬.谢土.立碑.修坟.启攒.",
		"j": "纳采.订盟.嫁娶.上梁.开市.斋醮.造屋.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0126": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "斋醮.嫁娶.开市.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0127": {
		"y": "沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬.",
		"j": "祈福.嫁娶.安床.入宅.造船.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0128": {
		"y": "祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取.",
		"j": "造庙.入宅.修造.安葬.行丧.嫁娶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0129": {
		"y": "嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.",
		"j": "开市.安床.安葬.修坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0130": {
		"y": "订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井.",
		"j": "造庙.嫁娶.出行.动土.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0131": {
		"y": "交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.",
		"j": "开光.嫁娶.开市.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0214": {
		"y": "开光.解除.伐木.竖柱.上梁.交易.立券.纳畜.入殓.移柩.安葬.",
		"j": "入宅.出行.移徙.祭祀.嫁娶.动土.破土.作灶.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0204": {
		"y": "嫁娶.冠笄.纳采.出行.会亲友.上梁.安机械.安床.牧养.畋猎.祭祀.祈福.开光.修造.安门.造屋.起基.",
		"j": "入宅.作灶.治病.安葬.移徙.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0219": {
		"y": "纳采.嫁娶.祭祀.祈福.出行.修造.动土.移徙.入宅.安葬.破土.",
		"j": "开市.入宅.斋醮.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0229": {
		"y": "祭祀.平治道涂.余事勿取.",
		"j": "嫁娶.祈福.掘井.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0224": {
		"y": "纳采.嫁娶.祭祀.祈福.出行.开市.会亲友.动土.破土.启攒.",
		"j": "移徙.入宅.出火.安门.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0225": {
		"y": "祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "嫁娶.动土.开光.造屋.破土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0215": {
		"y": "祭祀.祈福.求嗣.开光.嫁娶.出行.解除.伐木.拆卸.进人口.安床.动土.起基.上梁.栽种.纳畜.破土.谢土.启攒.安葬.",
		"j": "移徙.入宅.出火.作灶.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0209": {
		"y": "祭祀.斋醮.沐浴.开生坟.除服.成服.移柩.入殓.破土.安葬.合寿木.",
		"j": "开市.嫁娶.安床.会亲友.入宅.作灶.上梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0205": {
		"y": "修饰垣墙.平治道涂.祭祀.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0226": {
		"y": "纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.",
		"j": "祭祀.移徙.入宅.动土.破土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0221": {
		"y": "纳采.订盟.祭祀.祈福.安香.出火.修造.出行.开市.移徙.入宅.动土.安葬.破土.",
		"j": "安床.作灶.造船.会亲友.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0326": {
		"y": "嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬.",
		"j": "纳畜.理发.合寿木.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0202": {
		"y": "纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓.",
		"j": "探病.祭祀.出行.上梁.造屋.谢土.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0203": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.",
		"j": "入宅.开光.开市.动土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0206": {
		"y": "造车器.纳采.订盟.祭祀.祈福.求嗣.移徙.出行.开市.出火.入宅.立券.交易.入宅.安门.安床.安葬.谢土.",
		"j": "开光.造屋.动土.作灶.栽种.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0207": {
		"y": "动土.入殓.嫁娶.移柩.安葬.破土.",
		"j": "开市.作灶.安床.入宅.上梁.裁衣.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0208": {
		"y": "求医.治病.破屋.坏垣.余事勿取.",
		"j": "开市.嫁娶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0210": {
		"y": "祭祀.塞穴.结网.破土.谢土.安葬.移柩.除服.成服.余事勿取.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0211": {
		"y": "祭祀.沐浴.理发.作灶.结网.栽种.",
		"j": "嫁娶.词讼.行丧.安葬.牧养.伐木.作梁.开市.纳畜.造畜椆栖.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0212": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出行.开市.交易.立券.动土.纳财.掘井.会亲友.",
		"j": "入宅.安葬.伐木.作梁.纳畜.造畜椆栖.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0213": {
		"y": "祭祀.祈福.求嗣.纳畜.入殓.启攒.谢土.除服.成服.",
		"j": "栽种.开光.出行.针灸.嫁娶.入宅.动土.破土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0216": {
		"y": "会亲友.冠笄.安床.会亲友.安机械.祭祀.祈福.求嗣.经络.",
		"j": "嫁娶.开市.动土.作灶.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0217": {
		"y": "作灶.解除.平治道涂.余事勿取.",
		"j": "祭祀.祈福.安葬.安门.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0218": {
		"y": "嫁娶.祭祀.冠笄.修饰垣墙.置产.",
		"j": "经络.探病.造屋.作灶.动土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0220": {
		"y": "祭祀.沐浴.解除.理发.扫舍.破屋.坏垣.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0222": {
		"y": "塞穴.结网.取渔.畋猎.",
		"j": "嫁娶.安门.移徙.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0223": {
		"y": "纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅.",
		"j": "嫁娶.开市.安葬.破土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0227": {
		"y": "祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬.",
		"j": "开光.嫁娶.作灶.掘井.纳畜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0228": {
		"y": "会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.",
		"j": "开市.动土.安葬.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0324": {
		"y": "纳财.开市.交易.立券.开光.针灸.会亲友.理发.安床.造仓.结网.",
		"j": "移徙.入宅.栽种.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0328": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "嫁娶.移徙.开市.入宅.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0327": {
		"y": "祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.",
		"j": "纳采.开光.安床.嫁娶.开市.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0320": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.破土.出火.安门.安床.上梁.立碑.移柩.",
		"j": "开市.交易.合帐.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0428": {
		"y": "祭祀.解除.教牛马.出行.余事勿取.",
		"j": "动土.破土.行丧.开光.作梁.安葬.探病.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0301": {
		"y": "祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土.",
		"j": "置产.造屋.合脊.开光.探病.安门.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0302": {
		"y": "入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.",
		"j": "开光.开市.入宅.动土.造屋.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0303": {
		"y": "祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取.",
		"j": "入宅.开市.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0304": {
		"y": "祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土.",
		"j": "安床.栽种.治病.作灶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0305": {
		"y": "嫁娶.祭祀.出行.冠笄.立券.交易.进人口.开市.移徙.修造.动土.安床.入殓.移柩.破土.",
		"j": "开光.作灶.斋醮.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0306": {
		"y": "开市.立券.交易.挂匾.祭祀.祈福.开光.入宅.移徙.安床.拆卸.动土.上梁.进人口.",
		"j": "嫁娶.行丧.架马.作梁.理发.牧养.安葬.纳畜.伐木.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0307": {
		"y": "理发.冠笄.嫁娶.进人口.",
		"j": "置产.伐木.纳畜.造畜椆栖.安葬.破土.作梁.作灶.开生坟.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0308": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出火.入宅.移徙.安床.拆卸.动土.破土.谢土.",
		"j": "合帐.开市.安葬.入殓.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0309": {
		"y": "安床.伐木.拆卸.修造.动土.上梁.立券.交易.栽种.纳畜.牧养.入殓.安葬.",
		"j": "嫁娶.祭祀.开光.出行.出火.移徙.入宅.安门.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0310": {
		"y": "祭祀.祈福.求嗣.斋醮.嫁娶.冠笄.出行.开市.交易.会亲友.教牛马.除服.成服.启攒.安葬.移柩.",
		"j": "祈福.动土.移徙.入宅.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0311": {
		"y": "塞穴.整手足甲.解除.捕捉.畋猎.结网.余事勿取.诸事不宜.",
		"j": "嫁娶.作灶.掘井.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0312": {
		"y": "纳财.开市.立券.交易.开光.安床.上梁.造屋.修造.起基.",
		"j": "动土.破土.安葬.行丧.赴任.出行.嫁娶.入宅.移徙.谢土.词讼.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0313": {
		"y": "祭祀.祈福.嫁娶.冠笄.修饰垣墙.置产.平治道涂.",
		"j": "开仓.出货财.造屋.作灶.开市.交易.立券.栽种.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0314": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出行.出火.进人口.入宅.移徙.安床.拆卸.修造.安门.挂匾.纳财.扫舍.",
		"j": "动土.伐木.安葬.行丧.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0315": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.出行.出火.入宅.移徙.解除.栽种.伐木.破土.谢土.安葬.",
		"j": "开市.交易.作灶.纳财.上梁.安床.造屋.造船.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0316": {
		"y": "破屋.坏垣.求医.治病.余事勿取.",
		"j": "开光.嫁娶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0317": {
		"y": "纳采.交易.立券.安床.安机械.安葬.移柩.动土.破土.立碑.",
		"j": "嫁娶.开光.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0318": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.开光.理发.经络.解除.治病.治病.立碑.栽种.牧养.掘井.开池.",
		"j": "嫁娶.定磉.合寿木.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0319": {
		"y": "纳财.交易.立券.栽种.捕捉.结网.取渔.进人口.教牛马.理发.",
		"j": "入宅.造屋.竖柱.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0321": {
		"y": "冠笄.立券.交易.修造.动土.安机械.入殓.安葬.破土.",
		"j": "嫁娶.祈福.出火.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0322": {
		"y": "祭祀.会亲友.出行.立券.交易.冠笄.纳财.",
		"j": "嫁娶.动土.掘井.起基.定磉.破土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0323": {
		"y": "祭祀.沐浴.解除.扫舍.塞穴.牧养.",
		"j": "嫁娶.安葬.行丧.安门.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0325": {
		"y": "嫁娶.冠笄.会亲友.安机械.纳财.交易.立券.置产.",
		"j": "开市.造屋.治病.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0329": {
		"y": "嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.",
		"j": "塑绘.开光.造桥.除服.成服.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0330": {
		"y": "开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财.",
		"j": "祈福.嫁娶.安葬.破土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0331": {
		"y": "理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.",
		"j": "纳财.开市.安葬.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0427": {
		"y": "祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.",
		"j": "开光.嫁娶.掘井.安葬.安门.探病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0423": {
		"y": "沐浴.捕捉.畋猎.结网.取渔.",
		"j": "祭祀.嫁娶.入宅.作灶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0413": {
		"y": "祭祀.修门.取渔.纳财.纳畜.余事勿取.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0403": {
		"y": "祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.",
		"j": "栽种.动土.安葬.掘井.修坟.探病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0418": {
		"y": "祭祀.塑绘.开光.纳采.嫁娶.开市.出行.会亲友.安床.结网.除服.成服.启攒.安葬.移柩.",
		"j": "祈福.入宅.造屋.动土.破土.探病.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0424": {
		"y": "祭祀.祈福.求嗣.斋醮.纳采.订盟.开光.竖柱.上梁.开仓.出货财.造屋.起基.定磉.安门.诸事不宜.破土.入殓.启攒.谢土.",
		"j": "出火.嫁娶.开市.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0414": {
		"y": "安香.出火.纳采.订盟.嫁娶.开市.立券.交易.挂匾.开光.出行.解除.安床.栽种.置产.拆卸.修造.动土.",
		"j": "作灶.安葬.祭祀.入殓.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0429": {
		"y": "沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.",
		"j": "开市.嫁娶.移徙.入宅.掘井.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0422": {
		"y": "祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.",
		"j": "祈福.斋醮.开市.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0524": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.治病.造车器.修造.动土.移徙.入宅.",
		"j": "开市.出行.安床.作灶.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0401": {
		"y": "开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养.",
		"j": "纳采.动土.开市.交易.安门.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0402": {
		"y": "裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.",
		"j": "祭祀.嫁娶.出行.上梁.掘井.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0404": {
		"y": "祭祀.出行.教牛马.扫舍.余事勿取.",
		"j": "开光.伐木.安葬.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0405": {
		"y": "祭祀.祈福.求嗣.开光.纳采.订盟.解除.栽种.纳畜.牧养.扫舍.进人口.",
		"j": "修坟.造桥.作灶.出行.安葬.造屋.入宅.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0406": {
		"y": "开光.出行.交易.塞穴.嫁娶.理发.开市.安床.",
		"j": "祈福.出火.置产.动土.破土.安葬.修造.上梁.置产.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0407": {
		"y": "祭祀.作灶.畋猎.结网.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.安床.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0408": {
		"y": "沐浴.祭祀.解除.安葬.破土.谢土.移柩.余事勿取.",
		"j": "斋醮.开光.嫁娶.入宅.上梁.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0409": {
		"y": "祭祀.解除.入殓.移柩.启攒.安葬.整手足甲.捕捉.畋猎.取渔.除服.成服.扫舍.谢土.斋醮.",
		"j": "动土.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0410": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.求医.治病.余事勿取.",
		"j": "嫁娶.开市.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0411": {
		"y": "沐浴.塞穴.畋猎.结网.取渔.扫舍.余事勿取.",
		"j": "祈福.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0412": {
		"y": "开市.交易.立券.挂匾.祭祀.开光.祈福.求嗣.安床.解除.修造.安葬.",
		"j": "纳采.问名.订盟.嫁娶.入宅.开仓.出火.动土.破土.纳畜.伐木.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0415": {
		"y": "祭祀.出行.修造.动土.合帐.造畜椆栖.安床.移徙.入殓.移柩.破土.启攒.安葬.开生坟.合寿木.补垣.塞穴.",
		"j": "移徙.入宅.作灶.理发.开光.安门.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0416": {
		"y": "祭祀.修饰垣墙.余事勿取.",
		"j": "开光.修造.动土.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0417": {
		"y": "嫁娶.祭祀.祈福.求嗣.斋醮.开光.出火.移徙.入宅.竖柱.上梁.会亲友.造屋.起基.治病.治病.安门.造车器.掘井.开池.",
		"j": "纳采.出行.修坟.安葬.开市.立券.作灶.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0419": {
		"y": "祭祀.作灶.平治道涂.余事勿取.",
		"j": "安床.入宅.安碓硙.栽种.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0420": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.纳畜.入殓.破土.安葬.",
		"j": "移徙.入宅.嫁娶.出行.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0421": {
		"y": "纳采.祭祀.祈福.求嗣.斋醮.出行.起基.造屋.定磉.安门.入殓.安葬.",
		"j": "嫁娶.开市.纳财.出火.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0425": {
		"y": "祭祀.捕捉.解除.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0426": {
		"y": "纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.",
		"j": "祈福.动土.破土.安葬.入殓.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0430": {
		"y": "求嗣.出行.解除.订盟.纳采.嫁娶.会亲友.进人口.安床.开市.交易.纳畜.牧养.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "祈福.开市.修造.动土.破土.谢土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0514": {
		"y": "纳采.嫁娶.裁衣.理发.出行.修造.动土.进人口.开市.交易.立券.挂匾.移徙.上梁.栽种.纳畜.",
		"j": "伐木.安葬.安床.祭祀.祈福.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0504": {
		"y": "祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.",
		"j": "嫁娶.开市.交易.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0624": {
		"y": "嫁娶.安机械.交易.出行.祭祀.祈福.求嗣.斋醮.塑绘.开光.合帐.裁衣.放水.开池.掘井.",
		"j": "作灶.理发.造桥.行丧.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0501": {
		"y": "祭祀.作灶.平治道涂.余事勿取.",
		"j": "嫁娶.安葬.动土.安床.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0502": {
		"y": "造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮.",
		"j": "入宅.动土.开仓.出货财.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0503": {
		"y": "祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.",
		"j": "开市.动土.掘井.开池.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0505": {
		"y": "破屋.坏垣.沐浴.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0506": {
		"y": "纳采.订盟.嫁娶.造车器.祭祀.祈福.求嗣.开光.出火.拆卸.修造.动土.进人口.挂匾.入宅.移徙.安床.栽种.入殓.破土.安葬.除服.成服.",
		"j": "开市.立券.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0507": {
		"y": "开市.交易.立券.祭祀.祈福.开光.动土.安床.出行.栽种.纳畜.牧养.竖柱.上梁.解除.破土.",
		"j": "嫁娶.掘井.入宅.移徙.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0508": {
		"y": "解除.出行.纳采.冠笄.竖柱.上梁.移徙.作灶.进人口.入宅.纳畜.牧养.",
		"j": "祭祀.伐木.架马.安床.修造.动土.安葬.修坟.破土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0509": {
		"y": "祭祀.祈福.求嗣.开光.出行.开市.交易.立券.栽种.安床.纳畜.移徙.起基.动土.定磉.造仓.置产.破土.启攒.修坟.",
		"j": "入宅.移徙.修造.安门.伐木.入殓.安葬.造屋.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0510": {
		"y": "嫁娶.交易.立券.作厕.补垣.塞穴.畋猎.取渔.开生坟.",
		"j": "安床.开渠.上梁.修造.开市.开光.入宅.移徙.安床.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0511": {
		"y": "塞穴.断蚁.结网.畋猎.余事勿取.",
		"j": "嫁娶.安葬.入宅.出行.动土.词讼.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0512": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.解除.出行.出火.入宅.移徙.栽种.纳畜.牧养.动土.破土.入殓.安葬.",
		"j": "作灶.安床.开仓.造屋.动土.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0513": {
		"y": "开光.纳采.裁衣.冠笄.安床.作灶.进人口.造仓.塞穴.",
		"j": "嫁娶.栽种.修造.动土.出行.伐木.作梁.安葬.谢土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0515": {
		"y": "开市.交易.立券.挂匾.祭祀.祈福.斋醮.出行.开市.交易.立券.造屋.起基.修造.动土.定磉.安床.安机械.安葬.破土.启攒.除服.成服.立碑.",
		"j": "作灶.嫁娶.移徙.入宅.理发.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0516": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.修造.进人口.入宅.移徙.安床.解除.挂匾.栽种.破土.谢土.入殓.移柩.安葬.",
		"j": "开市.立券.造船.合寿木.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0517": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "开光.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0518": {
		"y": "订盟.纳采.嫁娶.解除.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.入宅.移徙.安床.栽种.纳畜.动土.破土.谢土.安葬.修坟.",
		"j": "作灶.开市.经络.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0519": {
		"y": "祭祀.祈福.求嗣.开光.订盟.纳采.解除.动土.起基.进人口.开市.交易.立券.纳财.造仓.开池.栽种.纳畜.破土.安葬.",
		"j": "安床.上梁.裁衣.入宅.嫁娶.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0520": {
		"y": "祭祀.结网.捕捉.余事勿取.",
		"j": "探病.嫁娶.开市.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0521": {
		"y": "祭祀.祈福.求嗣.开光.纳采.订盟.嫁娶.出行.动土.破土.会亲友.开市.交易.立券.习艺.拆卸.起基.安碓硙.放水.开池.造仓.开渠.栽种.谢土.启攒.修坟.立碑.",
		"j": "入宅.安门.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0522": {
		"y": "嫁娶.冠笄.祭祀.出行.移徙.入宅.作灶.造车器.补垣.塞穴.作厕.破土.启攒.除服.成服.入殓.",
		"j": "入宅.造屋.造桥.安门.安葬.上梁.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0523": {
		"y": "祭祀.解除.断蚁.会亲友.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0525": {
		"y": "嫁娶.纳采.订盟.会亲友.安机械.结网.冠笄.祭祀.求嗣.进人口.经络.",
		"j": "开市.作灶.动土.行丧.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0526": {
		"y": "祭祀.沐浴.移徙.破土.安葬.扫舍.平治道涂.",
		"j": "祈福.嫁娶.入宅.安床.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0527": {
		"y": "祭祀.祈福.斋醮.求嗣.安机械.纳畜.移徙.入宅.安机械.塑绘.开光.起基.竖柱.上梁.作灶.安门.安香.出火.造屋.启攒.安葬.",
		"j": "动土.破土.嫁娶.嫁娶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0528": {
		"y": "嫁娶.纳采.订盟.斋醮.开光.祭祀.祈福.求医.治病.会亲友.动土.解除.捕捉.纳畜.牧养.入殓.破土.安葬.",
		"j": "移徙.入宅.造屋.架马.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0529": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "行丧.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0530": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "斋醮.开市.嫁娶.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0531": {
		"y": "开市.交易.立券.安机械.会亲友.开光.求医.治病.造屋.起基.修造.动土.定磉.竖柱.上梁.安门.作灶.放水.作厕.开池.栽种.牧养.造畜椆栖.破土.安葬.立碑.",
		"j": "嫁娶.出火.移徙.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0622": {
		"y": "纳采.订盟.冠笄.祭祀.祈福.斋醮.出行.修造.动土.移徙.入宅.安香.出火.拆卸.造屋.起基.竖柱.上梁.定磉.安门.开池.",
		"j": "嫁娶.开市.合寿木.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0612": {
		"y": "祭祀.斋醮.塑绘.开光.出行.修造.动土.造畜椆栖.安床.放水.掘井.开池.作厕.结网.破土.",
		"j": "出火.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0626": {
		"y": "祭祀.作灶.余事勿取.",
		"j": "开市.安葬.破土.修坟.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0602": {
		"y": "嫁娶.祭祀.祈福.求嗣.斋醮.订盟.纳采.解除.出行.动土.破土.习艺.针灸.理发.会亲友.起基.修造.动土.竖柱.定磉.安床.拆卸.纳畜.牧养.放水.破土.除服.成服.修坟.立碑.",
		"j": "开市.入宅.探病.出火.造屋.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0630": {
		"y": "嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕.",
		"j": "行丧.伐木.作梁.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0625": {
		"y": "纳采.冠笄.求医.治病.开市.立券.修造.动土.安机械.破土.安葬.",
		"j": "斋醮.祭祀.移徙.入宅.上梁.嫁娶.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0614": {
		"y": "祭祀.结网.余事勿取.",
		"j": "入宅.出行.掘井.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0623": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "入宅.嫁娶.移徙.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0615": {
		"y": "嫁娶.纳采.订盟.冠笄.造车器.祭祀.开光.祈福.求嗣.出行.解除.伐木.出火.入宅.拆卸.修造.动土.上梁.安床.栽种.破土.",
		"j": "行丧.置产.入宅.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0613": {
		"y": "开市.交易.立券.挂匾.开光.解除.拆卸.动土.安床.修造.上梁.置产.栽种.破土.安葬.",
		"j": "作灶.出火.祭祀.嫁娶.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0604": {
		"y": "塞穴.断蚁.结网.余事勿取.",
		"j": "破土.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0603": {
		"y": "余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0616": {
		"y": "嫁娶.合帐.裁衣.冠笄.伐木.上梁.出火.拆卸.移徙.修造.动土.安门.纳财.筑堤.栽种.塞穴.",
		"j": "安床.祈福.出行.安葬.行丧.开光.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0605": {
		"y": "祭祀.教牛马.断蚁.余事勿取.",
		"j": "斋醮.移徙.入宅.动土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0726": {
		"y": "纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.",
		"j": "斋醮.入宅.安门.安葬.破土.行丧.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0601": {
		"y": "栽种.捕捉.畋猎.余事勿取.",
		"j": "开市.动土.祭祀.斋醮.安葬.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0606": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.开市.纳财.立券.移徙.出行.修造.动土.起基.定磉.竖柱.拆卸.扫舍.放水.安香.安床.造船.开池.掘井.造畜椆栖.栽种.",
		"j": "行丧.安葬.破土.作灶.伐木.斋醮.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0607": {
		"y": "嫁娶.开光.祭祀.祈福.出行.解除.移徙.入宅.开市.纳财.起基.修造.竖柱.上梁.造屋.作灶.出火.安香.补垣.塞穴.拆卸.放水.扫舍.造仓.造船.栽种.安葬.",
		"j": "纳采.订盟.安床.谢土.破土.动土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0608": {
		"y": "嫁娶.祭祀.理发.作灶.修饰垣墙.平治道涂.整手足甲.沐浴.冠笄.",
		"j": "破土.出行.栽种.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0609": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.入宅.移徙.安床.交易.立券.挂匾.纳财.入殓.安葬.启攒.除服.成服.",
		"j": "动土.掘井.破土.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0610": {
		"y": "畋猎.捕捉.结网.取渔.祭祀.沐浴.余事勿取.",
		"j": "嫁娶.开市.安葬.启攒.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0611": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "移徙.入宅.开仓.出货财.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0617": {
		"y": "出行.教牛马.割蜜.余事勿取.",
		"j": "斋醮.造屋.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0618": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.修造.进人口.入宅.移徙.动土.安床.纳畜.栽种.纳财.交易.立券.挂匾.造畜椆栖.",
		"j": "安葬.开生坟.合寿木.行丧.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0619": {
		"y": "安机械.祭祀.祈福.求嗣.沐浴.解除.纳采.开市.修造.竖柱.上梁.开柱眼.安碓硙.归岫.补垣.塞穴.拆卸.放水.出火.扫舍.开生坟.合寿木.安葬.谢土.启攒.除服.成服.",
		"j": "嫁娶.安床.作灶.动土.破土.造船.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0620": {
		"y": "祭祀.沐浴.理发.整手足甲.修饰垣墙.平治道涂.余事勿取.",
		"j": "开市.入宅.出行.修造.词讼.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0621": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.立券.移徙.入宅.动土.破土.安葬.",
		"j": "开光.作灶.造屋.架马.开仓.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0627": {
		"y": "祭祀.祈福.求嗣.斋醮.安香.解除.移徙.入宅.会亲友.求医.治病.动土.破土.开生坟.合寿木.",
		"j": "合帐.上梁.经络.安葬.入殓.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0628": {
		"y": "嫁娶.冠笄.修造.动土.作灶.移徙.入宅.补垣.塞穴.纳畜.牧养.架马.修造.动土.起基.定磉.开池.造船.",
		"j": "祈福.开光.掘井.开市.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0629": {
		"y": "祭祀.交易.纳财.",
		"j": "斋醮.开渠.上梁.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0716": {
		"y": "纳采.订盟.会亲友.入学.祭祀.祈福.求嗣.开光.出行.解除.理发.动土.起基.开市.交易.立券.纳财.造仓.栽种.纳畜.牧养.",
		"j": "嫁娶.作灶.出火.置产.嫁娶.入宅.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0706": {
		"y": "嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.",
		"j": "开市.安门.掘井.作灶.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0727": {
		"y": "祭祀.修饰垣墙.平治道涂.",
		"j": "开市.动土.破土.嫁娶.修造.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0717": {
		"y": "祭祀.祈福.解除.整手足甲.安床.沐浴.入殓.移柩.破土.启攒.安葬.谢土.",
		"j": "嫁娶.斋醮.开市.出火.入宅.移徙.出行.作灶.安门.伐木.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0731": {
		"y": "纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.",
		"j": "祈福.上梁.开仓.掘井.牧养.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0827": {
		"y": "嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.",
		"j": "掘井.出行.破土.行丧.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0701": {
		"y": "开光.求嗣.出行.冠笄.嫁娶.伐木.架马.开柱眼.修造.移徙.入宅.开市.交易.立券.出行.安香.出火.挂匾.起基.修造.开生坟.合寿木.入殓.除服.成服.移柩.安葬.",
		"j": "安床.出货财.作灶.动土.破土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0702": {
		"y": "祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.",
		"j": "斋醮.出行.治病.合寿木.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0703": {
		"y": "安机械.移徙.入宅.出行.祭祀.祈福.斋醮.纳采.订盟.安香.出火.解除.会亲友.修造.动土.拆卸.起基.定磉.移徙.入宅.造屋.安床.修造.破土.安葬.入殓.立碑.",
		"j": "开市.伐木.作梁.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0704": {
		"y": "祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.",
		"j": "开市.交易.嫁娶.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0705": {
		"y": "破屋.坏垣.求医.治病.畋猎.余事勿取.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0707": {
		"y": "开市.交易.立券.纳财.动土.开光.出行.嫁娶.纳采.订盟.出行.纳财.入学.开仓.出货财.纳畜.牧养.栽种.破土.启攒.安葬.立碑.",
		"j": "入宅.移徙.作灶.祭祀.谢土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0708": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.入殓.破土.谢土.安葬.",
		"j": "掘井.伐木.纳畜.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0709": {
		"y": "祭祀.冠笄.作灶.交易.纳财.栽种.结网.纳畜.牧养.进人口.",
		"j": "开渠.造船.安床.安葬.破土.出行.修坟.掘井.开市.开生坟.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0710": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.纳采.裁衣.冠笄.开光.安床.作梁.修造.动土.作灶.起基.上梁.造屋.纳畜.牧养.",
		"j": "移徙.栽种.出行.行丧.破土.安葬.词讼.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0711": {
		"y": "经络.祭祀.沐浴.补垣.塞穴.除服.成服.移柩.入殓.启攒.立碑.",
		"j": "开光.治病.嫁娶.掘井.破土.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0712": {
		"y": "嫁娶.祭祀.出行.裁衣.冠笄.交易.雕刻.纳财.造畜椆栖.造车器.雕刻.教牛马.",
		"j": "移徙.入宅.栽种.动土.破土.作灶.安葬.行丧.伐木.上梁.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0713": {
		"y": "修造.动土.安机械.祭祀.沐浴.解除.拆卸.治病.作灶.造屋.起基.开池.扫舍.造畜椆栖.开生坟.合寿木.安葬.破土.启攒.移柩.入殓.立碑.",
		"j": "开市.入宅.出行.安床.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0714": {
		"y": "嫁娶.纳采.订盟.造车器.开光.出行.拆卸.起基.安床.除服.成服.开市.交易.立券.栽种.牧养.入殓.移柩.启攒.",
		"j": "上梁.入宅.修造.动土.破土.祭祀.祈福.斋醮.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0715": {
		"y": "祭祀.嫁娶.畋猎.结网.",
		"j": "动土.破土.治病.开渠.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0718": {
		"y": "破屋.坏垣.解除.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0719": {
		"y": "嫁娶.开市.立券.移徙.入宅.安机械.会亲友.经络.安门.安床.挂匾.拆卸.开仓.出货财.开池.栽种.纳畜.牧养.破土.安葬.启攒.移柩.入殓.立碑.",
		"j": "祭祀.祈福.探病.谢土.造桥.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0720": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.斋醮.开光.会亲友.求医.治病.造屋.起基.竖柱.上梁.安门.安碓硙.筑堤.开池.破土.安葬.除服.成服.",
		"j": "入宅.开市.掘井.词讼.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0721": {
		"y": "纳采.订盟.嫁娶.移徙.入宅.出行.祭祀.祈福.斋醮.塑绘.开光.安香.出火.会亲友.解除.入学.竖柱.上梁.拆卸.造屋.起基.栽种.牧养.纳畜.",
		"j": "安葬.破土.开市.开仓.出货财.启攒.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0722": {
		"y": "纳采.订盟.嫁娶.祭祀.沐浴.塑绘.开光.出火.治病.习艺.伐木.造屋.竖柱.上梁.安床.作灶.安碓硙.挂匾.掘井.纳畜.",
		"j": "出行.安葬.造桥.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0723": {
		"y": "祭祀.入殓.除服.成服.移柩.破土.启攒.安葬.塞穴.断蚁.结网.",
		"j": "开市.入宅.嫁娶.开光.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0724": {
		"y": "祭祀.修造.出行.造屋.竖柱.造车器.教牛马.造畜椆栖.割蜜.",
		"j": "动土.破土.掘井.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0725": {
		"y": "祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.",
		"j": "嫁娶.出行.纳采.入宅.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0728": {
		"y": "订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.",
		"j": "嫁娶.安葬.行丧.破土.修坟.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0729": {
		"y": "沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.",
		"j": "出火.嫁娶.入宅.作灶.破土.上梁.动土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0730": {
		"y": "求医.治病.破屋.坏垣.余事勿取.",
		"j": "嫁娶.出行.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0817": {
		"y": "祭祀.出行.作梁.出火.拆卸.修造.动土.起基.安床.补垣.塞穴.入殓.破土.安葬.移柩.造畜椆栖.",
		"j": "嫁娶.入宅.斋醮.开光.针灸.掘井.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0807": {
		"y": "祭祀.解除.拆卸.修造.动土.起基.上梁.安床.安门.开渠.开池.入殓.破土.启攒.",
		"j": "嫁娶.出行.进人口.作灶.入宅.移徙.栽种.赴任.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0822": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.斋醮.普渡.移徙.入宅.出行.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.定磉.安门.安葬.破土.",
		"j": "开市.立券.置产.作灶.造桥.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0812": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "祈福.纳采.订盟.嫁娶.入宅.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0802": {
		"y": "祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.",
		"j": "开市.入宅.安床.动土.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0831": {
		"y": "祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.",
		"j": "嫁娶.出行.入宅.开市.安门.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0826": {
		"y": "嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网.",
		"j": "纳采.订盟.经络.行丧.安葬.探病.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0821": {
		"y": "祭祀.理发.作灶.沐浴.修饰垣墙.平治道涂.",
		"j": "嫁娶.栽种.祈福.造桥.安葬.安门.伐木.作梁.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0816": {
		"y": "嫁娶.纳采.订盟.开光.祭祀.出行.理发.动土.安床.放水.开渠.栽种.进人口.",
		"j": "入宅.上梁.入殓.造屋.探病.作灶.安门.安葬.纳畜.伐木.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0806": {
		"y": "移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.",
		"j": "开市.斋醮.安床.出行.经络.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0921": {
		"y": "祭祀.冠笄.捕捉.余事勿取.",
		"j": "嫁娶.开市.造屋.作梁.合寿木.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0801": {
		"y": "祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.",
		"j": "嫁娶.开市.栽种.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0803": {
		"y": "祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓硙.",
		"j": "造屋.入宅.作灶.入学.安葬.行丧.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0804": {
		"y": "祭祀.塞穴.结网.畋猎.余事勿取.",
		"j": "移徙.开市.入宅.嫁娶.开光.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0805": {
		"y": "开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.",
		"j": "动土.破土.安葬.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0808": {
		"y": "纳采.订盟.开光.出行.解除.安香.出火.拆卸.入宅.移徙.修造.上梁.安床.栽种.纳畜.会亲友.安机械.经络.",
		"j": "伐木.谢土.行丧.祭祀.作灶.动土.破土.安葬.祈福.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0809": {
		"y": "修饰垣墙.平治道涂.祭祀.沐浴.作灶.",
		"j": "嫁娶.词讼.治病.置产.作梁.祈福.安葬.栽种.伐木.安门.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0810": {
		"y": "嫁娶.祭祀.祈福.求嗣.出火.出行.开光.解除.拆卸.修造.进人口.安香.交易.立券.入宅.移徙.安床.动土.破土.谢土.安葬.入殓.除服.成服.",
		"j": "斋醮.开市.开仓.作灶.造船.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0811": {
		"y": "破土.安葬.移柩.入殓.祭祀.捕捉.除服.成服.余事勿取.",
		"j": "嫁娶.入宅.开市.交易.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0813": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.安香.出火.解除.伐木.入宅.移徙.安床.开市.交易.立券.栽种.出火.出行.安葬.",
		"j": "掘井.理发.作灶.动土.破土.开池.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0814": {
		"y": "安机械.纳采.订盟.祭祀.祈福.求嗣.开光.普渡.出行.出火.拆卸.修造.动土.进人口.开市.交易.立券.移徙.安床.栽种.上梁.纳畜.破土.移柩.安葬.",
		"j": "入宅.嫁娶.掘井.牧养.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0815": {
		"y": "嫁娶.祭祀.祈福.求嗣.裁衣.冠笄.经络.修造.进人口.安床.动土.竖柱.上梁.移徙.交易.立券.栽种.会亲友.",
		"j": "行丧.安葬.出行.作梁.纳畜.伐木.造桥.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0818": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.出行.解除.竖柱.入宅.移徙.纳财.上梁.纳畜.入殓.安葬.启攒.",
		"j": "栽种.掘井.动土.安床.破土.置产.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0819": {
		"y": "解除.祭祀.祈福.求嗣.修造.动土.竖柱.上梁.安床.纳畜.造屋.合脊.起基.入殓.破土.安葬.",
		"j": "出火.嫁娶.开光.进人口.出行.词讼.开市.入宅.移徙.赴任.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0820": {
		"y": "沐浴.理发.会亲友.塑绘.开光.栽种.牧养.嫁娶.经络.补垣.塞穴.",
		"j": "开市.入宅.动土.破土.安葬.作灶.上梁.安床.开仓.祈福.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0823": {
		"y": "祭祀.普渡.捕捉.解除.结网.畋猎.入殓.破土.安葬.",
		"j": "开市.交易.入宅.嫁娶.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0824": {
		"y": "沐浴.破屋.坏垣.余事勿取.",
		"j": "斋醮.开市.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0825": {
		"y": "订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬.",
		"j": "动土.破土.嫁娶.掘井.安床.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0828": {
		"y": "嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒.",
		"j": "出火.入宅.造屋.安门.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0829": {
		"y": "嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.",
		"j": "动土.破土.掘井.开光.上梁.词讼.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0830": {
		"y": "嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.",
		"j": "开市.动土.破土.安床.开仓.上梁.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0919": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.上梁.合脊.放水.掘井.破土.移柩.谢土.除服.成服.",
		"j": "开市.开仓.安门.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0909": {
		"y": "嫁娶.祭祀.理发.进人口.作灶.移柩.冠笄.会亲友.",
		"j": "开仓.出货财.伐木.纳畜.开市.上梁.造屋.破土.启攒.栽种.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1021": {
		"y": "纳采.订盟.开市.交易.立券.会亲友.纳畜.牧养.问名.移徙.解除.作厕.入学.起基.安床.开仓.出货财.安葬.启攒.入殓.除服.成服.",
		"j": "入宅.上梁.斋醮.出火.谢土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0901": {
		"y": "塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.",
		"j": "祈福.开市.动土.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0902": {
		"y": "出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养.",
		"j": "嫁娶.安门.动土.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0903": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬.",
		"j": "开市.立券.纳财.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0904": {
		"y": "祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.",
		"j": "嫁娶.纳采.订盟.开市.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0905": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "行丧.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0906": {
		"y": "祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.",
		"j": "动土.破土.订盟.安床.开池.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0907": {
		"y": "嫁娶.纳采.订盟.祭祀.开光.出行.理发.作梁.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.移徙.拆卸.挂匾.栽种.纳畜.破土.安葬.入殓.除服.成服.",
		"j": "开市.掘井.开渠.造桥.造船.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0908": {
		"y": "开市.交易.立券.纳财.挂匾.栽种.祭祀.祈福.开光.拆卸.动土.安床.",
		"j": "嫁娶.破土.进人口.出行.入宅.移徙.出火.纳畜.词讼.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0910": {
		"y": "祭祀.修坟.除服.成服.启攒.移柩.余事勿取.",
		"j": "开市.入宅.嫁娶.动土.破土.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0911": {
		"y": "嫁娶.冠笄.安机械.解除.纳畜.牧养.沐浴.伐木.架马.作梁.安门.扫舍.合寿木.安葬.启攒.立碑.修坟.",
		"j": "祈福.开光.开市.入宅.动土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0912": {
		"y": "祭祀.出行.沐浴.扫舍.安葬.余事勿取.",
		"j": "动土.破土.置产.掘井.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0913": {
		"y": "嫁娶.纳采.祭祀.解除.出行.修造.动土.开市.上梁.安床.整手足甲.扫舍.求医.治病.起基.定磉.造屋.合脊.",
		"j": "造庙.行丧.安葬.伐木.作灶.造船.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0914": {
		"y": "纳采.订盟.开市.交易.立券.挂匾.纳财.栽种.进人口.入宅.移徙.安床.开光.出火.拆卸.安门.修造.",
		"j": "斋醮.嫁娶.行丧.动土.作灶.安葬.破土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0915": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.入宅.安床.出行.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0916": {
		"y": "开光.祈福.求嗣.斋醮.修造.动土.纳财.造仓.作厕.栽种.牧养.会亲友.",
		"j": "作灶.出火.进人口.开渠.入宅.移徙.祭祀.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0917": {
		"y": "开光.解除.拆卸.修造.动土.竖柱.安门.牧养.安葬.修坟.破土.移柩.",
		"j": "出火.入宅.移徙.祈福.祭祀.安床.开市.嫁娶.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0918": {
		"y": "破屋.坏垣.求医.治病.余事勿取.",
		"j": "移徙.入宅.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0920": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.解除.进人口.入宅.移徙.出火.安床.开市.交易.立券.挂匾.",
		"j": "安葬.纳畜.出行.行丧.伐木.栽种.造庙.造桥.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "成",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0922": {
		"y": "祭祀.解除.结网.畋猎.取渔.会亲友.入学.移柩.启攒.除服.成服.",
		"j": "开市.祈福.动土.破土.入殓.安葬.造船.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0923": {
		"y": "冠笄.沐浴.出行.修造.动土.移徙.入宅.破土.安葬.",
		"j": "嫁娶.开市.祭祀.祈福.斋醮.纳采.修坟.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0924": {
		"y": "祭祀.出行.",
		"j": "嫁娶.入宅.修造.动土.会亲友.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0925": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.",
		"j": "针灸.伐木.作梁.造庙.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0926": {
		"y": "出行.开市.交易.立券.安机械.出火.上梁.移徙.",
		"j": "嫁娶.安葬.动土.造桥.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0927": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "斋醮.嫁娶.移徙.出行.上梁.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0928": {
		"y": "嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬.",
		"j": "纳采.订盟.架马.词讼.开渠.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0929": {
		"y": "沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.",
		"j": "祭祀.嫁娶.安床.开市.入宅.探病.上梁.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0930": {
		"y": "余事勿取.",
		"j": "探病.余事勿取.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1027": {
		"y": "造车器.嫁娶.订盟.纳采.会亲友.祭祀.出行.开市.立券.移徙.入宅.破土.安葬.",
		"j": "上梁.开光.造屋.架马.合寿木.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d1023": {
		"y": "捕捉.畋猎.余事勿取.",
		"j": "开市.交易.祭祀.入宅.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d1127": {
		"y": "塑绘.会亲友.安机械.塞穴.结网.裁衣.经络.",
		"j": "嫁娶.开市.祈福.斋醮.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d1001": {
		"y": "订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.",
		"j": "嫁娶.造庙.造桥.造船.作灶.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d1002": {
		"y": "开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.",
		"j": "行丧.安葬.合寿木.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d1003": {
		"y": "祭祀.嫁娶.捕捉.",
		"j": "开光.动土.破土.开市.修造.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d1004": {
		"y": "祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.",
		"j": "嫁娶.开市.动土.掘井.开池.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d1005": {
		"y": "祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.",
		"j": "开光.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d1006": {
		"y": "祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.",
		"j": "动土.作灶.行丧.安葬.修坟.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d1007": {
		"y": "出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.",
		"j": "造庙.安门.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d1008": {
		"y": "祭祀.开光.出行.解除.理发.伐木.出火.拆卸.上梁.合脊.安床.造畜椆栖.",
		"j": "嫁娶.安葬.行丧.词讼.造桥.作灶.破土.动土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d1009": {
		"y": "纳采.订盟.会亲友.沐浴.理发.裁衣.冠笄.安床.除服.成服.启攒.移柩.安葬.会亲友.开生坟.",
		"j": "开市.入宅.出行.嫁娶.修坟.祈福.动土.入宅.安门.谢土.上梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d1010": {
		"y": "解除.祭祀.修饰垣墙.平治道涂.造畜椆栖.余事勿取.",
		"j": "嫁娶.开市.交易.入宅.入学.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d1011": {
		"y": "入殓.破土.启攒.安葬.除服.成服.余事勿取.",
		"j": "开市.入宅.祭祀.置产.补垣.塞穴.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d1012": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.修造.动土.上梁.安床.纳畜.入殓.破土.",
		"j": "入宅.移徙.掘井.理发.伐木.交易.开市.作灶.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d1013": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "嫁娶.入宅.上梁.出行.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d1014": {
		"y": "祭祀.求嗣.冠笄.进人口.会亲友.安门.安床.经络.纳财.牧养.畋猎.放水.割蜜.",
		"j": "祈福.斋醮.纳采.订盟.嫁娶.入宅.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1015": {
		"y": "嫁娶.纳采.订盟.开市.交易.立券.挂匾.祭祀.祈福.开光.造车器.挂匾.出行.入宅.移徙.安床.安门.拆卸.修造.动土.栽种.安葬.破土.启攒.除服.成服.入殓.立碑.",
		"j": "探病.纳畜.伐木.起基.作梁.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d1016": {
		"y": "祭祀.冠笄.移徙.会亲友.纳财.理发.捕捉.",
		"j": "嫁娶.开市.开池.作厕.破土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d1017": {
		"y": "祭祀.祈福.求嗣.斋醮.开光.出行.嫁娶.求医.治病.动土.破土.入学.起基.扫舍.竖柱.上梁.开仓.出货财.置产.栽种.牧养.开生坟.谢土.立碑.",
		"j": "安门.安床.裁衣.入宅.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d1018": {
		"y": "嫁娶.裁衣.冠笄.合帐.祭祀.出行.安床.移徙.塞穴.入殓.破土.移柩.安葬.",
		"j": "开市.出行.栽种.置产.词讼.安门.掘井.开光.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d1019": {
		"y": "祭祀.造车器.出行.修造.上梁.造屋.安门.安床.造畜椆栖.教牛马.",
		"j": "出货财.开仓.动土.破土.安葬.行丧.伐木.开渠.栽种.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d1020": {
		"y": "祭祀.开光.出行.解除.伐木.作梁.出火.拆卸.入宅.移徙.安床.修造.造畜椆栖.扫舍.",
		"j": "造庙.嫁娶.掘井.栽种.造桥.作灶.动土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d1022": {
		"y": "祭祀.平治道涂.余事勿取.",
		"j": "嫁娶.开市.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d1024": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.安香.出火.造庙.移徙.出行.入宅.造庙.起基.竖柱.上梁.安床.纳畜.捕捉.纳婿.安葬.",
		"j": "开市.破土.掘井.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d1025": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "开市.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1026": {
		"y": "订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.",
		"j": "嫁娶.开市.入宅.祈福.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d1028": {
		"y": "祭祀.作灶.纳财.捕捉.畋猎.余事勿取.",
		"j": "动土.破土.开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d1029": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.",
		"j": "开市.开仓.出货财.安床.安门.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d1030": {
		"y": "冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.",
		"j": "开光.嫁娶.会亲友.栽种.针灸.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d1031": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜.",
		"j": "造庙.造船.动土.破土.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d1107": {
		"y": "破屋.坏垣.求医.治病.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d1117": {
		"y": "嫁娶.纳采.订盟.祭祀.斋醮.开光.安香.出火.出行.出火.拆卸.动土.祈福.进人口.纳财.交易.立券.移徙.安床.修造.安葬.除服.成服.",
		"j": "置产.掘井.词讼.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d1128": {
		"y": "纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕.",
		"j": "开仓.造屋.造桥.祭祀.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d1108": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.雕刻.移徙.开市.入宅.出行.动土.会亲友.入学.修造.动土.起基.安门.安床.造庙.解除.纳财.开池.造畜椆栖.牧养.牧养.",
		"j": "上梁.开仓.出货财.造屋.造船.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1126": {
		"y": "嫁娶.造车器.出行.会亲友.移徙.入宅.修造.动土.雕刻.开光.安香.出火.理发.会亲友.造屋.合脊.起基.归岫.安门.拆卸.扫舍.栽种.造畜椆栖.",
		"j": "开市.纳采.造庙.安床.开渠.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d1118": {
		"y": "嫁娶.纳采.订盟.祭祀.开光.出行.解除.伐木.出火.入宅.移徙.拆卸.修造.栽种.安葬.入殓.",
		"j": "破土.动土.安门.作灶.开市.交易.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d1122": {
		"y": "祭祀.沐浴.捕捉.畋猎.结网.扫舍.",
		"j": "嫁娶.纳采.订盟.安床.动土.破土.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d1226": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "嫁娶.移徙.入宅.探病.出行.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d1101": {
		"y": "出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.",
		"j": "嫁娶.动土.破土.修坟.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d1102": {
		"y": "沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.",
		"j": "移徙.入宅.出行.祈福.嫁娶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d1103": {
		"y": "祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.开市.安床.掘井.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1104": {
		"y": "捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.",
		"j": "嫁娶.祭祀.入宅.造屋.移徙.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1105": {
		"y": "祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒.",
		"j": "开光.嫁娶.掘井.伐木.作梁.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d1106": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d1109": {
		"y": "祭祀.祈福.求嗣.开光.解除.伐木.拆卸.修造.栽种.纳畜.安葬.修坟.立碑.",
		"j": "嫁娶.进人口.入宅.移徙.出火.出行.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d1110": {
		"y": "沐浴.扫舍.捕捉.畋猎.解除.塞穴.余事勿取.",
		"j": "嫁娶.入宅.开市.安床.破土.修坟.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d1111": {
		"y": "嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.开光.出行.解除.动土.开市.交易.立券.挂匾.拆卸.破土.",
		"j": "伐木.上梁.修造.入殓.理发.会亲友.入宅.安门.安葬.作灶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d1112": {
		"y": "合帐.裁衣.嫁娶.安床.入殓.移柩.破土.造畜椆栖.",
		"j": "置产.造船.开光.掘井.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d1113": {
		"y": "解除.修饰垣墙.冠笄.出行.余事勿取.",
		"j": "开市.动土.破土.嫁娶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d1114": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.进人口.开市.立券.挂匾.入宅.移徙.安门.栽种.动土.求医.治病.会亲友.起基.修造.造屋.安葬.",
		"j": "作灶.经络.安床.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d1115": {
		"y": "祭祀.塑绘.理发.会亲友.牧养.开池.造畜椆栖.畋猎.结网.",
		"j": "祈福.谢土.安葬.上梁.作灶.开市.嫁娶.出行.入宅.动土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d1116": {
		"y": "出行.纳财.开市.交易.立券.动土.移徙.入宅.裁衣.会亲友.拆卸.进人口.安香.经络.出货财.修饰垣墙.平治道涂.",
		"j": "造庙.谢土.作灶.作梁.伐木.安葬.行丧.修坟.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d1119": {
		"y": "祭祀.解除.破屋.坏垣.求医.治病.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d1120": {
		"y": "祭祀.扫舍.破土.安葬.除服.成服.启攒.移柩.入殓.立碑.余事勿取.",
		"j": "祭祀.嫁娶.入宅.修造.动土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d1121": {
		"y": "订盟.纳采.会亲友.祭祀.祈福.修造.动土.安机械.破土.安葬.",
		"j": "嫁娶.移徙.出火.开市.入宅.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d1123": {
		"y": "开市.纳财.出行.祭祀.祈福.求嗣.斋醮.问名.入学.起基.定磉.置产.开渠.掘井.拆卸.栽种.纳畜.牧养.动土.破土.启攒.",
		"j": "移徙.入宅.出火.入殓.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d1124": {
		"y": "祭祀.理发.置产.塞穴.除服.成服.移柩.入殓.破土.安葬.",
		"j": "嫁娶.入宅.安床.掘井.开光.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d1125": {
		"y": "祭祀.沐浴.出行.余事勿取.",
		"j": "开市.动土.破土.行丧.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d1129": {
		"y": "订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.",
		"j": "嫁娶.安葬.掘井.置产.造船.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1130": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.",
		"j": "开市.造庙.动土.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d1206": {
		"y": "嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.",
		"j": "开光.掘井.安葬.谢土.修坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d1216": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.",
		"j": "伐木.作梁.动土.安床.破土.栽种.造桥.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d1229": {
		"y": "祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.",
		"j": "开市.斋醮.破土.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d1222": {
		"y": "订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.",
		"j": "祈福.出火.嫁娶.入宅.开市.动土.破土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d1209": {
		"y": "嫁娶.纳采.订盟.造车器.祭祀.祈福.造庙.安香.出火.出行.归宁.入学.入宅.交易.立券.求医.治病.修造.动土.竖柱.上梁.造屋.起基.安门.",
		"j": "斋醮.伐木.作梁.安葬.行丧.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d1228": {
		"y": "纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.",
		"j": "嫁娶.动土.安床.造桥.掘井.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d1208": {
		"y": "交易.进人口.祭祀.沐浴.捕捉.入殓.除服.成服.安葬.谢土.启攒.修坟.",
		"j": "斋醮.入宅.修造.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d1201": {
		"y": "破屋.坏垣.祭祀.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d1202": {
		"y": "嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.",
		"j": "造屋.造船.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d1203": {
		"y": "纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬.",
		"j": "嫁娶.开市.入宅.出火.移徙.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d1204": {
		"y": "捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.",
		"j": "安床.安门.破土.修坟.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d1205": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓硙.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.",
		"j": "移徙.入宅.安门.作梁.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d1207": {
		"y": "沐浴.冠笄.补垣.塞穴.合帐.裁衣.修造.作梁.开柱眼.安碓硙.筑堤.作厕.断蚁.",
		"j": "移徙.入宅.嫁娶.祈福.开光.掘井.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d1210": {
		"y": "纳采.订盟.开市.交易.立券.出行.会亲友.安机械.竖柱.上梁.平治道涂.伐木.拆卸.造屋.起基.安床.安门.解除.安葬.启攒.除服.成服.修坟.立碑.移柩.入殓.",
		"j": "嫁娶.动土.破土.祈福.出火.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d1211": {
		"y": "祭祀.平治道涂.除服.成服.安葬.余事勿取.",
		"j": "嫁娶.入宅.纳采.订盟.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d1212": {
		"y": "纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.",
		"j": "开市.造庙.置产.掘井.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d1213": {
		"y": "嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.",
		"j": "开生坟.破土.行丧.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1214": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "移徙.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d1215": {
		"y": "安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.",
		"j": "作灶.安门.造桥.开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d1217": {
		"y": "祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.",
		"j": "会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d1218": {
		"y": "纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.",
		"j": "嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d1219": {
		"y": "入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.",
		"j": "嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d1220": {
		"y": "造畜椆栖.教牛马.",
		"j": "入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d1221": {
		"y": "订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.",
		"j": "破土.安葬.行丧.开生坟.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d1223": {
		"y": "祭祀.平治道涂.修坟.除服.成服.余事勿取.",
		"j": "移徙.入宅.嫁娶.掘井.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d1224": {
		"y": "嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.",
		"j": "开市.纳采.订盟.作灶.造庙.造船.经络.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1225": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓硙.动土.上梁.移徙.入宅.",
		"j": "出行.掘井.破土.行丧.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d1227": {
		"y": "冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.",
		"j": "安门.动土.破土.行丧.安葬.成服.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d1230": {
		"y": "祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.",
		"j": "移徙.开市.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d1231": {
		"y": "纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.",
		"j": "嫁娶.祈福.开光.掘井.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	}
};


},{}],203:[function(require,module,exports){
module.exports = {
	"d0101": {
		"y": "合帐.裁衣.教牛马.余事勿取.",
		"j": "入宅.动土.破土.嫁娶.作灶.造船.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0201": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "嫁娶.开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0102": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.",
		"j": "斋醮.作梁.掘井.行丧.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0103": {
		"y": "纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.",
		"j": "嫁娶.祈福.出火.移徙.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0104": {
		"y": "祭祀.入殓.移柩.余事勿取.",
		"j": "入宅.修造.动土.破土.安门.上梁.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0105": {
		"y": "解除.平治道涂.余事勿取.",
		"j": "移徙.入宅.掘井.造庙.栽种.针灸.治病.开池.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0106": {
		"y": "嫁娶.祭祀.开光.伐木.出火.拆卸.入宅.移徙.修造.动土.上梁.安床.纳畜.",
		"j": "开市.行丧.栽种.出行.出货财.安葬.置产.词讼.治病.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0107": {
		"y": "嫁娶.纳采.订盟.入宅.移徙.安床.祭祀.祈福.开光.出行.解除.出火.拆卸.动土.纳畜.谢土.安葬.破土.",
		"j": "伐木.开市.交易.上梁.作灶.安门.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0108": {
		"y": "祭祀.破屋.坏垣.解除.余事勿取.",
		"j": "开市.动土.破土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0109": {
		"y": "嫁娶.纳采.订盟.开光.安香.出火.纳财.开市.交易.立券.裁衣.造屋.起基.修造.动土.安门.移徙.入宅.栽种.牧养.畋猎.掘井.开池.安葬.破土.入殓.除服.成服.立碑.",
		"j": "祈福.造庙.祭祀.安床.谢土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0110": {
		"y": "祭祀.斋醮.入殓.破土.启攒.安葬.修坟.立碑.除服.成服.",
		"j": "嫁娶.入宅.作灶.纳采.订盟.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0111": {
		"y": "祭祀.斋醮.纳财.捕捉.畋猎.",
		"j": "嫁娶.开市.入宅.安床.破土.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0112": {
		"y": "纳采.订盟.祭祀.祈福.求嗣.斋醮.沐浴.进人口.会亲友.入学.治病.安碓硙.掘井.开池.纳畜.牧养.造畜椆栖.",
		"j": "嫁娶.合帐.入宅.行丧.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0113": {
		"y": "祭祀.祈福.求嗣.沐浴.问名.交易.纳财.入殓.移柩.安葬.修坟.立碑.谢土.造畜椆栖.教牛马.",
		"j": "入宅.置产.嫁娶.动土.栽种.开市.开光.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0114": {
		"y": "祭祀.教牛马.造畜椆栖.祭祀.会亲友.解除.余事勿取.",
		"j": "嫁娶.入宅.出行.动土.破土.安葬.行丧.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0115": {
		"y": "嫁娶.开光.解除.出火.拆卸.修造.进人口.入宅.移徙.安床.栽种.入殓.修坟.动土.除服.成服.",
		"j": "作灶.安葬.祭祀.开市.纳采.订盟.纳畜.谢土.出行.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0116": {
		"y": "出行.起基.安床.纳财.交易.立券.嫁娶.栽种.入殓.移柩.安葬.",
		"j": "挂匾.入宅.上梁.祈福.词讼.作梁.作灶.开池.安门.动土.破土.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0117": {
		"y": "平治道涂.余事勿取.",
		"j": "开光.嫁娶.开仓.出货财.造船.安葬.探病.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0118": {
		"y": "嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产.",
		"j": "开市.出行.安葬.行丧.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0119": {
		"y": "沐浴.捕捉.畋猎.理发.整手足甲.入殓.除服.成服.破土.安葬.谢土.立碑.修坟.启攒.",
		"j": "纳采.订盟.嫁娶.上梁.开市.斋醮.造屋.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0120": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "斋醮.嫁娶.开市.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0121": {
		"y": "沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬.",
		"j": "祈福.嫁娶.安床.入宅.造船.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0122": {
		"y": "祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取.",
		"j": "造庙.入宅.修造.安葬.行丧.嫁娶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0123": {
		"y": "嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.",
		"j": "开市.安床.安葬.修坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0124": {
		"y": "订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井.",
		"j": "造庙.嫁娶.出行.动土.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0125": {
		"y": "交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.",
		"j": "开光.嫁娶.开市.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0126": {
		"y": "祭祀.解除.教牛马.会亲友.余事勿取.",
		"j": "破土.动土.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0127": {
		"y": "纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓.",
		"j": "探病.祭祀.出行.上梁.造屋.谢土.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0128": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.",
		"j": "入宅.开光.开市.动土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0129": {
		"y": "祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.",
		"j": "移徙.入宅.造庙.作灶.治病.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0130": {
		"y": "祭祀.安碓硙.结网.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0131": {
		"y": "嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.",
		"j": "造屋.开市.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0202": {
		"y": "纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.",
		"j": "祈福.嫁娶.造庙.安床.谢土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0225": {
		"y": "入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.",
		"j": "开光.开市.入宅.动土.造屋.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0215": {
		"y": "纳采.订盟.祭祀.祈福.安香.出火.修造.出行.开市.移徙.入宅.动土.安葬.破土.",
		"j": "安床.作灶.造船.会亲友.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0222": {
		"y": "会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.",
		"j": "开市.动土.安葬.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0212": {
		"y": "嫁娶.祭祀.冠笄.修饰垣墙.置产.",
		"j": "经络.探病.造屋.作灶.动土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0227": {
		"y": "祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土.",
		"j": "安床.栽种.治病.作灶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0301": {
		"y": "塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.",
		"j": "伐木.作灶.安葬.取渔.入宅.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0203": {
		"y": "祭祀.斋醮.沐浴.开生坟.除服.成服.移柩.入殓.破土.安葬.合寿木.",
		"j": "开市.嫁娶.安床.会亲友.入宅.作灶.上梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0204": {
		"y": "祭祀.塞穴.结网.破土.谢土.安葬.移柩.除服.成服.余事勿取.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0205": {
		"y": "祭祀.沐浴.理发.作灶.结网.栽种.",
		"j": "嫁娶.词讼.行丧.安葬.牧养.伐木.作梁.开市.纳畜.造畜椆栖.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0206": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出行.开市.交易.立券.动土.纳财.掘井.会亲友.",
		"j": "入宅.安葬.伐木.作梁.纳畜.造畜椆栖.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0207": {
		"y": "祭祀.祈福.求嗣.纳畜.入殓.启攒.谢土.除服.成服.",
		"j": "栽种.开光.出行.针灸.嫁娶.入宅.动土.破土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0208": {
		"y": "开光.解除.伐木.竖柱.上梁.交易.立券.纳畜.入殓.移柩.安葬.",
		"j": "入宅.出行.移徙.祭祀.嫁娶.动土.破土.作灶.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0209": {
		"y": "祭祀.祈福.求嗣.开光.嫁娶.出行.解除.伐木.拆卸.进人口.安床.动土.起基.上梁.栽种.纳畜.破土.谢土.启攒.安葬.",
		"j": "移徙.入宅.出火.作灶.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0210": {
		"y": "会亲友.冠笄.安床.会亲友.安机械.祭祀.祈福.求嗣.经络.",
		"j": "嫁娶.开市.动土.作灶.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0211": {
		"y": "作灶.解除.平治道涂.余事勿取.",
		"j": "祭祀.祈福.安葬.安门.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0213": {
		"y": "纳采.嫁娶.祭祀.祈福.出行.修造.动土.移徙.入宅.安葬.破土.",
		"j": "开市.入宅.斋醮.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0214": {
		"y": "祭祀.沐浴.解除.理发.扫舍.破屋.坏垣.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0216": {
		"y": "塞穴.结网.取渔.畋猎.",
		"j": "嫁娶.安门.移徙.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0217": {
		"y": "纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅.",
		"j": "嫁娶.开市.安葬.破土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0218": {
		"y": "纳采.嫁娶.祭祀.祈福.出行.开市.会亲友.动土.破土.启攒.",
		"j": "移徙.入宅.出火.安门.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0219": {
		"y": "祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "嫁娶.动土.开光.造屋.破土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0220": {
		"y": "纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.",
		"j": "祭祀.移徙.入宅.动土.破土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0221": {
		"y": "祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬.",
		"j": "开光.嫁娶.作灶.掘井.纳畜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0223": {
		"y": "祭祀.平治道涂.余事勿取.",
		"j": "嫁娶.祈福.掘井.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0224": {
		"y": "祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土.",
		"j": "置产.造屋.合脊.开光.探病.安门.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0226": {
		"y": "祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取.",
		"j": "入宅.开市.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0228": {
		"y": "祭祀.结网.入殓.除服.成服.移柩.安葬.破土.",
		"j": "余事勿取.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0401": {
		"y": "祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.",
		"j": "动土.作灶.入宅.开光.安床.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0302": {
		"y": "祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓硙.放水.开市.立券.交易.",
		"j": "安葬.上梁.入宅.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0303": {
		"y": "祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.",
		"j": "出行.嫁娶.入宅.动土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0304": {
		"y": "裁衣.合帐.入殓.除服.成服.会亲友.纳财.",
		"j": "祭祀.祈福.移徙.嫁娶.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0305": {
		"y": "祭祀.祈福.求嗣.斋醮.嫁娶.冠笄.出行.开市.交易.会亲友.教牛马.除服.成服.启攒.安葬.移柩.",
		"j": "祈福.动土.移徙.入宅.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0306": {
		"y": "塞穴.整手足甲.解除.捕捉.畋猎.结网.余事勿取.诸事不宜.",
		"j": "嫁娶.作灶.掘井.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0307": {
		"y": "纳财.开市.立券.交易.开光.安床.上梁.造屋.修造.起基.",
		"j": "动土.破土.安葬.行丧.赴任.出行.嫁娶.入宅.移徙.谢土.词讼.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0308": {
		"y": "祭祀.祈福.嫁娶.冠笄.修饰垣墙.置产.平治道涂.",
		"j": "开仓.出货财.造屋.作灶.开市.交易.立券.栽种.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0309": {
		"y": "嫁娶.祭祀.开光.祈福.求嗣.出行.出火.进人口.入宅.移徙.安床.拆卸.修造.安门.挂匾.纳财.扫舍.",
		"j": "动土.伐木.安葬.行丧.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0310": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.出行.出火.入宅.移徙.解除.栽种.伐木.破土.谢土.安葬.",
		"j": "开市.交易.作灶.纳财.上梁.安床.造屋.造船.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0311": {
		"y": "破屋.坏垣.求医.治病.余事勿取.",
		"j": "开光.嫁娶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0312": {
		"y": "纳采.交易.立券.安床.安机械.安葬.移柩.动土.破土.立碑.",
		"j": "嫁娶.开光.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0313": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.开光.理发.经络.解除.治病.治病.立碑.栽种.牧养.掘井.开池.",
		"j": "嫁娶.定磉.合寿木.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0314": {
		"y": "纳财.交易.立券.栽种.捕捉.结网.取渔.进人口.教牛马.理发.",
		"j": "入宅.造屋.竖柱.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0315": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.破土.出火.安门.安床.上梁.立碑.移柩.",
		"j": "开市.交易.合帐.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0316": {
		"y": "冠笄.立券.交易.修造.动土.安机械.入殓.安葬.破土.",
		"j": "嫁娶.祈福.出火.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0317": {
		"y": "祭祀.会亲友.出行.立券.交易.冠笄.纳财.",
		"j": "嫁娶.动土.掘井.起基.定磉.破土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0318": {
		"y": "祭祀.沐浴.解除.扫舍.塞穴.牧养.",
		"j": "嫁娶.安葬.行丧.安门.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0319": {
		"y": "纳财.开市.交易.立券.开光.针灸.会亲友.理发.安床.造仓.结网.",
		"j": "移徙.入宅.栽种.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0320": {
		"y": "嫁娶.冠笄.会亲友.安机械.纳财.交易.立券.置产.",
		"j": "开市.造屋.治病.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0321": {
		"y": "嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬.",
		"j": "纳畜.理发.合寿木.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0322": {
		"y": "祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.",
		"j": "纳采.开光.安床.嫁娶.开市.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0323": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "嫁娶.移徙.开市.入宅.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0324": {
		"y": "嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.",
		"j": "塑绘.开光.造桥.除服.成服.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0325": {
		"y": "开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财.",
		"j": "祈福.嫁娶.安葬.破土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0326": {
		"y": "理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.",
		"j": "纳财.开市.安葬.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0327": {
		"y": "开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养.",
		"j": "纳采.动土.开市.交易.安门.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0328": {
		"y": "裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.",
		"j": "祭祀.嫁娶.出行.上梁.掘井.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0329": {
		"y": "祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.",
		"j": "栽种.动土.安葬.掘井.修坟.探病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0330": {
		"y": "扫舍.塞穴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0331": {
		"y": "塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.",
		"j": "作灶.出行.入宅.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0425": {
		"y": "求嗣.出行.解除.订盟.纳采.嫁娶.会亲友.进人口.安床.开市.交易.纳畜.牧养.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "祈福.开市.修造.动土.破土.谢土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0428": {
		"y": "祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.",
		"j": "开市.动土.掘井.开池.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0418": {
		"y": "沐浴.捕捉.畋猎.结网.取渔.",
		"j": "祭祀.嫁娶.入宅.作灶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0408": {
		"y": "祭祀.修门.取渔.纳财.纳畜.余事勿取.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0531": {
		"y": "开光.出行.纳采.嫁娶.伐木.架马.出火.拆卸.移徙.入宅.造庙.造桥.造船.造畜椆栖.开市.入殓.除服.成服.移柩.安葬.",
		"j": "",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0501": {
		"y": "祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.",
		"j": "出火.入宅.安葬.伐木.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0402": {
		"y": "祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.",
		"j": "赴任.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0403": {
		"y": "祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.",
		"j": "安床.嫁娶.作灶.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0404": {
		"y": "祭祀.解除.入殓.移柩.启攒.安葬.整手足甲.捕捉.畋猎.取渔.除服.成服.扫舍.谢土.斋醮.",
		"j": "动土.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0405": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.求医.治病.余事勿取.",
		"j": "嫁娶.开市.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0406": {
		"y": "沐浴.塞穴.畋猎.结网.取渔.扫舍.余事勿取.",
		"j": "祈福.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0407": {
		"y": "开市.交易.立券.挂匾.祭祀.开光.祈福.求嗣.安床.解除.修造.安葬.",
		"j": "纳采.问名.订盟.嫁娶.入宅.开仓.出火.动土.破土.纳畜.伐木.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0409": {
		"y": "安香.出火.纳采.订盟.嫁娶.开市.立券.交易.挂匾.开光.出行.解除.安床.栽种.置产.拆卸.修造.动土.",
		"j": "作灶.安葬.祭祀.入殓.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0410": {
		"y": "祭祀.出行.修造.动土.合帐.造畜椆栖.安床.移徙.入殓.移柩.破土.启攒.安葬.开生坟.合寿木.补垣.塞穴.",
		"j": "移徙.入宅.作灶.理发.开光.安门.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0411": {
		"y": "祭祀.修饰垣墙.余事勿取.",
		"j": "开光.修造.动土.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0412": {
		"y": "嫁娶.祭祀.祈福.求嗣.斋醮.开光.出火.移徙.入宅.竖柱.上梁.会亲友.造屋.起基.治病.治病.安门.造车器.掘井.开池.",
		"j": "纳采.出行.修坟.安葬.开市.立券.作灶.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0413": {
		"y": "祭祀.塑绘.开光.纳采.嫁娶.开市.出行.会亲友.安床.结网.除服.成服.启攒.安葬.移柩.",
		"j": "祈福.入宅.造屋.动土.破土.探病.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0414": {
		"y": "祭祀.作灶.平治道涂.余事勿取.",
		"j": "安床.入宅.安碓硙.栽种.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0415": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.纳畜.入殓.破土.安葬.",
		"j": "移徙.入宅.嫁娶.出行.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0416": {
		"y": "纳采.祭祀.祈福.求嗣.斋醮.出行.起基.造屋.定磉.安门.入殓.安葬.",
		"j": "嫁娶.开市.纳财.出火.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0417": {
		"y": "祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.",
		"j": "祈福.斋醮.开市.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0419": {
		"y": "祭祀.祈福.求嗣.斋醮.纳采.订盟.开光.竖柱.上梁.开仓.出货财.造屋.起基.定磉.安门.诸事不宜.破土.入殓.启攒.谢土.",
		"j": "出火.嫁娶.开市.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0420": {
		"y": "祭祀.捕捉.解除.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0421": {
		"y": "纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.",
		"j": "祈福.动土.破土.安葬.入殓.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0422": {
		"y": "祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.",
		"j": "开光.嫁娶.掘井.安葬.安门.探病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0423": {
		"y": "祭祀.解除.教牛马.出行.余事勿取.",
		"j": "动土.破土.行丧.开光.作梁.安葬.探病.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0424": {
		"y": "沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.",
		"j": "开市.嫁娶.移徙.入宅.掘井.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0426": {
		"y": "祭祀.作灶.平治道涂.余事勿取.",
		"j": "嫁娶.安葬.动土.安床.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0427": {
		"y": "造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮.",
		"j": "入宅.动土.开仓.出货财.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0429": {
		"y": "祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.",
		"j": "嫁娶.开市.交易.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0430": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0529": {
		"y": "余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0524": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "行丧.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0519": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.治病.造车器.修造.动土.移徙.入宅.",
		"j": "开市.出行.安床.作灶.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0624": {
		"y": "祭祀.交易.纳财.",
		"j": "斋醮.开渠.上梁.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0502": {
		"y": "祭祀.余事勿取.",
		"j": "造庙.嫁娶.安床.余事勿取.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0503": {
		"y": "订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.",
		"j": "入殓.安葬.入宅.安床.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0504": {
		"y": "祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.",
		"j": "掘井.安门.嫁娶.纳采.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0505": {
		"y": "嫁娶.交易.立券.作厕.补垣.塞穴.畋猎.取渔.开生坟.",
		"j": "安床.开渠.上梁.修造.开市.开光.入宅.移徙.安床.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0506": {
		"y": "塞穴.断蚁.结网.畋猎.余事勿取.",
		"j": "嫁娶.安葬.入宅.出行.动土.词讼.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0507": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.解除.出行.出火.入宅.移徙.栽种.纳畜.牧养.动土.破土.入殓.安葬.",
		"j": "作灶.安床.开仓.造屋.动土.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0508": {
		"y": "开光.纳采.裁衣.冠笄.安床.作灶.进人口.造仓.塞穴.",
		"j": "嫁娶.栽种.修造.动土.出行.伐木.作梁.安葬.谢土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0509": {
		"y": "纳采.嫁娶.裁衣.理发.出行.修造.动土.进人口.开市.交易.立券.挂匾.移徙.上梁.栽种.纳畜.",
		"j": "伐木.安葬.安床.祭祀.祈福.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0510": {
		"y": "开市.交易.立券.挂匾.祭祀.祈福.斋醮.出行.开市.交易.立券.造屋.起基.修造.动土.定磉.安床.安机械.安葬.破土.启攒.除服.成服.立碑.",
		"j": "作灶.嫁娶.移徙.入宅.理发.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0511": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.修造.进人口.入宅.移徙.安床.解除.挂匾.栽种.破土.谢土.入殓.移柩.安葬.",
		"j": "开市.立券.造船.合寿木.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0512": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "开光.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0513": {
		"y": "订盟.纳采.嫁娶.解除.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.入宅.移徙.安床.栽种.纳畜.动土.破土.谢土.安葬.修坟.",
		"j": "作灶.开市.经络.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0514": {
		"y": "祭祀.祈福.求嗣.开光.订盟.纳采.解除.动土.起基.进人口.开市.交易.立券.纳财.造仓.开池.栽种.纳畜.破土.安葬.",
		"j": "安床.上梁.裁衣.入宅.嫁娶.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0515": {
		"y": "祭祀.结网.捕捉.余事勿取.",
		"j": "探病.嫁娶.开市.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0516": {
		"y": "祭祀.祈福.求嗣.开光.纳采.订盟.嫁娶.出行.动土.破土.会亲友.开市.交易.立券.习艺.拆卸.起基.安碓硙.放水.开池.造仓.开渠.栽种.谢土.启攒.修坟.立碑.",
		"j": "入宅.安门.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0517": {
		"y": "嫁娶.冠笄.祭祀.出行.移徙.入宅.作灶.造车器.补垣.塞穴.作厕.破土.启攒.除服.成服.入殓.",
		"j": "入宅.造屋.造桥.安门.安葬.上梁.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0518": {
		"y": "祭祀.解除.断蚁.会亲友.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0520": {
		"y": "嫁娶.纳采.订盟.会亲友.安机械.结网.冠笄.祭祀.求嗣.进人口.经络.",
		"j": "开市.作灶.动土.行丧.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0521": {
		"y": "祭祀.沐浴.移徙.破土.安葬.扫舍.平治道涂.",
		"j": "祈福.嫁娶.入宅.安床.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0522": {
		"y": "祭祀.祈福.斋醮.求嗣.安机械.纳畜.移徙.入宅.安机械.塑绘.开光.起基.竖柱.上梁.作灶.安门.安香.出火.造屋.启攒.安葬.",
		"j": "动土.破土.嫁娶.嫁娶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0523": {
		"y": "嫁娶.纳采.订盟.斋醮.开光.祭祀.祈福.求医.治病.会亲友.动土.解除.捕捉.纳畜.牧养.入殓.破土.安葬.",
		"j": "移徙.入宅.造屋.架马.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0525": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "斋醮.开市.嫁娶.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0526": {
		"y": "开市.交易.立券.安机械.会亲友.开光.求医.治病.造屋.起基.修造.动土.定磉.竖柱.上梁.安门.作灶.放水.作厕.开池.栽种.牧养.造畜椆栖.破土.安葬.立碑.",
		"j": "嫁娶.出火.移徙.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0527": {
		"y": "栽种.捕捉.畋猎.余事勿取.",
		"j": "开市.动土.祭祀.斋醮.安葬.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0528": {
		"y": "嫁娶.祭祀.祈福.求嗣.斋醮.订盟.纳采.解除.出行.动土.破土.习艺.针灸.理发.会亲友.起基.修造.动土.竖柱.定磉.安床.拆卸.纳畜.牧养.放水.破土.除服.成服.修坟.立碑.",
		"j": "开市.入宅.探病.出火.造屋.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0530": {
		"y": "塞穴.断蚁.结网.余事勿取.",
		"j": "破土.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0614": {
		"y": "安机械.祭祀.祈福.求嗣.沐浴.解除.纳采.开市.修造.竖柱.上梁.开柱眼.安碓硙.归岫.补垣.塞穴.拆卸.放水.出火.扫舍.开生坟.合寿木.安葬.谢土.启攒.除服.成服.",
		"j": "嫁娶.安床.作灶.动土.破土.造船.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0604": {
		"y": "嫁娶.纳采.求医.治病.修造.动土.移徙.入宅.破土.安葬.",
		"j": "开市.开光.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0613": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.修造.进人口.入宅.移徙.动土.安床.纳畜.栽种.纳财.交易.立券.挂匾.造畜椆栖.",
		"j": "安葬.开生坟.合寿木.行丧.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0623": {
		"y": "嫁娶.冠笄.修造.动土.作灶.移徙.入宅.补垣.塞穴.纳畜.牧养.架马.修造.动土.起基.定磉.开池.造船.",
		"j": "祈福.开光.掘井.开市.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0627": {
		"y": "祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.",
		"j": "斋醮.出行.治病.合寿木.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0724": {
		"y": "沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.",
		"j": "出火.嫁娶.入宅.作灶.破土.上梁.动土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0601": {
		"y": "进人口.牧养.置产.塞穴.结网.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0602": {
		"y": "开光.出行.嫁娶.",
		"j": "会亲友.进人口.修造.动土.起基.移徙.开市.纳畜.入殓.除服.成服.移柩.破土.安葬.修坟.立碑.会亲友.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0603": {
		"y": "嫁娶.纳采.出行.祭祀.祈福.开市.动土.移徙.入宅.破土.安葬.",
		"j": "安门.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0605": {
		"y": "畋猎.捕捉.结网.取渔.祭祀.沐浴.余事勿取.",
		"j": "嫁娶.开市.安葬.启攒.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0606": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "移徙.入宅.开仓.出货财.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0607": {
		"y": "祭祀.斋醮.塑绘.开光.出行.修造.动土.造畜椆栖.安床.放水.掘井.开池.作厕.结网.破土.",
		"j": "出火.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0608": {
		"y": "开市.交易.立券.挂匾.开光.解除.拆卸.动土.安床.修造.上梁.置产.栽种.破土.安葬.",
		"j": "作灶.出火.祭祀.嫁娶.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0609": {
		"y": "祭祀.结网.余事勿取.",
		"j": "入宅.出行.掘井.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0610": {
		"y": "嫁娶.纳采.订盟.冠笄.造车器.祭祀.开光.祈福.求嗣.出行.解除.伐木.出火.入宅.拆卸.修造.动土.上梁.安床.栽种.破土.",
		"j": "行丧.置产.入宅.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0611": {
		"y": "嫁娶.合帐.裁衣.冠笄.伐木.上梁.出火.拆卸.移徙.修造.动土.安门.纳财.筑堤.栽种.塞穴.",
		"j": "安床.祈福.出行.安葬.行丧.开光.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0612": {
		"y": "出行.教牛马.割蜜.余事勿取.",
		"j": "斋醮.造屋.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0615": {
		"y": "祭祀.沐浴.理发.整手足甲.修饰垣墙.平治道涂.余事勿取.",
		"j": "开市.入宅.出行.修造.词讼.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0616": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.立券.移徙.入宅.动土.破土.安葬.",
		"j": "开光.作灶.造屋.架马.开仓.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0617": {
		"y": "纳采.订盟.冠笄.祭祀.祈福.斋醮.出行.修造.动土.移徙.入宅.安香.出火.拆卸.造屋.起基.竖柱.上梁.定磉.安门.开池.",
		"j": "嫁娶.开市.合寿木.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0618": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "入宅.嫁娶.移徙.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0619": {
		"y": "嫁娶.安机械.交易.出行.祭祀.祈福.求嗣.斋醮.塑绘.开光.合帐.裁衣.放水.开池.掘井.",
		"j": "作灶.理发.造桥.行丧.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0620": {
		"y": "纳采.冠笄.求医.治病.开市.立券.修造.动土.安机械.破土.安葬.",
		"j": "斋醮.祭祀.移徙.入宅.上梁.嫁娶.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0621": {
		"y": "祭祀.作灶.余事勿取.",
		"j": "开市.安葬.破土.修坟.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0622": {
		"y": "祭祀.祈福.求嗣.斋醮.安香.解除.移徙.入宅.会亲友.求医.治病.动土.破土.开生坟.合寿木.",
		"j": "合帐.上梁.经络.安葬.入殓.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0625": {
		"y": "嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕.",
		"j": "行丧.伐木.作梁.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0626": {
		"y": "开光.求嗣.出行.冠笄.嫁娶.伐木.架马.开柱眼.修造.移徙.入宅.开市.交易.立券.出行.安香.出火.挂匾.起基.修造.开生坟.合寿木.入殓.除服.成服.移柩.安葬.",
		"j": "安床.出货财.作灶.动土.破土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0628": {
		"y": "安机械.移徙.入宅.出行.祭祀.祈福.斋醮.纳采.订盟.安香.出火.解除.会亲友.修造.动土.拆卸.起基.定磉.移徙.入宅.造屋.安床.修造.破土.安葬.入殓.立碑.",
		"j": "开市.伐木.作梁.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0629": {
		"y": "祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.",
		"j": "开市.交易.嫁娶.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0630": {
		"y": "破屋.坏垣.求医.治病.畋猎.余事勿取.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0726": {
		"y": "纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.",
		"j": "祈福.上梁.开仓.掘井.牧养.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0716": {
		"y": "纳采.订盟.嫁娶.移徙.入宅.出行.祭祀.祈福.斋醮.塑绘.开光.安香.出火.会亲友.解除.入学.竖柱.上梁.拆卸.造屋.起基.栽种.牧养.纳畜.",
		"j": "安葬.破土.开市.开仓.出货财.启攒.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0731": {
		"y": "开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.",
		"j": "动土.破土.安葬.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0728": {
		"y": "祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.",
		"j": "开市.入宅.安床.动土.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0730": {
		"y": "祭祀.塞穴.结网.畋猎.余事勿取.",
		"j": "移徙.开市.入宅.嫁娶.开光.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0718": {
		"y": "祭祀.入殓.除服.成服.移柩.破土.启攒.安葬.塞穴.断蚁.结网.",
		"j": "开市.入宅.嫁娶.开光.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0826": {
		"y": "祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.",
		"j": "嫁娶.出行.入宅.开市.安门.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0701": {
		"y": "嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.",
		"j": "开市.安门.掘井.作灶.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0702": {
		"y": "订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.",
		"j": "",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0703": {
		"y": "祭祀.捕捉.取渔.修饰垣墙.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0704": {
		"y": "嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.",
		"j": "开市.安门.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0705": {
		"y": "裁衣.作灶.移徙.入宅.纳畜.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0706": {
		"y": "祭祀.入殓.移柩.启攒.安葬.",
		"j": "上梁.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0707": {
		"y": "嫁娶.祭祀.出行.裁衣.冠笄.交易.雕刻.纳财.造畜椆栖.造车器.雕刻.教牛马.",
		"j": "移徙.入宅.栽种.动土.破土.作灶.安葬.行丧.伐木.上梁.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0708": {
		"y": "修造.动土.安机械.祭祀.沐浴.解除.拆卸.治病.作灶.造屋.起基.开池.扫舍.造畜椆栖.开生坟.合寿木.安葬.破土.启攒.移柩.入殓.立碑.",
		"j": "开市.入宅.出行.安床.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0709": {
		"y": "嫁娶.纳采.订盟.造车器.开光.出行.拆卸.起基.安床.除服.成服.开市.交易.立券.栽种.牧养.入殓.移柩.启攒.",
		"j": "上梁.入宅.修造.动土.破土.祭祀.祈福.斋醮.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0710": {
		"y": "祭祀.嫁娶.畋猎.结网.",
		"j": "动土.破土.治病.开渠.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0711": {
		"y": "纳采.订盟.会亲友.入学.祭祀.祈福.求嗣.开光.出行.解除.理发.动土.起基.开市.交易.立券.纳财.造仓.栽种.纳畜.牧养.",
		"j": "嫁娶.作灶.出火.置产.嫁娶.入宅.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0712": {
		"y": "祭祀.祈福.解除.整手足甲.安床.沐浴.入殓.移柩.破土.启攒.安葬.谢土.",
		"j": "嫁娶.斋醮.开市.出火.入宅.移徙.出行.作灶.安门.伐木.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0713": {
		"y": "破屋.坏垣.解除.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0714": {
		"y": "嫁娶.开市.立券.移徙.入宅.安机械.会亲友.经络.安门.安床.挂匾.拆卸.开仓.出货财.开池.栽种.纳畜.牧养.破土.安葬.启攒.移柩.入殓.立碑.",
		"j": "祭祀.祈福.探病.谢土.造桥.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0715": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.斋醮.开光.会亲友.求医.治病.造屋.起基.竖柱.上梁.安门.安碓硙.筑堤.开池.破土.安葬.除服.成服.",
		"j": "入宅.开市.掘井.词讼.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0717": {
		"y": "纳采.订盟.嫁娶.祭祀.沐浴.塑绘.开光.出火.治病.习艺.伐木.造屋.竖柱.上梁.安床.作灶.安碓硙.挂匾.掘井.纳畜.",
		"j": "出行.安葬.造桥.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0719": {
		"y": "祭祀.修造.出行.造屋.竖柱.造车器.教牛马.造畜椆栖.割蜜.",
		"j": "动土.破土.掘井.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0720": {
		"y": "祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.",
		"j": "嫁娶.出行.纳采.入宅.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0721": {
		"y": "纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.",
		"j": "斋醮.入宅.安门.安葬.破土.行丧.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0722": {
		"y": "祭祀.修饰垣墙.平治道涂.",
		"j": "开市.动土.破土.嫁娶.修造.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0723": {
		"y": "订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.",
		"j": "嫁娶.安葬.行丧.破土.修坟.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0725": {
		"y": "求医.治病.破屋.坏垣.余事勿取.",
		"j": "嫁娶.出行.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0727": {
		"y": "祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.",
		"j": "嫁娶.开市.栽种.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0729": {
		"y": "祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓硙.",
		"j": "造屋.入宅.作灶.入学.安葬.行丧.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0824": {
		"y": "嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.",
		"j": "动土.破土.掘井.开光.上梁.词讼.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0823": {
		"y": "嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒.",
		"j": "出火.入宅.造屋.安门.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0814": {
		"y": "解除.祭祀.祈福.求嗣.修造.动土.竖柱.上梁.安床.纳畜.造屋.合脊.起基.入殓.破土.安葬.",
		"j": "出火.嫁娶.开光.进人口.出行.词讼.开市.入宅.移徙.赴任.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0923": {
		"y": "嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬.",
		"j": "纳采.订盟.架马.词讼.开渠.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0801": {
		"y": "移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.",
		"j": "开市.斋醮.安床.出行.经络.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0802": {
		"y": "塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0803": {
		"y": "祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0804": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0805": {
		"y": "纳采.祭祀.祈福.解除.动土.破土.安葬.",
		"j": "嫁娶.移徙.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0806": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0807": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "祈福.纳采.订盟.嫁娶.入宅.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0808": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.安香.出火.解除.伐木.入宅.移徙.安床.开市.交易.立券.栽种.出火.出行.安葬.",
		"j": "掘井.理发.作灶.动土.破土.开池.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0809": {
		"y": "安机械.纳采.订盟.祭祀.祈福.求嗣.开光.普渡.出行.出火.拆卸.修造.动土.进人口.开市.交易.立券.移徙.安床.栽种.上梁.纳畜.破土.移柩.安葬.",
		"j": "入宅.嫁娶.掘井.牧养.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0810": {
		"y": "嫁娶.祭祀.祈福.求嗣.裁衣.冠笄.经络.修造.进人口.安床.动土.竖柱.上梁.移徙.交易.立券.栽种.会亲友.",
		"j": "行丧.安葬.出行.作梁.纳畜.伐木.造桥.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0811": {
		"y": "嫁娶.纳采.订盟.开光.祭祀.出行.理发.动土.安床.放水.开渠.栽种.进人口.",
		"j": "入宅.上梁.入殓.造屋.探病.作灶.安门.安葬.纳畜.伐木.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0812": {
		"y": "祭祀.出行.作梁.出火.拆卸.修造.动土.起基.安床.补垣.塞穴.入殓.破土.安葬.移柩.造畜椆栖.",
		"j": "嫁娶.入宅.斋醮.开光.针灸.掘井.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0813": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.出行.解除.竖柱.入宅.移徙.纳财.上梁.纳畜.入殓.安葬.启攒.",
		"j": "栽种.掘井.动土.安床.破土.置产.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0815": {
		"y": "沐浴.理发.会亲友.塑绘.开光.栽种.牧养.嫁娶.经络.补垣.塞穴.",
		"j": "开市.入宅.动土.破土.安葬.作灶.上梁.安床.开仓.祈福.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0816": {
		"y": "祭祀.理发.作灶.沐浴.修饰垣墙.平治道涂.",
		"j": "嫁娶.栽种.祈福.造桥.安葬.安门.伐木.作梁.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0817": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.斋醮.普渡.移徙.入宅.出行.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.定磉.安门.安葬.破土.",
		"j": "开市.立券.置产.作灶.造桥.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0818": {
		"y": "祭祀.普渡.捕捉.解除.结网.畋猎.入殓.破土.安葬.",
		"j": "开市.交易.入宅.嫁娶.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0819": {
		"y": "沐浴.破屋.坏垣.余事勿取.",
		"j": "斋醮.开市.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0820": {
		"y": "订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬.",
		"j": "动土.破土.嫁娶.掘井.安床.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0821": {
		"y": "嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网.",
		"j": "纳采.订盟.经络.行丧.安葬.探病.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0822": {
		"y": "嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.",
		"j": "掘井.出行.破土.行丧.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0825": {
		"y": "嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.",
		"j": "开市.动土.破土.安床.开仓.上梁.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0827": {
		"y": "塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.",
		"j": "祈福.开市.动土.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0828": {
		"y": "出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养.",
		"j": "嫁娶.安门.动土.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0829": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬.",
		"j": "开市.立券.纳财.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0830": {
		"y": "祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.",
		"j": "嫁娶.纳采.订盟.开市.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0831": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "行丧.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0913": {
		"y": "破屋.坏垣.求医.治病.余事勿取.",
		"j": "移徙.入宅.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0903": {
		"y": "塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养.",
		"j": "",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d1023": {
		"y": "祭祀.作灶.纳财.捕捉.畋猎.余事勿取.",
		"j": "动土.破土.开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0901": {
		"y": "祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.",
		"j": "动土.破土.订盟.安床.开池.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0902": {
		"y": "祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.",
		"j": "",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0904": {
		"y": "祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.",
		"j": "",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0905": {
		"y": "嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅.",
		"j": "动土.破土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0906": {
		"y": "嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.",
		"j": "作灶.动土.破土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0907": {
		"y": "祭祀.出行.沐浴.扫舍.安葬.余事勿取.",
		"j": "动土.破土.置产.掘井.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0908": {
		"y": "嫁娶.纳采.祭祀.解除.出行.修造.动土.开市.上梁.安床.整手足甲.扫舍.求医.治病.起基.定磉.造屋.合脊.",
		"j": "造庙.行丧.安葬.伐木.作灶.造船.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0909": {
		"y": "纳采.订盟.开市.交易.立券.挂匾.纳财.栽种.进人口.入宅.移徙.安床.开光.出火.拆卸.安门.修造.",
		"j": "斋醮.嫁娶.行丧.动土.作灶.安葬.破土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0910": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.入宅.安床.出行.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0911": {
		"y": "开光.祈福.求嗣.斋醮.修造.动土.纳财.造仓.作厕.栽种.牧养.会亲友.",
		"j": "作灶.出火.进人口.开渠.入宅.移徙.祭祀.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0912": {
		"y": "开光.解除.拆卸.修造.动土.竖柱.安门.牧养.安葬.修坟.破土.移柩.",
		"j": "出火.入宅.移徙.祈福.祭祀.安床.开市.嫁娶.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0914": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.上梁.合脊.放水.掘井.破土.移柩.谢土.除服.成服.",
		"j": "开市.开仓.安门.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0915": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.解除.进人口.入宅.移徙.出火.安床.开市.交易.立券.挂匾.",
		"j": "安葬.纳畜.出行.行丧.伐木.栽种.造庙.造桥.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0916": {
		"y": "祭祀.冠笄.捕捉.余事勿取.",
		"j": "嫁娶.开市.造屋.作梁.合寿木.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0917": {
		"y": "祭祀.解除.结网.畋猎.取渔.会亲友.入学.移柩.启攒.除服.成服.",
		"j": "开市.祈福.动土.破土.入殓.安葬.造船.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0918": {
		"y": "冠笄.沐浴.出行.修造.动土.移徙.入宅.破土.安葬.",
		"j": "嫁娶.开市.祭祀.祈福.斋醮.纳采.修坟.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0919": {
		"y": "祭祀.出行.",
		"j": "嫁娶.入宅.修造.动土.会亲友.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0920": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.",
		"j": "针灸.伐木.作梁.造庙.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0921": {
		"y": "出行.开市.交易.立券.安机械.出火.上梁.移徙.",
		"j": "嫁娶.安葬.动土.造桥.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0922": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "斋醮.嫁娶.移徙.出行.上梁.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0924": {
		"y": "沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.",
		"j": "祭祀.嫁娶.安床.开市.入宅.探病.上梁.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0925": {
		"y": "余事勿取.",
		"j": "探病.余事勿取.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0926": {
		"y": "订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.",
		"j": "嫁娶.造庙.造桥.造船.作灶.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0927": {
		"y": "开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.",
		"j": "行丧.安葬.合寿木.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0928": {
		"y": "祭祀.嫁娶.捕捉.",
		"j": "开光.动土.破土.开市.修造.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0929": {
		"y": "祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.",
		"j": "嫁娶.开市.动土.掘井.开池.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0930": {
		"y": "祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.",
		"j": "开光.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d1028": {
		"y": "沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.",
		"j": "移徙.入宅.出行.祈福.嫁娶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d1025": {
		"y": "冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.",
		"j": "开光.嫁娶.会亲友.栽种.针灸.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d1015": {
		"y": "祭祀.开光.出行.解除.伐木.作梁.出火.拆卸.入宅.移徙.安床.修造.造畜椆栖.扫舍.",
		"j": "造庙.嫁娶.掘井.栽种.造桥.作灶.动土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d1005": {
		"y": "祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.",
		"j": "入宅.伐木.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d1031": {
		"y": "祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒.",
		"j": "开光.嫁娶.掘井.伐木.作梁.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d1024": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.",
		"j": "开市.开仓.出货财.安床.安门.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d1029": {
		"y": "祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.开市.安床.掘井.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1125": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.",
		"j": "开市.造庙.动土.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d1001": {
		"y": "祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.",
		"j": "动土.作灶.行丧.安葬.修坟.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d1002": {
		"y": "出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.",
		"j": "造庙.安门.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d1003": {
		"y": "祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d1004": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d1006": {
		"y": "祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.",
		"j": "作灶.祭祀.入宅.嫁娶.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d1007": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "移徙.入宅.出行.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d1008": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "嫁娶.入宅.上梁.出行.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d1009": {
		"y": "祭祀.求嗣.冠笄.进人口.会亲友.安门.安床.经络.纳财.牧养.畋猎.放水.割蜜.",
		"j": "祈福.斋醮.纳采.订盟.嫁娶.入宅.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1010": {
		"y": "嫁娶.纳采.订盟.开市.交易.立券.挂匾.祭祀.祈福.开光.造车器.挂匾.出行.入宅.移徙.安床.安门.拆卸.修造.动土.栽种.安葬.破土.启攒.除服.成服.入殓.立碑.",
		"j": "探病.纳畜.伐木.起基.作梁.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d1011": {
		"y": "祭祀.冠笄.移徙.会亲友.纳财.理发.捕捉.",
		"j": "嫁娶.开市.开池.作厕.破土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d1012": {
		"y": "祭祀.祈福.求嗣.斋醮.开光.出行.嫁娶.求医.治病.动土.破土.入学.起基.扫舍.竖柱.上梁.开仓.出货财.置产.栽种.牧养.开生坟.谢土.立碑.",
		"j": "安门.安床.裁衣.入宅.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d1013": {
		"y": "嫁娶.裁衣.冠笄.合帐.祭祀.出行.安床.移徙.塞穴.入殓.破土.移柩.安葬.",
		"j": "开市.出行.栽种.置产.词讼.安门.掘井.开光.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d1014": {
		"y": "祭祀.造车器.出行.修造.上梁.造屋.安门.安床.造畜椆栖.教牛马.",
		"j": "出货财.开仓.动土.破土.安葬.行丧.伐木.开渠.栽种.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d1016": {
		"y": "纳采.订盟.开市.交易.立券.会亲友.纳畜.牧养.问名.移徙.解除.作厕.入学.起基.安床.开仓.出货财.安葬.启攒.入殓.除服.成服.",
		"j": "入宅.上梁.斋醮.出火.谢土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d1017": {
		"y": "祭祀.平治道涂.余事勿取.",
		"j": "嫁娶.开市.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d1018": {
		"y": "捕捉.畋猎.余事勿取.",
		"j": "开市.交易.祭祀.入宅.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d1019": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.安香.出火.造庙.移徙.出行.入宅.造庙.起基.竖柱.上梁.安床.纳畜.捕捉.纳婿.安葬.",
		"j": "开市.破土.掘井.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d1020": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "开市.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1021": {
		"y": "订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.",
		"j": "嫁娶.开市.入宅.祈福.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d1022": {
		"y": "造车器.嫁娶.订盟.纳采.会亲友.祭祀.出行.开市.立券.移徙.入宅.破土.安葬.",
		"j": "上梁.开光.造屋.架马.合寿木.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d1026": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜.",
		"j": "造庙.造船.动土.破土.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d1027": {
		"y": "出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.",
		"j": "嫁娶.动土.破土.修坟.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d1030": {
		"y": "捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.",
		"j": "嫁娶.祭祀.入宅.造屋.移徙.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1127": {
		"y": "嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.",
		"j": "造屋.造船.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d1122": {
		"y": "塑绘.会亲友.安机械.塞穴.结网.裁衣.经络.",
		"j": "嫁娶.开市.祈福.斋醮.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d1227": {
		"y": "合帐.裁衣.教牛马.余事勿取.",
		"j": "入宅.动土.破土.嫁娶.作灶.造船.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d1101": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d1102": {
		"y": "会亲友.嫁娶.订盟.纳采.纳婿.拆卸.修造.动土.起基.竖柱.上梁.安床.会亲友.纳财.",
		"j": "出行.祈福.安葬.作灶.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d1103": {
		"y": "祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财.",
		"j": "开仓.冠笄.伐木.作梁.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1104": {
		"y": "祭祀.作灶.入殓.除服.成服.畋猎.",
		"j": "栽种.动土.安葬.开市.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d1105": {
		"y": "祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.",
		"j": "作灶.入殓.安葬.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d1106": {
		"y": "嫁娶.祭祀.安机械.入殓.破土.安葬.",
		"j": "动土.上梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d1107": {
		"y": "合帐.裁衣.嫁娶.安床.入殓.移柩.破土.造畜椆栖.",
		"j": "置产.造船.开光.掘井.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d1108": {
		"y": "解除.修饰垣墙.冠笄.出行.余事勿取.",
		"j": "开市.动土.破土.嫁娶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d1109": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.开光.出行.解除.进人口.开市.立券.挂匾.入宅.移徙.安门.栽种.动土.求医.治病.会亲友.起基.修造.造屋.安葬.",
		"j": "作灶.经络.安床.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d1110": {
		"y": "祭祀.塑绘.理发.会亲友.牧养.开池.造畜椆栖.畋猎.结网.",
		"j": "祈福.谢土.安葬.上梁.作灶.开市.嫁娶.出行.入宅.动土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d1111": {
		"y": "出行.纳财.开市.交易.立券.动土.移徙.入宅.裁衣.会亲友.拆卸.进人口.安香.经络.出货财.修饰垣墙.平治道涂.",
		"j": "造庙.谢土.作灶.作梁.伐木.安葬.行丧.修坟.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d1112": {
		"y": "嫁娶.纳采.订盟.祭祀.斋醮.开光.安香.出火.出行.出火.拆卸.动土.祈福.进人口.纳财.交易.立券.移徙.安床.修造.安葬.除服.成服.",
		"j": "置产.掘井.词讼.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d1113": {
		"y": "嫁娶.纳采.订盟.祭祀.开光.出行.解除.伐木.出火.入宅.移徙.拆卸.修造.栽种.安葬.入殓.",
		"j": "破土.动土.安门.作灶.开市.交易.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d1114": {
		"y": "祭祀.解除.破屋.坏垣.求医.治病.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d1115": {
		"y": "祭祀.扫舍.破土.安葬.除服.成服.启攒.移柩.入殓.立碑.余事勿取.",
		"j": "祭祀.嫁娶.入宅.修造.动土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d1116": {
		"y": "订盟.纳采.会亲友.祭祀.祈福.修造.动土.安机械.破土.安葬.",
		"j": "嫁娶.移徙.出火.开市.入宅.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d1117": {
		"y": "祭祀.沐浴.捕捉.畋猎.结网.扫舍.",
		"j": "嫁娶.纳采.订盟.安床.动土.破土.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d1118": {
		"y": "开市.纳财.出行.祭祀.祈福.求嗣.斋醮.问名.入学.起基.定磉.置产.开渠.掘井.拆卸.栽种.纳畜.牧养.动土.破土.启攒.",
		"j": "移徙.入宅.出火.入殓.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d1119": {
		"y": "祭祀.理发.置产.塞穴.除服.成服.移柩.入殓.破土.安葬.",
		"j": "嫁娶.入宅.安床.掘井.开光.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d1120": {
		"y": "祭祀.沐浴.出行.余事勿取.",
		"j": "开市.动土.破土.行丧.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d1121": {
		"y": "嫁娶.造车器.出行.会亲友.移徙.入宅.修造.动土.雕刻.开光.安香.出火.理发.会亲友.造屋.合脊.起基.归岫.安门.拆卸.扫舍.栽种.造畜椆栖.",
		"j": "开市.纳采.造庙.安床.开渠.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d1123": {
		"y": "纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕.",
		"j": "开仓.造屋.造桥.祭祀.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d1124": {
		"y": "订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.",
		"j": "嫁娶.安葬.掘井.置产.造船.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1126": {
		"y": "破屋.坏垣.祭祀.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d1128": {
		"y": "纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬.",
		"j": "嫁娶.开市.入宅.出火.移徙.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d1129": {
		"y": "捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.",
		"j": "安床.安门.破土.修坟.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d1130": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓硙.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.",
		"j": "移徙.入宅.安门.作梁.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d1207": {
		"y": "纳采.订盟.祭祀.祈福.开光.安香.出火.出行.会亲友.安机械.修造.动土.竖柱.上梁.造屋.起基.定磉.安床.安门.拆卸.移徙.造桥.造船.安葬.破土.入殓.",
		"j": "开市.造庙.置产.掘井.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d1217": {
		"y": "订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.",
		"j": "祈福.出火.嫁娶.入宅.开市.动土.破土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d1221": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "嫁娶.移徙.入宅.探病.出行.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d1220": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓硙.动土.上梁.移徙.入宅.",
		"j": "出行.掘井.破土.行丧.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d1230": {
		"y": "祭祀.入殓.移柩.余事勿取.",
		"j": "入宅.修造.动土.破土.安门.上梁.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d1224": {
		"y": "祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.",
		"j": "开市.斋醮.破土.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d1223": {
		"y": "纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.",
		"j": "嫁娶.动土.安床.造桥.掘井.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d1210": {
		"y": "安床.架马.祭祀.塑绘.开光.出行.理发.伐木.作梁.开柱眼.作厕.畋猎.破土.入殓.除服.成服.移柩.启攒.修坟.立碑.",
		"j": "作灶.安门.造桥.开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d1222": {
		"y": "冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.",
		"j": "安门.动土.破土.行丧.安葬.成服.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d1228": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.",
		"j": "斋醮.作梁.掘井.行丧.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1201": {
		"y": "嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.",
		"j": "开光.掘井.安葬.谢土.修坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d1202": {
		"y": "祭祀.沐浴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d1203": {
		"y": "祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木.",
		"j": "入宅.作灶.安床.开仓.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d1204": {
		"y": "理发.会亲友.补垣.塞穴.结网.",
		"j": "嫁娶.入宅.安门.移徙.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d1205": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.",
		"j": "作灶.治病.伐木.作梁.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d1206": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.",
		"j": "作灶.治病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d1208": {
		"y": "嫁娶.冠笄.祭祀.祈福.求嗣.斋醮.进人口.会亲友.伐木.作梁.开柱眼.安床.掘井.捕捉.畋猎.",
		"j": "开生坟.破土.行丧.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1209": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "移徙.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d1211": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.入宅.移徙.纳畜.入殓.破土.修坟.立碑.",
		"j": "伐木.作梁.动土.安床.破土.栽种.造桥.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d1212": {
		"y": "祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.",
		"j": "会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d1213": {
		"y": "纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.",
		"j": "嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d1214": {
		"y": "入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.",
		"j": "嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d1215": {
		"y": "造畜椆栖.教牛马.",
		"j": "入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d1216": {
		"y": "订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.",
		"j": "破土.安葬.行丧.开生坟.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d1218": {
		"y": "祭祀.平治道涂.修坟.除服.成服.余事勿取.",
		"j": "移徙.入宅.嫁娶.掘井.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d1219": {
		"y": "嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.",
		"j": "开市.纳采.订盟.作灶.造庙.造船.经络.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1225": {
		"y": "祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.",
		"j": "移徙.开市.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d1226": {
		"y": "纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.",
		"j": "嫁娶.祈福.开光.掘井.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d1229": {
		"y": "纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.",
		"j": "嫁娶.祈福.出火.移徙.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1231": {
		"y": "塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.",
		"j": "掘井.伐木.斋醮.作灶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	}
};


},{}],204:[function(require,module,exports){
module.exports =  {
	"d0101": {
		"y": "祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.",
		"j": "出行.安葬.修坟.开市.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0201": {
		"y": "祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.",
		"j": "开仓.嫁娶.移徙.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0102": {
		"y": "祭祀.求医.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0103": {
		"y": "祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.",
		"j": "开光.栽种.治病.安门.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0104": {
		"y": "塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土.",
		"j": "",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0105": {
		"y": "祭祀.斋醮.入殓.破土.启攒.安葬.修坟.立碑.除服.成服.",
		"j": "嫁娶.入宅.作灶.纳采.订盟.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0106": {
		"y": "祭祀.斋醮.纳财.捕捉.畋猎.",
		"j": "嫁娶.开市.入宅.安床.破土.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0107": {
		"y": "纳采.订盟.祭祀.祈福.求嗣.斋醮.沐浴.进人口.会亲友.入学.治病.安碓硙.掘井.开池.纳畜.牧养.造畜椆栖.",
		"j": "嫁娶.合帐.入宅.行丧.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0108": {
		"y": "祭祀.祈福.求嗣.沐浴.问名.交易.纳财.入殓.移柩.安葬.修坟.立碑.谢土.造畜椆栖.教牛马.",
		"j": "入宅.置产.嫁娶.动土.栽种.开市.开光.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0109": {
		"y": "祭祀.教牛马.造畜椆栖.祭祀.会亲友.解除.余事勿取.",
		"j": "嫁娶.入宅.出行.动土.破土.安葬.行丧.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0110": {
		"y": "嫁娶.开光.解除.出火.拆卸.修造.进人口.入宅.移徙.安床.栽种.入殓.修坟.动土.除服.成服.",
		"j": "作灶.安葬.祭祀.开市.纳采.订盟.纳畜.谢土.出行.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0111": {
		"y": "出行.起基.安床.纳财.交易.立券.嫁娶.栽种.入殓.移柩.安葬.",
		"j": "挂匾.入宅.上梁.祈福.词讼.作梁.作灶.开池.安门.动土.破土.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0112": {
		"y": "平治道涂.余事勿取.",
		"j": "开光.嫁娶.开仓.出货财.造船.安葬.探病.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0113": {
		"y": "嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产.",
		"j": "开市.出行.安葬.行丧.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0114": {
		"y": "沐浴.捕捉.畋猎.理发.整手足甲.入殓.除服.成服.破土.安葬.谢土.立碑.修坟.启攒.",
		"j": "纳采.订盟.嫁娶.上梁.开市.斋醮.造屋.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0115": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "斋醮.嫁娶.开市.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0116": {
		"y": "沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬.",
		"j": "祈福.嫁娶.安床.入宅.造船.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0117": {
		"y": "祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取.",
		"j": "造庙.入宅.修造.安葬.行丧.嫁娶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0118": {
		"y": "嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.",
		"j": "开市.安床.安葬.修坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0119": {
		"y": "订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井.",
		"j": "造庙.嫁娶.出行.动土.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0120": {
		"y": "交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.",
		"j": "开光.嫁娶.开市.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0121": {
		"y": "祭祀.解除.教牛马.会亲友.余事勿取.",
		"j": "破土.动土.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0122": {
		"y": "纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓.",
		"j": "探病.祭祀.出行.上梁.造屋.谢土.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0123": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.",
		"j": "入宅.开光.开市.动土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0124": {
		"y": "祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.",
		"j": "移徙.入宅.造庙.作灶.治病.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0125": {
		"y": "祭祀.安碓硙.结网.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0126": {
		"y": "嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.",
		"j": "造屋.开市.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0127": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "嫁娶.开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0128": {
		"y": "纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.",
		"j": "祈福.嫁娶.造庙.安床.谢土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0129": {
		"y": "入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.",
		"j": "开市.伐木.嫁娶.作梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0130": {
		"y": "祭祀.作灶.入殓.除服.余事勿取.",
		"j": "开市.安床.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0131": {
		"y": "塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.",
		"j": "嫁娶.入殓.安葬.出行.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0227": {
		"y": "裁衣.合帐.入殓.除服.成服.会亲友.纳财.",
		"j": "祭祀.祈福.移徙.嫁娶.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0212": {
		"y": "纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅.",
		"j": "嫁娶.开市.安葬.破土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0202": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0222": {
		"y": "祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土.",
		"j": "安床.栽种.治病.作灶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0217": {
		"y": "会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.",
		"j": "开市.动土.安葬.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0225": {
		"y": "祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓硙.放水.开市.立券.交易.",
		"j": "安葬.上梁.入宅.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0215": {
		"y": "纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.",
		"j": "祭祀.移徙.入宅.动土.破土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0207": {
		"y": "嫁娶.祭祀.冠笄.修饰垣墙.置产.",
		"j": "经络.探病.造屋.作灶.动土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0224": {
		"y": "塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.",
		"j": "伐木.作灶.安葬.取渔.入宅.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0315": {
		"y": "嫁娶.冠笄.会亲友.安机械.纳财.交易.立券.置产.",
		"j": "开市.造屋.治病.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0203": {
		"y": "沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.",
		"j": "作灶.祭祀.上梁.出行.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0204": {
		"y": "祭祀.祈福.求嗣.开光.嫁娶.出行.解除.伐木.拆卸.进人口.安床.动土.起基.上梁.栽种.纳畜.破土.谢土.启攒.安葬.",
		"j": "移徙.入宅.出火.作灶.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0205": {
		"y": "会亲友.冠笄.安床.会亲友.安机械.祭祀.祈福.求嗣.经络.",
		"j": "嫁娶.开市.动土.作灶.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0206": {
		"y": "作灶.解除.平治道涂.余事勿取.",
		"j": "祭祀.祈福.安葬.安门.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0208": {
		"y": "纳采.嫁娶.祭祀.祈福.出行.修造.动土.移徙.入宅.安葬.破土.",
		"j": "开市.入宅.斋醮.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0209": {
		"y": "祭祀.沐浴.解除.理发.扫舍.破屋.坏垣.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0210": {
		"y": "纳采.订盟.祭祀.祈福.安香.出火.修造.出行.开市.移徙.入宅.动土.安葬.破土.",
		"j": "安床.作灶.造船.会亲友.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0211": {
		"y": "塞穴.结网.取渔.畋猎.",
		"j": "嫁娶.安门.移徙.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0213": {
		"y": "纳采.嫁娶.祭祀.祈福.出行.开市.会亲友.动土.破土.启攒.",
		"j": "移徙.入宅.出火.安门.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0214": {
		"y": "祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "嫁娶.动土.开光.造屋.破土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0216": {
		"y": "祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬.",
		"j": "开光.嫁娶.作灶.掘井.纳畜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0218": {
		"y": "祭祀.平治道涂.余事勿取.",
		"j": "嫁娶.祈福.掘井.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0219": {
		"y": "祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土.",
		"j": "置产.造屋.合脊.开光.探病.安门.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0220": {
		"y": "入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.",
		"j": "开光.开市.入宅.动土.造屋.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0221": {
		"y": "祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取.",
		"j": "入宅.开市.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0223": {
		"y": "祭祀.结网.入殓.除服.成服.移柩.安葬.破土.",
		"j": "余事勿取.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0226": {
		"y": "祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.",
		"j": "出行.嫁娶.入宅.动土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0228": {
		"y": "祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.",
		"j": "掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0325": {
		"y": "扫舍.塞穴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0415": {
		"y": "祭祀.捕捉.解除.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0301": {
		"y": "安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓.",
		"j": "斋醮.作灶.安床.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0302": {
		"y": "作灶.平治道涂.",
		"j": "祭祀.祈福.安葬.安门.余事勿取.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0303": {
		"y": "塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.",
		"j": "造屋.栽种.安葬.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0304": {
		"y": "祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.",
		"j": "栽种.动土.开市.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0305": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.出行.出火.入宅.移徙.解除.栽种.伐木.破土.谢土.安葬.",
		"j": "开市.交易.作灶.纳财.上梁.安床.造屋.造船.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0306": {
		"y": "破屋.坏垣.求医.治病.余事勿取.",
		"j": "开光.嫁娶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0307": {
		"y": "纳采.交易.立券.安床.安机械.安葬.移柩.动土.破土.立碑.",
		"j": "嫁娶.开光.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0308": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.开光.理发.经络.解除.治病.治病.立碑.栽种.牧养.掘井.开池.",
		"j": "嫁娶.定磉.合寿木.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0309": {
		"y": "纳财.交易.立券.栽种.捕捉.结网.取渔.进人口.教牛马.理发.",
		"j": "入宅.造屋.竖柱.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0310": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.破土.出火.安门.安床.上梁.立碑.移柩.",
		"j": "开市.交易.合帐.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0311": {
		"y": "冠笄.立券.交易.修造.动土.安机械.入殓.安葬.破土.",
		"j": "嫁娶.祈福.出火.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0312": {
		"y": "祭祀.会亲友.出行.立券.交易.冠笄.纳财.",
		"j": "嫁娶.动土.掘井.起基.定磉.破土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0313": {
		"y": "祭祀.沐浴.解除.扫舍.塞穴.牧养.",
		"j": "嫁娶.安葬.行丧.安门.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0314": {
		"y": "纳财.开市.交易.立券.开光.针灸.会亲友.理发.安床.造仓.结网.",
		"j": "移徙.入宅.栽种.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0316": {
		"y": "嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬.",
		"j": "纳畜.理发.合寿木.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0317": {
		"y": "祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.",
		"j": "纳采.开光.安床.嫁娶.开市.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0318": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "嫁娶.移徙.开市.入宅.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0319": {
		"y": "嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.",
		"j": "塑绘.开光.造桥.除服.成服.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0320": {
		"y": "开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财.",
		"j": "祈福.嫁娶.安葬.破土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0321": {
		"y": "理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.",
		"j": "纳财.开市.安葬.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0322": {
		"y": "开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养.",
		"j": "纳采.动土.开市.交易.安门.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0323": {
		"y": "裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.",
		"j": "祭祀.嫁娶.出行.上梁.掘井.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0324": {
		"y": "祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.",
		"j": "栽种.动土.安葬.掘井.修坟.探病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0326": {
		"y": "塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.",
		"j": "作灶.出行.入宅.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0327": {
		"y": "祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.",
		"j": "动土.作灶.入宅.开光.安床.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0328": {
		"y": "祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.",
		"j": "赴任.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0329": {
		"y": "祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.",
		"j": "安床.嫁娶.作灶.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0330": {
		"y": "破屋.坏垣.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0331": {
		"y": "祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎.",
		"j": "作梁.造庙.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0425": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0426": {
		"y": "祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.",
		"j": "出火.入宅.安葬.伐木.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0416": {
		"y": "纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.",
		"j": "祈福.动土.破土.安葬.入殓.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0406": {
		"y": "祭祀.修饰垣墙.余事勿取.",
		"j": "开光.修造.动土.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0423": {
		"y": "祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.",
		"j": "开市.动土.掘井.开池.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0427": {
		"y": "祭祀.余事勿取.",
		"j": "造庙.嫁娶.安床.余事勿取.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0526": {
		"y": "开光.出行.纳采.嫁娶.伐木.架马.出火.拆卸.移徙.入宅.造庙.造桥.造船.造畜椆栖.开市.入殓.除服.成服.移柩.安葬.",
		"j": "",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0401": {
		"y": "祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.",
		"j": "造庙.嫁娶.伐木.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0402": {
		"y": "祭祀.沐浴.捕捉.栽种.",
		"j": "嫁娶.入宅.移徙.作灶.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0403": {
		"y": "祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.",
		"j": "栽种.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0404": {
		"y": "订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.",
		"j": "作灶.开光.嫁娶.开市.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0405": {
		"y": "祭祀.出行.修造.动土.合帐.造畜椆栖.安床.移徙.入殓.移柩.破土.启攒.安葬.开生坟.合寿木.补垣.塞穴.",
		"j": "移徙.入宅.作灶.理发.开光.安门.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0407": {
		"y": "嫁娶.祭祀.祈福.求嗣.斋醮.开光.出火.移徙.入宅.竖柱.上梁.会亲友.造屋.起基.治病.治病.安门.造车器.掘井.开池.",
		"j": "纳采.出行.修坟.安葬.开市.立券.作灶.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0408": {
		"y": "祭祀.塑绘.开光.纳采.嫁娶.开市.出行.会亲友.安床.结网.除服.成服.启攒.安葬.移柩.",
		"j": "祈福.入宅.造屋.动土.破土.探病.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0409": {
		"y": "祭祀.作灶.平治道涂.余事勿取.",
		"j": "安床.入宅.安碓硙.栽种.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0410": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.纳畜.入殓.破土.安葬.",
		"j": "移徙.入宅.嫁娶.出行.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0411": {
		"y": "纳采.祭祀.祈福.求嗣.斋醮.出行.起基.造屋.定磉.安门.入殓.安葬.",
		"j": "嫁娶.开市.纳财.出火.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0412": {
		"y": "祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.",
		"j": "祈福.斋醮.开市.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0413": {
		"y": "沐浴.捕捉.畋猎.结网.取渔.",
		"j": "祭祀.嫁娶.入宅.作灶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0414": {
		"y": "祭祀.祈福.求嗣.斋醮.纳采.订盟.开光.竖柱.上梁.开仓.出货财.造屋.起基.定磉.安门.诸事不宜.破土.入殓.启攒.谢土.",
		"j": "出火.嫁娶.开市.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0417": {
		"y": "祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.",
		"j": "开光.嫁娶.掘井.安葬.安门.探病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0418": {
		"y": "祭祀.解除.教牛马.出行.余事勿取.",
		"j": "动土.破土.行丧.开光.作梁.安葬.探病.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0419": {
		"y": "沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.",
		"j": "开市.嫁娶.移徙.入宅.掘井.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0420": {
		"y": "求嗣.出行.解除.订盟.纳采.嫁娶.会亲友.进人口.安床.开市.交易.纳畜.牧养.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "祈福.开市.修造.动土.破土.谢土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0421": {
		"y": "祭祀.作灶.平治道涂.余事勿取.",
		"j": "嫁娶.安葬.动土.安床.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0422": {
		"y": "造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮.",
		"j": "入宅.动土.开仓.出货财.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0424": {
		"y": "祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.",
		"j": "嫁娶.开市.交易.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0428": {
		"y": "订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.",
		"j": "入殓.安葬.入宅.安床.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0429": {
		"y": "祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.",
		"j": "掘井.安门.嫁娶.纳采.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0430": {
		"y": "祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.",
		"j": "掘井.动土.破土.安葬.开光.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0524": {
		"y": "余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0529": {
		"y": "嫁娶.纳采.出行.祭祀.祈福.开市.动土.移徙.入宅.破土.安葬.",
		"j": "安门.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0519": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "行丧.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0522": {
		"y": "栽种.捕捉.畋猎.余事勿取.",
		"j": "开市.动土.祭祀.斋醮.安葬.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0516": {
		"y": "祭祀.沐浴.移徙.破土.安葬.扫舍.平治道涂.",
		"j": "祈福.嫁娶.入宅.安床.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0512": {
		"y": "嫁娶.冠笄.祭祀.出行.移徙.入宅.作灶.造车器.补垣.塞穴.作厕.破土.启攒.除服.成服.入殓.",
		"j": "入宅.造屋.造桥.安门.安葬.上梁.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0502": {
		"y": "祭祀.会亲友.开市.安床.启攒.安葬.",
		"j": "嫁娶.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0528": {
		"y": "开光.出行.嫁娶.",
		"j": "会亲友.进人口.修造.动土.起基.移徙.开市.纳畜.入殓.除服.成服.移柩.破土.安葬.修坟.立碑.会亲友.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0518": {
		"y": "嫁娶.纳采.订盟.斋醮.开光.祭祀.祈福.求医.治病.会亲友.动土.解除.捕捉.纳畜.牧养.入殓.破土.安葬.",
		"j": "移徙.入宅.造屋.架马.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0521": {
		"y": "开市.交易.立券.安机械.会亲友.开光.求医.治病.造屋.起基.修造.动土.定磉.竖柱.上梁.安门.作灶.放水.作厕.开池.栽种.牧养.造畜椆栖.破土.安葬.立碑.",
		"j": "嫁娶.出火.移徙.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0508": {
		"y": "订盟.纳采.嫁娶.解除.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.入宅.移徙.安床.栽种.纳畜.动土.破土.谢土.安葬.修坟.",
		"j": "作灶.开市.经络.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0527": {
		"y": "进人口.牧养.置产.塞穴.结网.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0621": {
		"y": "开光.求嗣.出行.冠笄.嫁娶.伐木.架马.开柱眼.修造.移徙.入宅.开市.交易.立券.出行.安香.出火.挂匾.起基.修造.开生坟.合寿木.入殓.除服.成服.移柩.安葬.",
		"j": "安床.出货财.作灶.动土.破土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0501": {
		"y": "纳采.开光.求医.治病.动土.上梁.移徙.入宅.",
		"j": "嫁娶.开市.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0503": {
		"y": "祭祀.作灶.掘井.平治道涂.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0504": {
		"y": "祭祀.斋醮.开市.动土.入殓.破土.安葬.",
		"j": "嫁娶.移徙.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0505": {
		"y": "开市.交易.立券.挂匾.祭祀.祈福.斋醮.出行.开市.交易.立券.造屋.起基.修造.动土.定磉.安床.安机械.安葬.破土.启攒.除服.成服.立碑.",
		"j": "作灶.嫁娶.移徙.入宅.理发.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0506": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出火.出行.拆卸.动土.修造.进人口.入宅.移徙.安床.解除.挂匾.栽种.破土.谢土.入殓.移柩.安葬.",
		"j": "开市.立券.造船.合寿木.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0507": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "开光.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0509": {
		"y": "祭祀.祈福.求嗣.开光.订盟.纳采.解除.动土.起基.进人口.开市.交易.立券.纳财.造仓.开池.栽种.纳畜.破土.安葬.",
		"j": "安床.上梁.裁衣.入宅.嫁娶.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0510": {
		"y": "祭祀.结网.捕捉.余事勿取.",
		"j": "探病.嫁娶.开市.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0511": {
		"y": "祭祀.祈福.求嗣.开光.纳采.订盟.嫁娶.出行.动土.破土.会亲友.开市.交易.立券.习艺.拆卸.起基.安碓硙.放水.开池.造仓.开渠.栽种.谢土.启攒.修坟.立碑.",
		"j": "入宅.安门.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0513": {
		"y": "祭祀.解除.断蚁.会亲友.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0514": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.治病.造车器.修造.动土.移徙.入宅.",
		"j": "开市.出行.安床.作灶.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0515": {
		"y": "嫁娶.纳采.订盟.会亲友.安机械.结网.冠笄.祭祀.求嗣.进人口.经络.",
		"j": "开市.作灶.动土.行丧.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0517": {
		"y": "祭祀.祈福.斋醮.求嗣.安机械.纳畜.移徙.入宅.安机械.塑绘.开光.起基.竖柱.上梁.作灶.安门.安香.出火.造屋.启攒.安葬.",
		"j": "动土.破土.嫁娶.嫁娶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0520": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "斋醮.开市.嫁娶.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0523": {
		"y": "嫁娶.祭祀.祈福.求嗣.斋醮.订盟.纳采.解除.出行.动土.破土.习艺.针灸.理发.会亲友.起基.修造.动土.竖柱.定磉.安床.拆卸.纳畜.牧养.放水.破土.除服.成服.修坟.立碑.",
		"j": "开市.入宅.探病.出火.造屋.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0525": {
		"y": "塞穴.断蚁.结网.余事勿取.",
		"j": "破土.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0530": {
		"y": "嫁娶.纳采.求医.治病.修造.动土.移徙.入宅.破土.安葬.",
		"j": "开市.开光.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0531": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0611": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.立券.移徙.入宅.动土.破土.安葬.",
		"j": "开光.作灶.造屋.架马.开仓.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0613": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "入宅.嫁娶.移徙.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0623": {
		"y": "安机械.移徙.入宅.出行.祭祀.祈福.斋醮.纳采.订盟.安香.出火.解除.会亲友.修造.动土.拆卸.起基.定磉.移徙.入宅.造屋.安床.修造.破土.安葬.入殓.立碑.",
		"j": "开市.伐木.作梁.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0622": {
		"y": "祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.",
		"j": "斋醮.出行.治病.合寿木.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0612": {
		"y": "纳采.订盟.冠笄.祭祀.祈福.斋醮.出行.修造.动土.移徙.入宅.安香.出火.拆卸.造屋.起基.竖柱.上梁.定磉.安门.开池.",
		"j": "嫁娶.开市.合寿木.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0731": {
		"y": "纳采.祭祀.祈福.解除.动土.破土.安葬.",
		"j": "嫁娶.移徙.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0601": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "祈福.斋醮.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0602": {
		"y": "纳采.祭祀.祈福.开市.求医.治病.动土.纳畜.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0603": {
		"y": "嫁娶.纳采.出行.移徙.入宅.",
		"j": "动土.破土.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0604": {
		"y": "订盟.纳采.祭祀.动土.破土.交易.立券.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0605": {
		"y": "嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.",
		"j": "赴任.捕捉.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0606": {
		"y": "嫁娶.合帐.裁衣.冠笄.伐木.上梁.出火.拆卸.移徙.修造.动土.安门.纳财.筑堤.栽种.塞穴.",
		"j": "安床.祈福.出行.安葬.行丧.开光.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0607": {
		"y": "出行.教牛马.割蜜.余事勿取.",
		"j": "斋醮.造屋.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0608": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.拆卸.修造.进人口.入宅.移徙.动土.安床.纳畜.栽种.纳财.交易.立券.挂匾.造畜椆栖.",
		"j": "安葬.开生坟.合寿木.行丧.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0609": {
		"y": "安机械.祭祀.祈福.求嗣.沐浴.解除.纳采.开市.修造.竖柱.上梁.开柱眼.安碓硙.归岫.补垣.塞穴.拆卸.放水.出火.扫舍.开生坟.合寿木.安葬.谢土.启攒.除服.成服.",
		"j": "嫁娶.安床.作灶.动土.破土.造船.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0610": {
		"y": "祭祀.沐浴.理发.整手足甲.修饰垣墙.平治道涂.余事勿取.",
		"j": "开市.入宅.出行.修造.词讼.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0614": {
		"y": "嫁娶.安机械.交易.出行.祭祀.祈福.求嗣.斋醮.塑绘.开光.合帐.裁衣.放水.开池.掘井.",
		"j": "作灶.理发.造桥.行丧.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0615": {
		"y": "纳采.冠笄.求医.治病.开市.立券.修造.动土.安机械.破土.安葬.",
		"j": "斋醮.祭祀.移徙.入宅.上梁.嫁娶.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0616": {
		"y": "祭祀.作灶.余事勿取.",
		"j": "开市.安葬.破土.修坟.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0617": {
		"y": "祭祀.祈福.求嗣.斋醮.安香.解除.移徙.入宅.会亲友.求医.治病.动土.破土.开生坟.合寿木.",
		"j": "合帐.上梁.经络.安葬.入殓.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0618": {
		"y": "嫁娶.冠笄.修造.动土.作灶.移徙.入宅.补垣.塞穴.纳畜.牧养.架马.修造.动土.起基.定磉.开池.造船.",
		"j": "祈福.开光.掘井.开市.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0619": {
		"y": "祭祀.交易.纳财.",
		"j": "斋醮.开渠.上梁.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0620": {
		"y": "嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕.",
		"j": "行丧.伐木.作梁.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0624": {
		"y": "祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.",
		"j": "开市.交易.嫁娶.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0625": {
		"y": "破屋.坏垣.求医.治病.畋猎.余事勿取.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0626": {
		"y": "嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.",
		"j": "开市.安门.掘井.作灶.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0627": {
		"y": "订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.",
		"j": "",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0628": {
		"y": "祭祀.捕捉.取渔.修饰垣墙.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0629": {
		"y": "嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.",
		"j": "开市.安门.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0630": {
		"y": "裁衣.作灶.移徙.入宅.纳畜.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0728": {
		"y": "塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0831": {
		"y": "嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅.",
		"j": "动土.破土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0701": {
		"y": "祭祀.入殓.移柩.启攒.安葬.",
		"j": "上梁.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0702": {
		"y": "订盟.纳采.出行.祈福.斋醮.安床.会亲友.",
		"j": "移徙.入宅.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0703": {
		"y": "嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.",
		"j": "动土.破土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0704": {
		"y": "嫁娶.祭祀.沐浴.扫舍.修饰垣墙.",
		"j": "行丧.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0705": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0706": {
		"y": "订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0707": {
		"y": "祭祀.祈福.解除.整手足甲.安床.沐浴.入殓.移柩.破土.启攒.安葬.谢土.",
		"j": "嫁娶.斋醮.开市.出火.入宅.移徙.出行.作灶.安门.伐木.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0708": {
		"y": "破屋.坏垣.解除.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0709": {
		"y": "嫁娶.开市.立券.移徙.入宅.安机械.会亲友.经络.安门.安床.挂匾.拆卸.开仓.出货财.开池.栽种.纳畜.牧养.破土.安葬.启攒.移柩.入殓.立碑.",
		"j": "祭祀.祈福.探病.谢土.造桥.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0710": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.斋醮.开光.会亲友.求医.治病.造屋.起基.竖柱.上梁.安门.安碓硙.筑堤.开池.破土.安葬.除服.成服.",
		"j": "入宅.开市.掘井.词讼.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0711": {
		"y": "纳采.订盟.嫁娶.移徙.入宅.出行.祭祀.祈福.斋醮.塑绘.开光.安香.出火.会亲友.解除.入学.竖柱.上梁.拆卸.造屋.起基.栽种.牧养.纳畜.",
		"j": "安葬.破土.开市.开仓.出货财.启攒.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0712": {
		"y": "纳采.订盟.嫁娶.祭祀.沐浴.塑绘.开光.出火.治病.习艺.伐木.造屋.竖柱.上梁.安床.作灶.安碓硙.挂匾.掘井.纳畜.",
		"j": "出行.安葬.造桥.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0713": {
		"y": "祭祀.入殓.除服.成服.移柩.破土.启攒.安葬.塞穴.断蚁.结网.",
		"j": "开市.入宅.嫁娶.开光.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0714": {
		"y": "祭祀.修造.出行.造屋.竖柱.造车器.教牛马.造畜椆栖.割蜜.",
		"j": "动土.破土.掘井.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0715": {
		"y": "祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.",
		"j": "嫁娶.出行.纳采.入宅.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0716": {
		"y": "纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.",
		"j": "斋醮.入宅.安门.安葬.破土.行丧.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0717": {
		"y": "祭祀.修饰垣墙.平治道涂.",
		"j": "开市.动土.破土.嫁娶.修造.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0718": {
		"y": "订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.",
		"j": "嫁娶.安葬.行丧.破土.修坟.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0719": {
		"y": "沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.",
		"j": "出火.嫁娶.入宅.作灶.破土.上梁.动土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0720": {
		"y": "求医.治病.破屋.坏垣.余事勿取.",
		"j": "嫁娶.出行.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0721": {
		"y": "纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.",
		"j": "祈福.上梁.开仓.掘井.牧养.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0722": {
		"y": "祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.",
		"j": "嫁娶.开市.栽种.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0723": {
		"y": "祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.",
		"j": "开市.入宅.安床.动土.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0724": {
		"y": "祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓硙.",
		"j": "造屋.入宅.作灶.入学.安葬.行丧.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0725": {
		"y": "祭祀.塞穴.结网.畋猎.余事勿取.",
		"j": "移徙.开市.入宅.嫁娶.开光.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0726": {
		"y": "开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.",
		"j": "动土.破土.安葬.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0727": {
		"y": "移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.",
		"j": "开市.斋醮.安床.出行.经络.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0729": {
		"y": "祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0730": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0801": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0802": {
		"y": "嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "祭祀.祈福.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0803": {
		"y": "嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "赴任.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0804": {
		"y": "祭祀.作灶.纳财.捕捉.",
		"j": "开市.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0805": {
		"y": "嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅.",
		"j": "造庙.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0806": {
		"y": "补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0807": {
		"y": "祭祀.出行.作梁.出火.拆卸.修造.动土.起基.安床.补垣.塞穴.入殓.破土.安葬.移柩.造畜椆栖.",
		"j": "嫁娶.入宅.斋醮.开光.针灸.掘井.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0808": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.出行.解除.竖柱.入宅.移徙.纳财.上梁.纳畜.入殓.安葬.启攒.",
		"j": "栽种.掘井.动土.安床.破土.置产.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0809": {
		"y": "解除.祭祀.祈福.求嗣.修造.动土.竖柱.上梁.安床.纳畜.造屋.合脊.起基.入殓.破土.安葬.",
		"j": "出火.嫁娶.开光.进人口.出行.词讼.开市.入宅.移徙.赴任.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0810": {
		"y": "沐浴.理发.会亲友.塑绘.开光.栽种.牧养.嫁娶.经络.补垣.塞穴.",
		"j": "开市.入宅.动土.破土.安葬.作灶.上梁.安床.开仓.祈福.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0811": {
		"y": "祭祀.理发.作灶.沐浴.修饰垣墙.平治道涂.",
		"j": "嫁娶.栽种.祈福.造桥.安葬.安门.伐木.作梁.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0812": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.斋醮.普渡.移徙.入宅.出行.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.定磉.安门.安葬.破土.",
		"j": "开市.立券.置产.作灶.造桥.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0813": {
		"y": "祭祀.普渡.捕捉.解除.结网.畋猎.入殓.破土.安葬.",
		"j": "开市.交易.入宅.嫁娶.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0814": {
		"y": "沐浴.破屋.坏垣.余事勿取.",
		"j": "斋醮.开市.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0815": {
		"y": "订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬.",
		"j": "动土.破土.嫁娶.掘井.安床.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0816": {
		"y": "嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网.",
		"j": "纳采.订盟.经络.行丧.安葬.探病.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0817": {
		"y": "嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.",
		"j": "掘井.出行.破土.行丧.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0818": {
		"y": "嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒.",
		"j": "出火.入宅.造屋.安门.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0819": {
		"y": "嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.",
		"j": "动土.破土.掘井.开光.上梁.词讼.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0820": {
		"y": "嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.",
		"j": "开市.动土.破土.安床.开仓.上梁.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0821": {
		"y": "祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.",
		"j": "嫁娶.出行.入宅.开市.安门.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0822": {
		"y": "塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.",
		"j": "祈福.开市.动土.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0823": {
		"y": "出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养.",
		"j": "嫁娶.安门.动土.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0824": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬.",
		"j": "开市.立券.纳财.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0825": {
		"y": "祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.",
		"j": "嫁娶.纳采.订盟.开市.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0826": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "行丧.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0827": {
		"y": "祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.",
		"j": "动土.破土.订盟.安床.开池.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0828": {
		"y": "祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.",
		"j": "",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0829": {
		"y": "塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养.",
		"j": "",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0830": {
		"y": "祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.",
		"j": "",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0921": {
		"y": "订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.",
		"j": "嫁娶.造庙.造桥.造船.作灶.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0925": {
		"y": "祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.",
		"j": "开光.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0930": {
		"y": "祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.",
		"j": "入宅.伐木.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0926": {
		"y": "祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.",
		"j": "动土.作灶.行丧.安葬.修坟.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0920": {
		"y": "余事勿取.",
		"j": "探病.余事勿取.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1031": {
		"y": "祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.",
		"j": "作灶.入殓.安葬.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0901": {
		"y": "嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.",
		"j": "作灶.动土.破土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0902": {
		"y": "订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.",
		"j": "嫁娶.开市.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0903": {
		"y": "订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0904": {
		"y": "沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.祈福.余事勿取.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0905": {
		"y": "嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0906": {
		"y": "捕捉.结网.入殓.破土.安葬.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0907": {
		"y": "沐浴.治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0908": {
		"y": "破屋.坏垣.求医.治病.余事勿取.",
		"j": "移徙.入宅.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0909": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.出行.出火.拆卸.修造.动土.进人口.入宅.移徙.安床.上梁.合脊.放水.掘井.破土.移柩.谢土.除服.成服.",
		"j": "开市.开仓.安门.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0910": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.开光.解除.进人口.入宅.移徙.出火.安床.开市.交易.立券.挂匾.",
		"j": "安葬.纳畜.出行.行丧.伐木.栽种.造庙.造桥.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0911": {
		"y": "祭祀.冠笄.捕捉.余事勿取.",
		"j": "嫁娶.开市.造屋.作梁.合寿木.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0912": {
		"y": "祭祀.解除.结网.畋猎.取渔.会亲友.入学.移柩.启攒.除服.成服.",
		"j": "开市.祈福.动土.破土.入殓.安葬.造船.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0913": {
		"y": "冠笄.沐浴.出行.修造.动土.移徙.入宅.破土.安葬.",
		"j": "嫁娶.开市.祭祀.祈福.斋醮.纳采.修坟.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0914": {
		"y": "祭祀.出行.",
		"j": "嫁娶.入宅.修造.动土.会亲友.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0915": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.",
		"j": "针灸.伐木.作梁.造庙.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0916": {
		"y": "出行.开市.交易.立券.安机械.出火.上梁.移徙.",
		"j": "嫁娶.安葬.动土.造桥.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0917": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "斋醮.嫁娶.移徙.出行.上梁.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0918": {
		"y": "嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬.",
		"j": "纳采.订盟.架马.词讼.开渠.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0919": {
		"y": "沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.",
		"j": "祭祀.嫁娶.安床.开市.入宅.探病.上梁.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0922": {
		"y": "开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.",
		"j": "行丧.安葬.合寿木.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0923": {
		"y": "祭祀.嫁娶.捕捉.",
		"j": "开光.动土.破土.开市.修造.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0924": {
		"y": "祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.",
		"j": "嫁娶.开市.动土.掘井.开池.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0927": {
		"y": "出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.",
		"j": "造庙.安门.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0928": {
		"y": "祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0929": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d1021": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜.",
		"j": "造庙.造船.动土.破土.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d1029": {
		"y": "祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财.",
		"j": "开仓.冠笄.伐木.作梁.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1024": {
		"y": "祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.开市.安床.掘井.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1014": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.安香.出火.造庙.移徙.出行.入宅.造庙.起基.竖柱.上梁.安床.纳畜.捕捉.纳婿.安葬.",
		"j": "开市.破土.掘井.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d1011": {
		"y": "纳采.订盟.开市.交易.立券.会亲友.纳畜.牧养.问名.移徙.解除.作厕.入学.起基.安床.开仓.出货财.安葬.启攒.入殓.除服.成服.",
		"j": "入宅.上梁.斋醮.出火.谢土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d1022": {
		"y": "出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.",
		"j": "嫁娶.动土.破土.修坟.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d1027": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d1017": {
		"y": "造车器.嫁娶.订盟.纳采.会亲友.祭祀.出行.开市.立券.移徙.入宅.破土.安葬.",
		"j": "上梁.开光.造屋.架马.合寿木.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d1129": {
		"y": "理发.会亲友.补垣.塞穴.结网.",
		"j": "嫁娶.入宅.安门.移徙.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d1001": {
		"y": "祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.",
		"j": "作灶.祭祀.入宅.嫁娶.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d1002": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "移徙.入宅.出行.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d1003": {
		"y": "祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.",
		"j": "造桥.冠笄.造屋.掘井.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d1004": {
		"y": "祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络.",
		"j": "定磉.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1005": {
		"y": "祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.",
		"j": "移徙.入宅.作灶.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d1006": {
		"y": "祭祀.诸事不宜.",
		"j": "入殓.安葬.开市.交易.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d1007": {
		"y": "祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.",
		"j": "安床.开光.开市.交易.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d1008": {
		"y": "嫁娶.裁衣.冠笄.合帐.祭祀.出行.安床.移徙.塞穴.入殓.破土.移柩.安葬.",
		"j": "开市.出行.栽种.置产.词讼.安门.掘井.开光.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d1009": {
		"y": "祭祀.造车器.出行.修造.上梁.造屋.安门.安床.造畜椆栖.教牛马.",
		"j": "出货财.开仓.动土.破土.安葬.行丧.伐木.开渠.栽种.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d1010": {
		"y": "祭祀.开光.出行.解除.伐木.作梁.出火.拆卸.入宅.移徙.安床.修造.造畜椆栖.扫舍.",
		"j": "造庙.嫁娶.掘井.栽种.造桥.作灶.动土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d1012": {
		"y": "祭祀.平治道涂.余事勿取.",
		"j": "嫁娶.开市.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d1013": {
		"y": "捕捉.畋猎.余事勿取.",
		"j": "开市.交易.祭祀.入宅.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d1015": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "开市.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1016": {
		"y": "订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.",
		"j": "嫁娶.开市.入宅.祈福.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d1018": {
		"y": "祭祀.作灶.纳财.捕捉.畋猎.余事勿取.",
		"j": "动土.破土.开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d1019": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.",
		"j": "开市.开仓.出货财.安床.安门.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d1020": {
		"y": "冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.",
		"j": "开光.嫁娶.会亲友.栽种.针灸.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d1023": {
		"y": "沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.",
		"j": "移徙.入宅.出行.祈福.嫁娶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d1025": {
		"y": "捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.",
		"j": "嫁娶.祭祀.入宅.造屋.移徙.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1026": {
		"y": "祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒.",
		"j": "开光.嫁娶.掘井.伐木.作梁.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d1028": {
		"y": "会亲友.嫁娶.订盟.纳采.纳婿.拆卸.修造.动土.起基.竖柱.上梁.安床.会亲友.纳财.",
		"j": "出行.祈福.安葬.作灶.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d1030": {
		"y": "祭祀.作灶.入殓.除服.成服.畋猎.",
		"j": "栽种.动土.安葬.开市.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d1121": {
		"y": "破屋.坏垣.祭祀.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d1229": {
		"y": "祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.",
		"j": "开光.栽种.治病.安门.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d1101": {
		"y": "嫁娶.祭祀.安机械.入殓.破土.安葬.",
		"j": "动土.上梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d1102": {
		"y": "作灶.造畜椆栖.",
		"j": "行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d1103": {
		"y": "沐浴.理发.入学.习艺.进人口.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d1104": {
		"y": "开光.针灸.会亲友.启攒.安葬.",
		"j": "开市.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d1105": {
		"y": "祭祀.结网.造畜椆栖.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d1106": {
		"y": "入殓.除服.成服.移柩.破土.启攒.安葬.",
		"j": "移徙.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d1107": {
		"y": "嫁娶.纳采.订盟.祭祀.斋醮.开光.安香.出火.出行.出火.拆卸.动土.祈福.进人口.纳财.交易.立券.移徙.安床.修造.安葬.除服.成服.",
		"j": "置产.掘井.词讼.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d1108": {
		"y": "嫁娶.纳采.订盟.祭祀.开光.出行.解除.伐木.出火.入宅.移徙.拆卸.修造.栽种.安葬.入殓.",
		"j": "破土.动土.安门.作灶.开市.交易.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d1109": {
		"y": "祭祀.解除.破屋.坏垣.求医.治病.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d1110": {
		"y": "祭祀.扫舍.破土.安葬.除服.成服.启攒.移柩.入殓.立碑.余事勿取.",
		"j": "祭祀.嫁娶.入宅.修造.动土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d1111": {
		"y": "订盟.纳采.会亲友.祭祀.祈福.修造.动土.安机械.破土.安葬.",
		"j": "嫁娶.移徙.出火.开市.入宅.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d1112": {
		"y": "祭祀.沐浴.捕捉.畋猎.结网.扫舍.",
		"j": "嫁娶.纳采.订盟.安床.动土.破土.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d1113": {
		"y": "开市.纳财.出行.祭祀.祈福.求嗣.斋醮.问名.入学.起基.定磉.置产.开渠.掘井.拆卸.栽种.纳畜.牧养.动土.破土.启攒.",
		"j": "移徙.入宅.出火.入殓.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d1114": {
		"y": "祭祀.理发.置产.塞穴.除服.成服.移柩.入殓.破土.安葬.",
		"j": "嫁娶.入宅.安床.掘井.开光.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d1115": {
		"y": "祭祀.沐浴.出行.余事勿取.",
		"j": "开市.动土.破土.行丧.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d1116": {
		"y": "嫁娶.造车器.出行.会亲友.移徙.入宅.修造.动土.雕刻.开光.安香.出火.理发.会亲友.造屋.合脊.起基.归岫.安门.拆卸.扫舍.栽种.造畜椆栖.",
		"j": "开市.纳采.造庙.安床.开渠.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d1117": {
		"y": "塑绘.会亲友.安机械.塞穴.结网.裁衣.经络.",
		"j": "嫁娶.开市.祈福.斋醮.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d1118": {
		"y": "纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕.",
		"j": "开仓.造屋.造桥.祭祀.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d1119": {
		"y": "订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.",
		"j": "嫁娶.安葬.掘井.置产.造船.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1120": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.",
		"j": "开市.造庙.动土.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d1122": {
		"y": "嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.",
		"j": "造屋.造船.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d1123": {
		"y": "纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬.",
		"j": "嫁娶.开市.入宅.出火.移徙.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d1124": {
		"y": "捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.",
		"j": "安床.安门.破土.修坟.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d1125": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓硙.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.",
		"j": "移徙.入宅.安门.作梁.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d1126": {
		"y": "嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.",
		"j": "开光.掘井.安葬.谢土.修坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d1127": {
		"y": "祭祀.沐浴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d1128": {
		"y": "祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木.",
		"j": "入宅.作灶.安床.开仓.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d1130": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.",
		"j": "作灶.治病.伐木.作梁.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d1226": {
		"y": "塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.",
		"j": "掘井.伐木.斋醮.作灶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d1206": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d1216": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "嫁娶.移徙.入宅.探病.出行.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d1227": {
		"y": "祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.",
		"j": "出行.安葬.修坟.开市.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d1207": {
		"y": "祭祀.沐浴.理发.纳财.进人口.栽种.扫舍.捕捉.畋猎.结网.",
		"j": "会亲友.安葬.入宅.移徙.安床.开市.行丧.出火.作灶.安门.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d1222": {
		"y": "合帐.裁衣.教牛马.余事勿取.",
		"j": "入宅.动土.破土.嫁娶.作灶.造船.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d1217": {
		"y": "冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.",
		"j": "安门.动土.破土.行丧.安葬.成服.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d1209": {
		"y": "入宅.移徙.出行.进人口.修造.动土.起基.上梁.安门.造仓.补垣.塞穴.造畜椆栖.",
		"j": "嫁娶.开市.安床.栽种.安葬.祈福.开光.掘井.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d1220": {
		"y": "祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.",
		"j": "移徙.开市.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d1228": {
		"y": "祭祀.求医.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1201": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.",
		"j": "作灶.治病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d1202": {
		"y": "祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.",
		"j": "开市.交易.破土.作灶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d1203": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1204": {
		"y": "祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.",
		"j": "造屋.治病.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d1205": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤.",
		"j": "嫁娶.入宅.治病.赴任.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d1208": {
		"y": "纳采.订盟.祭祀.祈福.求嗣.塑绘.解除.拆卸.修造.动土.竖柱.上梁.安门.置产.开池.掘井.纳畜.安床.栽种.造畜椆栖.破土.移柩.立碑.",
		"j": "嫁娶.开市.出火.进人口.入殓.赴任.入宅.移徙.出行.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d1210": {
		"y": "造畜椆栖.教牛马.",
		"j": "入宅.移徙.分居.作灶.出火.安香.动土.嫁娶.掘井.扫舍.造桥.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d1211": {
		"y": "订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.",
		"j": "破土.安葬.行丧.开生坟.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d1212": {
		"y": "订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.",
		"j": "祈福.出火.嫁娶.入宅.开市.动土.破土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d1213": {
		"y": "祭祀.平治道涂.修坟.除服.成服.余事勿取.",
		"j": "移徙.入宅.嫁娶.掘井.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d1214": {
		"y": "嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.",
		"j": "开市.纳采.订盟.作灶.造庙.造船.经络.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1215": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓硙.动土.上梁.移徙.入宅.",
		"j": "出行.掘井.破土.行丧.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d1218": {
		"y": "纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.",
		"j": "嫁娶.动土.安床.造桥.掘井.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d1219": {
		"y": "祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.",
		"j": "开市.斋醮.破土.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d1221": {
		"y": "纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.",
		"j": "嫁娶.祈福.开光.掘井.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d1223": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.",
		"j": "斋醮.作梁.掘井.行丧.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1224": {
		"y": "纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.",
		"j": "嫁娶.祈福.出火.移徙.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1225": {
		"y": "祭祀.入殓.移柩.余事勿取.",
		"j": "入宅.修造.动土.破土.安门.上梁.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d1230": {
		"y": "塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土.",
		"j": "",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d1231": {
		"y": "祭祀.沐浴.安床.纳财.畋猎.捕捉.",
		"j": "开市.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	}
};


},{}],205:[function(require,module,exports){
module.exports =  {
	"d0101": {
		"y": "订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.",
		"j": "嫁娶.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0201": {
		"y": "会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜.",
		"j": "出行.治病.安葬.开市.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0102": {
		"y": "出行.沐浴.理发.补垣.塞穴.",
		"j": "入宅.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0103": {
		"y": "教牛马.余事勿取.",
		"j": "入宅.动土.破土.余事勿取.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0104": {
		"y": "嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.",
		"j": "开市.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0105": {
		"y": "嫁娶.开光.解除.出火.拆卸.修造.进人口.入宅.移徙.安床.栽种.入殓.修坟.动土.除服.成服.",
		"j": "作灶.安葬.祭祀.开市.纳采.订盟.纳畜.谢土.出行.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0106": {
		"y": "出行.起基.安床.纳财.交易.立券.嫁娶.栽种.入殓.移柩.安葬.",
		"j": "挂匾.入宅.上梁.祈福.词讼.作梁.作灶.开池.安门.动土.破土.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0107": {
		"y": "平治道涂.余事勿取.",
		"j": "开光.嫁娶.开仓.出货财.造船.安葬.探病.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0108": {
		"y": "嫁娶.订盟.纳采.会亲友.祭祀.安机械.移徙.入宅.造屋.安床.起基.定磉.安香.出火.挂匾.拆卸.置产.",
		"j": "开市.出行.安葬.行丧.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0109": {
		"y": "沐浴.捕捉.畋猎.理发.整手足甲.入殓.除服.成服.破土.安葬.谢土.立碑.修坟.启攒.",
		"j": "纳采.订盟.嫁娶.上梁.开市.斋醮.造屋.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0110": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "斋醮.嫁娶.开市.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0111": {
		"y": "沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬.",
		"j": "祈福.嫁娶.安床.入宅.造船.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0112": {
		"y": "祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取.",
		"j": "造庙.入宅.修造.安葬.行丧.嫁娶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0113": {
		"y": "嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.",
		"j": "开市.安床.安葬.修坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0114": {
		"y": "订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井.",
		"j": "造庙.嫁娶.出行.动土.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0115": {
		"y": "交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.",
		"j": "开光.嫁娶.开市.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0116": {
		"y": "祭祀.解除.教牛马.会亲友.余事勿取.",
		"j": "破土.动土.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0117": {
		"y": "纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓.",
		"j": "探病.祭祀.出行.上梁.造屋.谢土.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0118": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.",
		"j": "入宅.开光.开市.动土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0119": {
		"y": "祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.",
		"j": "移徙.入宅.造庙.作灶.治病.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0120": {
		"y": "祭祀.安碓硙.结网.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0121": {
		"y": "嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.",
		"j": "造屋.开市.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0122": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "嫁娶.开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0123": {
		"y": "纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.",
		"j": "祈福.嫁娶.造庙.安床.谢土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0124": {
		"y": "入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.",
		"j": "开市.伐木.嫁娶.作梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0125": {
		"y": "祭祀.作灶.入殓.除服.余事勿取.",
		"j": "开市.安床.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0126": {
		"y": "塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.",
		"j": "嫁娶.入殓.安葬.出行.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0127": {
		"y": "祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.",
		"j": "开仓.嫁娶.移徙.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0128": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0129": {
		"y": "沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.",
		"j": "作灶.祭祀.上梁.出行.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0130": {
		"y": "出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口.",
		"j": "作灶.掘井.谢土.入宅.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0131": {
		"y": "修饰垣墙.平治道涂.入殓.移柩.余事勿取.",
		"j": "嫁娶.移徙.入宅.开光.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0210": {
		"y": "纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.",
		"j": "祭祀.移徙.入宅.动土.破土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0218": {
		"y": "祭祀.结网.入殓.除服.成服.移柩.安葬.破土.",
		"j": "余事勿取.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0228": {
		"y": "求医.破屋.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0220": {
		"y": "祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓硙.放水.开市.立券.交易.",
		"j": "安葬.上梁.入宅.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0208": {
		"y": "纳采.嫁娶.祭祀.祈福.出行.开市.会亲友.动土.破土.启攒.",
		"j": "移徙.入宅.出火.安门.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0226": {
		"y": "塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.",
		"j": "造屋.栽种.安葬.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0216": {
		"y": "祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取.",
		"j": "入宅.开市.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0227": {
		"y": "祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.",
		"j": "栽种.动土.开市.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0217": {
		"y": "祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土.",
		"j": "安床.栽种.治病.作灶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0207": {
		"y": "纳采.祭祀.祈福.出行.会亲友.修造.动土.移徙.入宅.",
		"j": "嫁娶.开市.安葬.破土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0206": {
		"y": "塞穴.结网.取渔.畋猎.",
		"j": "嫁娶.安门.移徙.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0331": {
		"y": "祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱.",
		"j": "作灶.掘井.动土.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0202": {
		"y": "祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门.",
		"j": "造屋.开市.作灶.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0203": {
		"y": "解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0204": {
		"y": "祭祀.沐浴.解除.理发.扫舍.破屋.坏垣.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0205": {
		"y": "纳采.订盟.祭祀.祈福.安香.出火.修造.出行.开市.移徙.入宅.动土.安葬.破土.",
		"j": "安床.作灶.造船.会亲友.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0209": {
		"y": "祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "嫁娶.动土.开光.造屋.破土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0211": {
		"y": "祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬.",
		"j": "开光.嫁娶.作灶.掘井.纳畜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0212": {
		"y": "会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.",
		"j": "开市.动土.安葬.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0213": {
		"y": "祭祀.平治道涂.余事勿取.",
		"j": "嫁娶.祈福.掘井.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0214": {
		"y": "祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土.",
		"j": "置产.造屋.合脊.开光.探病.安门.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0215": {
		"y": "入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.",
		"j": "开光.开市.入宅.动土.造屋.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0219": {
		"y": "塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.",
		"j": "伐木.作灶.安葬.取渔.入宅.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0221": {
		"y": "祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.",
		"j": "出行.嫁娶.入宅.动土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0222": {
		"y": "裁衣.合帐.入殓.除服.成服.会亲友.纳财.",
		"j": "祭祀.祈福.移徙.嫁娶.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0223": {
		"y": "祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.",
		"j": "掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0224": {
		"y": "安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓.",
		"j": "斋醮.作灶.安床.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0225": {
		"y": "作灶.平治道涂.",
		"j": "祭祀.祈福.安葬.安门.余事勿取.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0319": {
		"y": "祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.",
		"j": "栽种.动土.安葬.掘井.修坟.探病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0323": {
		"y": "祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.",
		"j": "赴任.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0419": {
		"y": "祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.",
		"j": "嫁娶.开市.交易.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0301": {
		"y": "祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水.",
		"j": "作灶.安床.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0302": {
		"y": "取渔.入殓.除服.成服.移柩.破土.安葬.立碑.",
		"j": "嫁娶.上梁.入宅.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0303": {
		"y": "祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.",
		"j": "安葬.作灶.伐木.作梁.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0304": {
		"y": "祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩.",
		"j": "入殓.安葬.作灶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0305": {
		"y": "祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.",
		"j": "开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0306": {
		"y": "冠笄.立券.交易.修造.动土.安机械.入殓.安葬.破土.",
		"j": "嫁娶.祈福.出火.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0307": {
		"y": "祭祀.会亲友.出行.立券.交易.冠笄.纳财.",
		"j": "嫁娶.动土.掘井.起基.定磉.破土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0308": {
		"y": "祭祀.沐浴.解除.扫舍.塞穴.牧养.",
		"j": "嫁娶.安葬.行丧.安门.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0309": {
		"y": "纳财.开市.交易.立券.开光.针灸.会亲友.理发.安床.造仓.结网.",
		"j": "移徙.入宅.栽种.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0310": {
		"y": "嫁娶.冠笄.会亲友.安机械.纳财.交易.立券.置产.",
		"j": "开市.造屋.治病.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0311": {
		"y": "嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬.",
		"j": "纳畜.理发.合寿木.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0312": {
		"y": "祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.",
		"j": "纳采.开光.安床.嫁娶.开市.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0313": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "嫁娶.移徙.开市.入宅.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0314": {
		"y": "嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.",
		"j": "塑绘.开光.造桥.除服.成服.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0315": {
		"y": "开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财.",
		"j": "祈福.嫁娶.安葬.破土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0316": {
		"y": "理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.",
		"j": "纳财.开市.安葬.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0317": {
		"y": "开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养.",
		"j": "纳采.动土.开市.交易.安门.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0318": {
		"y": "裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.",
		"j": "祭祀.嫁娶.出行.上梁.掘井.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0320": {
		"y": "扫舍.塞穴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0321": {
		"y": "塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.",
		"j": "作灶.出行.入宅.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0322": {
		"y": "祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.",
		"j": "动土.作灶.入宅.开光.安床.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0324": {
		"y": "祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.",
		"j": "安床.嫁娶.作灶.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0325": {
		"y": "破屋.坏垣.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0326": {
		"y": "祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎.",
		"j": "作梁.造庙.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0327": {
		"y": "祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.",
		"j": "造庙.嫁娶.伐木.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0328": {
		"y": "祭祀.沐浴.捕捉.栽种.",
		"j": "嫁娶.入宅.移徙.作灶.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0329": {
		"y": "祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.",
		"j": "栽种.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0330": {
		"y": "订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.",
		"j": "作灶.开光.嫁娶.开市.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0426": {
		"y": "纳采.开光.求医.治病.动土.上梁.移徙.入宅.",
		"j": "嫁娶.开市.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0406": {
		"y": "纳采.祭祀.祈福.求嗣.斋醮.出行.起基.造屋.定磉.安门.入殓.安葬.",
		"j": "嫁娶.开市.纳财.出火.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0429": {
		"y": "祭祀.斋醮.开市.动土.入殓.破土.安葬.",
		"j": "嫁娶.移徙.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0424": {
		"y": "祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.",
		"j": "掘井.安门.嫁娶.纳采.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0409": {
		"y": "祭祀.祈福.求嗣.斋醮.纳采.订盟.开光.竖柱.上梁.开仓.出货财.造屋.起基.定磉.安门.诸事不宜.破土.入殓.启攒.谢土.",
		"j": "出火.嫁娶.开市.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0416": {
		"y": "祭祀.作灶.平治道涂.余事勿取.",
		"j": "嫁娶.安葬.动土.安床.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0414": {
		"y": "沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.",
		"j": "开市.嫁娶.移徙.入宅.掘井.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0404": {
		"y": "祭祀.嫁娶.祈福.纳采.裁衣.合帐.安床.入宅.安香.入殓.移柩.安葬.谢土.修造.安碓硙.求嗣.会亲友.挂匾.交易.立券.纳财.造仓.放水.",
		"j": "栽种.伐木.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0427": {
		"y": "祭祀.会亲友.开市.安床.启攒.安葬.",
		"j": "嫁娶.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0428": {
		"y": "祭祀.作灶.掘井.平治道涂.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0417": {
		"y": "造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮.",
		"j": "入宅.动土.开仓.出货财.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0422": {
		"y": "祭祀.余事勿取.",
		"j": "造庙.嫁娶.安床.余事勿取.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0528": {
		"y": "纳采.祭祀.祈福.开市.求医.治病.动土.纳畜.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0401": {
		"y": "祭祀.扫舍.塞穴.",
		"j": "栽种.作灶.安葬.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0402": {
		"y": "开光.塑绘.裁衣.冠笄.伐木.拆卸.竖柱.上梁.开仓.会亲友.安机械.造仓.造屋.交易.解除.开市.立券.纳财.",
		"j": "出行.嫁娶.入宅.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0403": {
		"y": "冠笄.入殓.除服.成服.移柩.平治道涂.修饰垣墙.",
		"j": "造屋.作灶.治病.探病.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0405": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.纳畜.入殓.破土.安葬.",
		"j": "移徙.入宅.嫁娶.出行.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0407": {
		"y": "祭祀.沐浴.解除.求医.治病.破屋.坏垣.余事勿取.",
		"j": "祈福.斋醮.开市.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0408": {
		"y": "沐浴.捕捉.畋猎.结网.取渔.",
		"j": "祭祀.嫁娶.入宅.作灶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0410": {
		"y": "祭祀.捕捉.解除.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲羊",
		"s": "煞东",
		"ch": "收",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0411": {
		"y": "纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.",
		"j": "祈福.动土.破土.安葬.入殓.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0412": {
		"y": "祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.",
		"j": "开光.嫁娶.掘井.安葬.安门.探病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0413": {
		"y": "祭祀.解除.教牛马.出行.余事勿取.",
		"j": "动土.破土.行丧.开光.作梁.安葬.探病.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0415": {
		"y": "求嗣.出行.解除.订盟.纳采.嫁娶.会亲友.进人口.安床.开市.交易.纳畜.牧养.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "祈福.开市.修造.动土.破土.谢土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0418": {
		"y": "祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.",
		"j": "开市.动土.掘井.开池.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0420": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0421": {
		"y": "祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.",
		"j": "出火.入宅.安葬.伐木.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0423": {
		"y": "订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.",
		"j": "入殓.安葬.入宅.安床.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0425": {
		"y": "祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.",
		"j": "掘井.动土.破土.安葬.开光.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0430": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.移徙.求医.",
		"j": "开市.动土.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0521": {
		"y": "开光.出行.纳采.嫁娶.伐木.架马.出火.拆卸.移徙.入宅.造庙.造桥.造船.造畜椆栖.开市.入殓.除服.成服.移柩.安葬.",
		"j": "",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0511": {
		"y": "祭祀.沐浴.移徙.破土.安葬.扫舍.平治道涂.",
		"j": "祈福.嫁娶.入宅.安床.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0501": {
		"y": "祭祀.求医.治病.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0525": {
		"y": "嫁娶.纳采.求医.治病.修造.动土.移徙.入宅.破土.安葬.",
		"j": "开市.开光.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0523": {
		"y": "开光.出行.嫁娶.",
		"j": "会亲友.进人口.修造.动土.起基.移徙.开市.纳畜.入殓.除服.成服.移柩.破土.安葬.修坟.立碑.会亲友.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0621": {
		"y": "嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.",
		"j": "开市.安门.掘井.作灶.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0502": {
		"y": "沐浴.结网.取渔.",
		"j": "嫁娶.入宅.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0503": {
		"y": "",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0504": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0505": {
		"y": "嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.",
		"j": "祈福.入殓.祭祀.作灶.安葬.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0506": {
		"y": "祭祀.祈福.求嗣.开光.纳采.订盟.嫁娶.出行.动土.破土.会亲友.开市.交易.立券.习艺.拆卸.起基.安碓硙.放水.开池.造仓.开渠.栽种.谢土.启攒.修坟.立碑.",
		"j": "入宅.安门.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0507": {
		"y": "嫁娶.冠笄.祭祀.出行.移徙.入宅.作灶.造车器.补垣.塞穴.作厕.破土.启攒.除服.成服.入殓.",
		"j": "入宅.造屋.造桥.安门.安葬.上梁.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0508": {
		"y": "祭祀.解除.断蚁.会亲友.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0509": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.治病.造车器.修造.动土.移徙.入宅.",
		"j": "开市.出行.安床.作灶.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0510": {
		"y": "嫁娶.纳采.订盟.会亲友.安机械.结网.冠笄.祭祀.求嗣.进人口.经络.",
		"j": "开市.作灶.动土.行丧.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0512": {
		"y": "祭祀.祈福.斋醮.求嗣.安机械.纳畜.移徙.入宅.安机械.塑绘.开光.起基.竖柱.上梁.作灶.安门.安香.出火.造屋.启攒.安葬.",
		"j": "动土.破土.嫁娶.嫁娶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0513": {
		"y": "嫁娶.纳采.订盟.斋醮.开光.祭祀.祈福.求医.治病.会亲友.动土.解除.捕捉.纳畜.牧养.入殓.破土.安葬.",
		"j": "移徙.入宅.造屋.架马.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0514": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "行丧.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0515": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "斋醮.开市.嫁娶.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0516": {
		"y": "开市.交易.立券.安机械.会亲友.开光.求医.治病.造屋.起基.修造.动土.定磉.竖柱.上梁.安门.作灶.放水.作厕.开池.栽种.牧养.造畜椆栖.破土.安葬.立碑.",
		"j": "嫁娶.出火.移徙.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0517": {
		"y": "栽种.捕捉.畋猎.余事勿取.",
		"j": "开市.动土.祭祀.斋醮.安葬.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0518": {
		"y": "嫁娶.祭祀.祈福.求嗣.斋醮.订盟.纳采.解除.出行.动土.破土.习艺.针灸.理发.会亲友.起基.修造.动土.竖柱.定磉.安床.拆卸.纳畜.牧养.放水.破土.除服.成服.修坟.立碑.",
		"j": "开市.入宅.探病.出火.造屋.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0519": {
		"y": "余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0520": {
		"y": "塞穴.断蚁.结网.余事勿取.",
		"j": "破土.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0522": {
		"y": "进人口.牧养.置产.塞穴.结网.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0524": {
		"y": "嫁娶.纳采.出行.祭祀.祈福.开市.动土.移徙.入宅.破土.安葬.",
		"j": "安门.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0526": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0527": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "祈福.斋醮.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0529": {
		"y": "嫁娶.纳采.出行.移徙.入宅.",
		"j": "动土.破土.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0530": {
		"y": "订盟.纳采.祭祀.动土.破土.交易.立券.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0531": {
		"y": "嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.",
		"j": "赴任.捕捉.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0626": {
		"y": "祭祀.入殓.移柩.启攒.安葬.",
		"j": "上梁.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0726": {
		"y": "纳采.祭祀.祈福.解除.动土.破土.安葬.",
		"j": "嫁娶.移徙.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0601": {
		"y": "塞穴.结网.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0602": {
		"y": "嫁娶.订盟.纳采.出行.祭祀.祈福.斋醮.动土.上梁.破土.安葬.",
		"j": "移徙.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0603": {
		"y": "订盟.纳采.会亲友.安床.作灶.造畜椆栖.",
		"j": "开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0604": {
		"y": "沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0605": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.",
		"j": "",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0606": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.立券.移徙.入宅.动土.破土.安葬.",
		"j": "开光.作灶.造屋.架马.开仓.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0607": {
		"y": "纳采.订盟.冠笄.祭祀.祈福.斋醮.出行.修造.动土.移徙.入宅.安香.出火.拆卸.造屋.起基.竖柱.上梁.定磉.安门.开池.",
		"j": "嫁娶.开市.合寿木.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0608": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "入宅.嫁娶.移徙.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0609": {
		"y": "嫁娶.安机械.交易.出行.祭祀.祈福.求嗣.斋醮.塑绘.开光.合帐.裁衣.放水.开池.掘井.",
		"j": "作灶.理发.造桥.行丧.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0610": {
		"y": "纳采.冠笄.求医.治病.开市.立券.修造.动土.安机械.破土.安葬.",
		"j": "斋醮.祭祀.移徙.入宅.上梁.嫁娶.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0611": {
		"y": "祭祀.作灶.余事勿取.",
		"j": "开市.安葬.破土.修坟.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0612": {
		"y": "祭祀.祈福.求嗣.斋醮.安香.解除.移徙.入宅.会亲友.求医.治病.动土.破土.开生坟.合寿木.",
		"j": "合帐.上梁.经络.安葬.入殓.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0613": {
		"y": "嫁娶.冠笄.修造.动土.作灶.移徙.入宅.补垣.塞穴.纳畜.牧养.架马.修造.动土.起基.定磉.开池.造船.",
		"j": "祈福.开光.掘井.开市.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0614": {
		"y": "祭祀.交易.纳财.",
		"j": "斋醮.开渠.上梁.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0615": {
		"y": "嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕.",
		"j": "行丧.伐木.作梁.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0616": {
		"y": "开光.求嗣.出行.冠笄.嫁娶.伐木.架马.开柱眼.修造.移徙.入宅.开市.交易.立券.出行.安香.出火.挂匾.起基.修造.开生坟.合寿木.入殓.除服.成服.移柩.安葬.",
		"j": "安床.出货财.作灶.动土.破土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0617": {
		"y": "祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.",
		"j": "斋醮.出行.治病.合寿木.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0618": {
		"y": "安机械.移徙.入宅.出行.祭祀.祈福.斋醮.纳采.订盟.安香.出火.解除.会亲友.修造.动土.拆卸.起基.定磉.移徙.入宅.造屋.安床.修造.破土.安葬.入殓.立碑.",
		"j": "开市.伐木.作梁.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0619": {
		"y": "祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.",
		"j": "开市.交易.嫁娶.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0620": {
		"y": "破屋.坏垣.求医.治病.畋猎.余事勿取.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0622": {
		"y": "订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.",
		"j": "",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0623": {
		"y": "祭祀.捕捉.取渔.修饰垣墙.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0624": {
		"y": "嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.",
		"j": "开市.安门.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0625": {
		"y": "裁衣.作灶.移徙.入宅.纳畜.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0627": {
		"y": "订盟.纳采.出行.祈福.斋醮.安床.会亲友.",
		"j": "移徙.入宅.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0628": {
		"y": "嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.",
		"j": "动土.破土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0629": {
		"y": "嫁娶.祭祀.沐浴.扫舍.修饰垣墙.",
		"j": "行丧.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0630": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0716": {
		"y": "纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.",
		"j": "祈福.上梁.开仓.掘井.牧养.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0721": {
		"y": "开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.",
		"j": "动土.破土.安葬.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0724": {
		"y": "祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0706": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.",
		"j": "安葬.开市.交易.立券.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0730": {
		"y": "祭祀.作灶.纳财.捕捉.",
		"j": "开市.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0720": {
		"y": "祭祀.塞穴.结网.畋猎.余事勿取.",
		"j": "移徙.开市.入宅.嫁娶.开光.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0710": {
		"y": "祭祀.沐浴.塑绘.开光.入学.解除.扫舍.治病.开池.牧养.",
		"j": "嫁娶.出行.纳采.入宅.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0728": {
		"y": "嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "祭祀.祈福.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0714": {
		"y": "沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.",
		"j": "出火.嫁娶.入宅.作灶.破土.上梁.动土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0718": {
		"y": "祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.",
		"j": "开市.入宅.安床.动土.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0729": {
		"y": "嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "赴任.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0719": {
		"y": "祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓硙.",
		"j": "造屋.入宅.作灶.入学.安葬.行丧.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0708": {
		"y": "祭祀.入殓.除服.成服.移柩.破土.启攒.安葬.塞穴.断蚁.结网.",
		"j": "开市.入宅.嫁娶.开光.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0709": {
		"y": "祭祀.修造.出行.造屋.竖柱.造车器.教牛马.造畜椆栖.割蜜.",
		"j": "动土.破土.掘井.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0725": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0824": {
		"y": "塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养.",
		"j": "",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0701": {
		"y": "订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0702": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0703": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.",
		"j": "开光.开市.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0704": {
		"y": "开光.求医.治病.动土.上梁.入殓.破土.安葬.",
		"j": "嫁娶.开光.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0705": {
		"y": "祭祀.栽种.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0707": {
		"y": "纳采.订盟.嫁娶.祭祀.沐浴.塑绘.开光.出火.治病.习艺.伐木.造屋.竖柱.上梁.安床.作灶.安碓硙.挂匾.掘井.纳畜.",
		"j": "出行.安葬.造桥.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0711": {
		"y": "纳财.开市.交易.立券.出行.祭祀.祈福.求嗣.开光.解除.扫舍.起基.竖柱.安床.移徙.开仓.出货财.补垣.塞穴.栽种.纳畜.牧养.",
		"j": "斋醮.入宅.安门.安葬.破土.行丧.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0712": {
		"y": "祭祀.修饰垣墙.平治道涂.",
		"j": "开市.动土.破土.嫁娶.修造.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0713": {
		"y": "订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.",
		"j": "嫁娶.安葬.行丧.破土.修坟.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0715": {
		"y": "求医.治病.破屋.坏垣.余事勿取.",
		"j": "嫁娶.出行.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0717": {
		"y": "祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.",
		"j": "嫁娶.开市.栽种.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0722": {
		"y": "移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.",
		"j": "开市.斋醮.安床.出行.经络.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0723": {
		"y": "塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0727": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0731": {
		"y": "嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅.",
		"j": "造庙.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0829": {
		"y": "订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0802": {
		"y": "嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.",
		"j": "动土.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0830": {
		"y": "沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.祈福.余事勿取.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0812": {
		"y": "嫁娶.订盟.纳采.作灶.冠笄.裁衣.会亲友.纳畜.牧养.安机械.开市.立券.纳财.安床.",
		"j": "掘井.出行.破土.行丧.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0820": {
		"y": "祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.",
		"j": "嫁娶.纳采.订盟.开市.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0822": {
		"y": "祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.",
		"j": "动土.破土.订盟.安床.开池.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0810": {
		"y": "订盟.纳采.祭祀.祈福.安香.出火.开市.立券.入宅.挂匾.造桥.启攒.安葬.",
		"j": "动土.破土.嫁娶.掘井.安床.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0819": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬.",
		"j": "开市.立券.纳财.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0930": {
		"y": "祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.",
		"j": "移徙.入宅.作灶.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0801": {
		"y": "补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0803": {
		"y": "嫁娶.祭祀.祈福.斋醮.治病.破土.安葬.",
		"j": "开市.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0804": {
		"y": "嫁娶.出行.开市.安床.入殓.启攒.安葬.",
		"j": "祈福.动土.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0805": {
		"y": "嫁娶.祭祀.裁衣.结网.冠笄.沐浴.",
		"j": "开仓.出货财.置产.安葬.动土.破土.掘井.栽种.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0806": {
		"y": "入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.",
		"j": "嫁娶.破土.置产.栽种.安葬.修坟.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0807": {
		"y": "祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.",
		"j": "嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0808": {
		"y": "祭祀.普渡.捕捉.解除.结网.畋猎.入殓.破土.安葬.",
		"j": "开市.交易.入宅.嫁娶.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0809": {
		"y": "沐浴.破屋.坏垣.余事勿取.",
		"j": "斋醮.开市.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0811": {
		"y": "嫁娶.祭祀.祈福.斋醮.普渡.移徙.入宅.动土.治病.开市.交易.立券.开光.修造.造车器.安香.安床.捕捉.畋猎.结网.",
		"j": "纳采.订盟.经络.行丧.安葬.探病.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0813": {
		"y": "嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒.",
		"j": "出火.入宅.造屋.安门.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0814": {
		"y": "嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.",
		"j": "动土.破土.掘井.开光.上梁.词讼.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0815": {
		"y": "嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.",
		"j": "开市.动土.破土.安床.开仓.上梁.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0816": {
		"y": "祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.",
		"j": "嫁娶.出行.入宅.开市.安门.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0817": {
		"y": "塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.",
		"j": "祈福.开市.动土.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0818": {
		"y": "出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养.",
		"j": "嫁娶.安门.动土.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0821": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "行丧.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0823": {
		"y": "祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.",
		"j": "",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0825": {
		"y": "祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.",
		"j": "",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0826": {
		"y": "嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅.",
		"j": "动土.破土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0827": {
		"y": "嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.",
		"j": "作灶.动土.破土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0828": {
		"y": "订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.",
		"j": "嫁娶.开市.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0831": {
		"y": "嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d1030": {
		"y": "开光.针灸.会亲友.启攒.安葬.",
		"j": "开市.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0901": {
		"y": "捕捉.结网.入殓.破土.安葬.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0902": {
		"y": "沐浴.治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0903": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.",
		"j": "动土.破土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0904": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.",
		"j": "开光.针灸.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0905": {
		"y": "订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.",
		"j": "动土.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0906": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.",
		"j": "入宅.作梁.安门.伐木.修造.上梁.入殓.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0907": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.",
		"j": "造屋.开光.理发.造船.掘井.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0908": {
		"y": "冠笄.沐浴.出行.修造.动土.移徙.入宅.破土.安葬.",
		"j": "嫁娶.开市.祭祀.祈福.斋醮.纳采.修坟.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0909": {
		"y": "祭祀.出行.",
		"j": "嫁娶.入宅.修造.动土.会亲友.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0910": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.出行.修造.动土.移徙.入宅.",
		"j": "针灸.伐木.作梁.造庙.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0911": {
		"y": "出行.开市.交易.立券.安机械.出火.上梁.移徙.",
		"j": "嫁娶.安葬.动土.造桥.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0912": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "斋醮.嫁娶.移徙.出行.上梁.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0913": {
		"y": "嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬.",
		"j": "纳采.订盟.架马.词讼.开渠.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0914": {
		"y": "沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.",
		"j": "祭祀.嫁娶.安床.开市.入宅.探病.上梁.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0915": {
		"y": "余事勿取.",
		"j": "探病.余事勿取.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0916": {
		"y": "订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.",
		"j": "嫁娶.造庙.造桥.造船.作灶.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0917": {
		"y": "开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.",
		"j": "行丧.安葬.合寿木.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0918": {
		"y": "祭祀.嫁娶.捕捉.",
		"j": "开光.动土.破土.开市.修造.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0919": {
		"y": "祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.",
		"j": "嫁娶.开市.动土.掘井.开池.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0920": {
		"y": "祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.",
		"j": "开光.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0921": {
		"y": "祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.",
		"j": "动土.作灶.行丧.安葬.修坟.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0922": {
		"y": "出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.",
		"j": "造庙.安门.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0923": {
		"y": "祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0924": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0925": {
		"y": "祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.",
		"j": "入宅.伐木.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0926": {
		"y": "祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.",
		"j": "作灶.祭祀.入宅.嫁娶.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0927": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "移徙.入宅.出行.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0928": {
		"y": "祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.",
		"j": "造桥.冠笄.造屋.掘井.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0929": {
		"y": "祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络.",
		"j": "定磉.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1020": {
		"y": "捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.",
		"j": "嫁娶.祭祀.入宅.造屋.移徙.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1010": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "开市.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1026": {
		"y": "祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.",
		"j": "作灶.入殓.安葬.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d1023": {
		"y": "会亲友.嫁娶.订盟.纳采.纳婿.拆卸.修造.动土.起基.竖柱.上梁.安床.会亲友.纳财.",
		"j": "出行.祈福.安葬.作灶.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d1126": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.",
		"j": "作灶.治病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d1001": {
		"y": "祭祀.诸事不宜.",
		"j": "入殓.安葬.开市.交易.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d1002": {
		"y": "祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.",
		"j": "安床.开光.开市.交易.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d1003": {
		"y": "祭祀.出行.成服.除服.沐浴.入殓.",
		"j": "动土.冠笄.移徙.入宅.开市.竖柱.上梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d1004": {
		"y": "祭祀.沐浴.赴任.出行.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d1005": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d1006": {
		"y": "沐浴.入殓.移柩.除服.成服.破土.平治道涂.",
		"j": "嫁娶.移徙.入宅.开市.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d1007": {
		"y": "嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.",
		"j": "",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d1008": {
		"y": "捕捉.畋猎.余事勿取.",
		"j": "开市.交易.祭祀.入宅.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d1009": {
		"y": "嫁娶.纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.安香.出火.造庙.移徙.出行.入宅.造庙.起基.竖柱.上梁.安床.纳畜.捕捉.纳婿.安葬.",
		"j": "开市.破土.掘井.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d1011": {
		"y": "订盟.纳采.会亲友.交易.立券.纳财.栽种.纳畜.牧养.",
		"j": "嫁娶.开市.入宅.祈福.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d1012": {
		"y": "造车器.嫁娶.订盟.纳采.会亲友.祭祀.出行.开市.立券.移徙.入宅.破土.安葬.",
		"j": "上梁.开光.造屋.架马.合寿木.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d1013": {
		"y": "祭祀.作灶.纳财.捕捉.畋猎.余事勿取.",
		"j": "动土.破土.开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d1014": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.",
		"j": "开市.开仓.出货财.安床.安门.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d1015": {
		"y": "冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.",
		"j": "开光.嫁娶.会亲友.栽种.针灸.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d1016": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜.",
		"j": "造庙.造船.动土.破土.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d1017": {
		"y": "出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.",
		"j": "嫁娶.动土.破土.修坟.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d1018": {
		"y": "沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.",
		"j": "移徙.入宅.出行.祈福.嫁娶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d1019": {
		"y": "祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.开市.安床.掘井.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1021": {
		"y": "祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒.",
		"j": "开光.嫁娶.掘井.伐木.作梁.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d1022": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d1024": {
		"y": "祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财.",
		"j": "开仓.冠笄.伐木.作梁.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1025": {
		"y": "祭祀.作灶.入殓.除服.成服.畋猎.",
		"j": "栽种.动土.安葬.开市.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d1027": {
		"y": "嫁娶.祭祀.安机械.入殓.破土.安葬.",
		"j": "动土.上梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d1028": {
		"y": "作灶.造畜椆栖.",
		"j": "行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d1029": {
		"y": "沐浴.理发.入学.习艺.进人口.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d1031": {
		"y": "祭祀.结网.造畜椆栖.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d1129": {
		"y": "祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.",
		"j": "造屋.治病.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d1120": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓硙.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.",
		"j": "移徙.入宅.安门.作梁.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d1128": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1122": {
		"y": "祭祀.沐浴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d1127": {
		"y": "祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.",
		"j": "开市.交易.破土.作灶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d1220": {
		"y": "祭祀.入殓.移柩.余事勿取.",
		"j": "入宅.修造.动土.破土.安门.上梁.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d1101": {
		"y": "入殓.除服.成服.移柩.破土.启攒.安葬.",
		"j": "移徙.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d1102": {
		"y": "嫁娶.订盟.纳采.出行.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "开市.赴任.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d1103": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d1104": {
		"y": "订盟.纳采.会亲友.安机械.纳财.牧养.",
		"j": "祈福.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d1105": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "斋醮.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d1106": {
		"y": "祭祀.塞穴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d1107": {
		"y": "祭祀.祈福.求嗣.开光.开市.出行.解除.动土.起基.置产.栽种.",
		"j": "嫁娶.作灶.修坟.安门.入宅.立碑.安葬.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d1108": {
		"y": "开市.纳财.出行.祭祀.祈福.求嗣.斋醮.问名.入学.起基.定磉.置产.开渠.掘井.拆卸.栽种.纳畜.牧养.动土.破土.启攒.",
		"j": "移徙.入宅.出火.入殓.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d1109": {
		"y": "祭祀.理发.置产.塞穴.除服.成服.移柩.入殓.破土.安葬.",
		"j": "嫁娶.入宅.安床.掘井.开光.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d1110": {
		"y": "祭祀.沐浴.出行.余事勿取.",
		"j": "开市.动土.破土.行丧.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d1111": {
		"y": "嫁娶.造车器.出行.会亲友.移徙.入宅.修造.动土.雕刻.开光.安香.出火.理发.会亲友.造屋.合脊.起基.归岫.安门.拆卸.扫舍.栽种.造畜椆栖.",
		"j": "开市.纳采.造庙.安床.开渠.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d1112": {
		"y": "塑绘.会亲友.安机械.塞穴.结网.裁衣.经络.",
		"j": "嫁娶.开市.祈福.斋醮.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d1113": {
		"y": "纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕.",
		"j": "开仓.造屋.造桥.祭祀.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d1114": {
		"y": "订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.",
		"j": "嫁娶.安葬.掘井.置产.造船.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1115": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.",
		"j": "开市.造庙.动土.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d1116": {
		"y": "破屋.坏垣.祭祀.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d1117": {
		"y": "嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.",
		"j": "造屋.造船.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d1118": {
		"y": "纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬.",
		"j": "嫁娶.开市.入宅.出火.移徙.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d1119": {
		"y": "捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.",
		"j": "安床.安门.破土.修坟.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d1121": {
		"y": "嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.",
		"j": "开光.掘井.安葬.谢土.修坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d1123": {
		"y": "祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木.",
		"j": "入宅.作灶.安床.开仓.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d1124": {
		"y": "理发.会亲友.补垣.塞穴.结网.",
		"j": "嫁娶.入宅.安门.移徙.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d1125": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.",
		"j": "作灶.治病.伐木.作梁.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d1130": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤.",
		"j": "嫁娶.入宅.治病.赴任.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d1230": {
		"y": "嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.",
		"j": "开市.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d1229": {
		"y": "教牛马.余事勿取.",
		"j": "入宅.动土.破土.余事勿取.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d1226": {
		"y": "祭祀.沐浴.安床.纳财.畋猎.捕捉.",
		"j": "开市.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d1222": {
		"y": "祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.",
		"j": "出行.安葬.修坟.开市.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d1206": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d1225": {
		"y": "塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土.",
		"j": "",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d1202": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d1205": {
		"y": "祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.",
		"j": "开市.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d1209": {
		"y": "嫁娶.冠笄.祭祀.祈福.求嗣.雕刻.开光.安香.出行.入学.修造.动土.竖柱.上梁.造屋.起基.安门.出火.移徙.入宅.掘井.造畜椆栖.安葬.破土.除服.成服.",
		"j": "开市.纳采.订盟.作灶.造庙.造船.经络.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1219": {
		"y": "纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.",
		"j": "嫁娶.祈福.出火.移徙.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1212": {
		"y": "冠笄.纳财.掘井.开池.出火.安床.交易.立券.畋猎.结网.理发.放水.",
		"j": "安门.动土.破土.行丧.安葬.成服.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d1201": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d1203": {
		"y": "祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网.",
		"j": "入宅.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d1204": {
		"y": "祭祀.沐浴.出行.冠笄.进人口.余事勿取.",
		"j": "嫁娶.动土.安葬.作灶.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d1207": {
		"y": "订盟.纳采.会亲友.安机械.开光.修造.动土.竖柱.上梁.造屋.起基.造桥.栽种.纳畜.造畜椆栖.移柩.入殓.启攒.修坟.立碑.安葬.",
		"j": "祈福.出火.嫁娶.入宅.开市.动土.破土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d1208": {
		"y": "祭祀.平治道涂.修坟.除服.成服.余事勿取.",
		"j": "移徙.入宅.嫁娶.掘井.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d1210": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求嗣.斋醮.安香.出火.修造.起基.造屋.合脊.安门.安碓硙.动土.上梁.移徙.入宅.",
		"j": "出行.掘井.破土.行丧.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d1211": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "嫁娶.移徙.入宅.探病.出行.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d1213": {
		"y": "纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.",
		"j": "嫁娶.动土.安床.造桥.掘井.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d1214": {
		"y": "祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.",
		"j": "开市.斋醮.破土.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d1215": {
		"y": "祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.",
		"j": "移徙.开市.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d1216": {
		"y": "纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.",
		"j": "嫁娶.祈福.开光.掘井.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d1217": {
		"y": "合帐.裁衣.教牛马.余事勿取.",
		"j": "入宅.动土.破土.嫁娶.作灶.造船.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d1218": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.",
		"j": "斋醮.作梁.掘井.行丧.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1221": {
		"y": "塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.",
		"j": "掘井.伐木.斋醮.作灶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d1223": {
		"y": "祭祀.求医.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1224": {
		"y": "祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.",
		"j": "开光.栽种.治病.安门.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d1227": {
		"y": "订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.",
		"j": "嫁娶.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d1228": {
		"y": "出行.沐浴.理发.补垣.塞穴.",
		"j": "入宅.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d1231": {
		"y": "开市.立券.开光.解除.安机械.上梁.启攒.安葬.",
		"j": "嫁娶.祈福.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	}
};


},{}],206:[function(require,module,exports){
module.exports = {
	"d0101": {
		"y": "平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0201": {
		"y": "祭祀.祈福.斋醮.塑绘.开光.除服.成服.入殓.作灶.嫁娶.捕捉.畋猎.纳财.",
		"j": "开仓.造屋.安葬.安床.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0102": {
		"y": "求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.",
		"j": "开市.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0103": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0104": {
		"y": "治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0105": {
		"y": "祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.",
		"j": "造桥.安门.理发.造庙.栽种.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0106": {
		"y": "沐浴.开仓.出货财.开市.交易.立券.纳财.栽种.纳畜.牧养.畋猎.入殓.破土.安葬.",
		"j": "祈福.嫁娶.安床.入宅.造船.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0107": {
		"y": "祭祀.沐浴.补垣.塞穴.断蚁.解除.余事勿取.",
		"j": "造庙.入宅.修造.安葬.行丧.嫁娶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0108": {
		"y": "嫁娶.纳采.订盟.问名.祭祀.冠笄.裁衣.会亲友.进人口.纳财.捕捉.作灶.",
		"j": "开市.安床.安葬.修坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0109": {
		"y": "订盟.纳采.会亲友.祭祀.斋醮.沐浴.塑绘.出火.开光.竖柱.上梁.开市.交易.立券.作梁.开柱眼.伐木.架马.安门.安床.拆卸.牧养.造畜椆栖.掘井.",
		"j": "造庙.嫁娶.出行.动土.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0110": {
		"y": "交易.立券.纳财.安床.裁衣.造畜椆栖.安葬.谢土.启攒.除服.成服.修坟.立碑.移柩.入殓.",
		"j": "开光.嫁娶.开市.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0111": {
		"y": "祭祀.解除.教牛马.会亲友.余事勿取.",
		"j": "破土.动土.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0112": {
		"y": "纳采.订盟.移徙.纳财.开市.交易.立券.入宅.会亲友.解除.求医.治病.入学.安床.安门.安香.出火.拆卸.扫舍.入宅.挂匾.开生坟.合寿木.破土.修坟.启攒.入殓.",
		"j": "探病.祭祀.出行.上梁.造屋.谢土.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0113": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求嗣.会亲友.解除.出行.入学.纳财.开市.交易.立券.习艺.经络.安床.开仓.出货财.纳畜.安葬.启攒.修坟.入殓.",
		"j": "入宅.开光.开市.动土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0114": {
		"y": "祭祀.冠笄.嫁娶.会亲友.进人口.裁衣.结网.平治道涂.",
		"j": "移徙.入宅.造庙.作灶.治病.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0115": {
		"y": "祭祀.安碓硙.结网.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0116": {
		"y": "嫁娶.祭祀.沐浴.裁衣.出行.理发.移徙.捕捉.畋猎.放水.入宅.除服.成服.启攒.安葬.移柩.入殓.",
		"j": "造屋.开市.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0117": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "嫁娶.开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0118": {
		"y": "纳采.订盟.祭祀.求嗣.出火.塑绘.裁衣.会亲友.入学.拆卸.扫舍.造仓.挂匾.掘井.开池.结网.栽种.纳畜.破土.修坟.立碑.安葬.入殓.",
		"j": "祈福.嫁娶.造庙.安床.谢土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0119": {
		"y": "入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.",
		"j": "开市.伐木.嫁娶.作梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0120": {
		"y": "祭祀.作灶.入殓.除服.余事勿取.",
		"j": "开市.安床.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0121": {
		"y": "塑绘.开光.沐浴.冠笄.会亲友.作灶.放水.造畜椆栖.",
		"j": "嫁娶.入殓.安葬.出行.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0122": {
		"y": "祭祀.沐浴.祈福.斋醮.订盟.纳采.裁衣.拆卸.起基.竖柱.上梁.安床.入殓.除服.成服.移柩.启攒.挂匾.求嗣.出行.合帐.造畜椆栖.",
		"j": "开仓.嫁娶.移徙.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0123": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0124": {
		"y": "沐浴.解除.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.移徙.入宅.除服.成服.移柩.破土.启攒.安葬.扫舍.修坟.伐木.纳财.交易.立券.",
		"j": "作灶.祭祀.上梁.出行.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0125": {
		"y": "出行.嫁娶.订盟.纳采.入殓.安床.启攒.安葬.祭祀.裁衣.会亲友.进人口.",
		"j": "作灶.掘井.谢土.入宅.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0126": {
		"y": "修饰垣墙.平治道涂.入殓.移柩.余事勿取.",
		"j": "嫁娶.移徙.入宅.开光.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0127": {
		"y": "会亲友.纳采.进人口.修造.动土.竖柱.上梁.祭祀.开光.塑绘.祈福.斋醮.嫁娶.安床.移徙.入宅.安香.纳畜.",
		"j": "出行.治病.安葬.开市.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "定",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0128": {
		"y": "祭祀.会亲友.出行.订盟.纳采.沐浴.修造.动土.祈福.斋醮.嫁娶.拆卸.安床.入殓.移柩.安葬.谢土.赴任.裁衣.竖柱.上梁.伐木.捕捉.栽种.破土.安门.",
		"j": "造屋.开市.作灶.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0129": {
		"y": "解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0130": {
		"y": "塑绘.开光.出行.订盟.纳采.除服.成服.嫁娶.纳婿.入殓.移柩.启攒.安葬.立碑.",
		"j": "入宅.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0131": {
		"y": "入殓.除服.成服.移柩.启攒.安葬.立碑.余事勿取.",
		"j": "破土.伐木.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0215": {
		"y": "祭祀.沐浴.开光.塑绘.祈福.求嗣.订盟.纳采.冠笄.裁衣.嫁娶.动土.除服.成服.移柩.破土.启攒.出行.安碓硙.放水.开市.立券.交易.",
		"j": "安葬.上梁.入宅.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0202": {
		"y": "祭祀.出行.沐浴.裁衣.祈福.斋醮.订盟.纳采.嫁娶.安机械.开市.立券.安碓硙.纳畜.",
		"j": "栽种.嫁娶.入殓.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0205": {
		"y": "纳采.会亲友.竖柱.上梁.立券.入殓.移柩.安葬.启攒.",
		"j": "祭祀.移徙.入宅.动土.破土.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0225": {
		"y": "取渔.入殓.除服.成服.移柩.破土.安葬.立碑.",
		"j": "嫁娶.上梁.入宅.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0212": {
		"y": "祭祀.冠笄.嫁娶.拆卸.修造.动土.起基.上梁.造屋.入宅.开市.开池.塞穴.入殓.除服.成服.移柩.安葬.破土.",
		"j": "安床.栽种.治病.作灶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0315": {
		"y": "塑绘.开光.订盟.纳采.裁衣.合帐.冠笄.安机械.会亲友.纳财.开市.立券.交易.安床.竖柱.上梁.结网.栽种.解除.经络.",
		"j": "作灶.出行.入宅.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0203": {
		"y": "祭祀.祈福.斋醮.沐浴.安床.安机械.造车器.入殓.移柩.启攒.安葬.立碑.合帐.经络.交易.",
		"j": "作灶.掘井.嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0204": {
		"y": "祭祀.祈福.求嗣.斋醮.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "嫁娶.动土.开光.造屋.破土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0206": {
		"y": "祭祀.祈福.斋醮.出行.开市.立券.动土.移徙.入宅.破土.安葬.",
		"j": "开光.嫁娶.作灶.掘井.纳畜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0207": {
		"y": "会亲友.求嗣.理发.冠笄.结网.捕捉.开光.理发.",
		"j": "开市.动土.安葬.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0208": {
		"y": "祭祀.平治道涂.余事勿取.",
		"j": "嫁娶.祈福.掘井.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0209": {
		"y": "祈福.求嗣.斋醮.纳采.嫁娶.伐木.修造.动土.移徙.入宅.造庙.安机械.开市.入殓.除服.成服.移柩.安葬.破土.谢土.",
		"j": "置产.造屋.合脊.开光.探病.安门.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0210": {
		"y": "入学.习艺.出行.纳采.订盟.嫁娶.会亲友.进人口.牧养.捕捉.入殓.移柩.安葬.启攒.",
		"j": "开光.开市.入宅.动土.造屋.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0211": {
		"y": "祭祀.沐浴.求医.治病.扫舍.破屋.坏垣.解除.余事勿取.",
		"j": "入宅.开市.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0213": {
		"y": "祭祀.结网.入殓.除服.成服.移柩.安葬.破土.",
		"j": "余事勿取.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0214": {
		"y": "塑绘.开光.祈福.求嗣.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.起基.安门.安床.移徙.造仓.结网.纳畜.",
		"j": "伐木.作灶.安葬.取渔.入宅.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0216": {
		"y": "祭祀.祈福.求嗣.酬神.裁衣.安床.立券.交易.入殓.除服.成服.移柩.谢土.启攒.",
		"j": "出行.嫁娶.入宅.动土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0217": {
		"y": "裁衣.合帐.入殓.除服.成服.会亲友.纳财.",
		"j": "祭祀.祈福.移徙.嫁娶.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0218": {
		"y": "祭祀.斋醮.裁衣.合帐.冠笄.订盟.纳采.嫁娶.入宅.安香.谢土.入殓.移柩.破土.立碑.安香.会亲友.出行.祈福.求嗣.立碑.上梁.放水.",
		"j": "掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0219": {
		"y": "安床.合帐.入宅.问名.纳采.求嗣.祭祀.开仓.",
		"j": "斋醮.作灶.安床.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0220": {
		"y": "作灶.平治道涂.",
		"j": "祭祀.祈福.安葬.安门.余事勿取.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "平",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0221": {
		"y": "塑绘.开光.酬神.斋醮.订盟.纳采.裁衣.合帐.拆卸.动土.上梁.安床.安香.造庙.挂匾.会亲友.进人口.出行.修造.纳财.伐木.放水.出火.纳畜.沐浴.安门.",
		"j": "造屋.栽种.安葬.作灶.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0222": {
		"y": "祭祀.祈福.酬神.订盟.纳采.冠笄.裁衣.合帐.嫁娶.安床.移徙.入宅.安香.入殓.移柩.启攒.安葬.解除.取渔.捕捉.伐木.安门.出火.",
		"j": "栽种.动土.开市.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0223": {
		"y": "求医.破屋.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0224": {
		"y": "祈福.求嗣.斋醮.塑绘.开光.订盟.纳采.嫁娶.动土.入宅.安香.移柩.安葬.谢土.出行.沐浴.修造.竖柱.上梁.纳财.破土.解除.安门.放水.",
		"j": "作灶.安床.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0226": {
		"y": "祭祀.求嗣.沐浴.酬神.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造仓.开池.经络.纳财.开市.立券.交易.结网.取渔.纳畜.捕捉.",
		"j": "安葬.作灶.伐木.作梁.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0227": {
		"y": "祭祀.沐浴.祈福.求嗣.斋醮.订盟.纳采.裁衣.冠笄.开市.立券.交易.纳财.沐浴.除服.谢土.出行.移柩.",
		"j": "入殓.安葬.作灶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0228": {
		"y": "祭祀.祈福.求嗣.入殓.启攒.安葬.移柩.",
		"j": "开光.掘井.针灸.出行.嫁娶.入宅.移徙.作灶.动土.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0229": {
		"y": "安床.解除.裁衣.竖柱.上梁.交易.立券.纳财.纳畜.牧养.入殓.移柩.安葬.启攒.",
		"j": "嫁娶.出行.动土.开渠.入宅.祭祀.掘井.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0305": {
		"y": "嫁娶.造车器.纳采.订盟.祭祀.祈福.安机械.移徙.入宅.开市.立券.破土.安葬.",
		"j": "纳畜.理发.合寿木.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0415": {
		"y": "祭祀.塑绘.开光.订盟.纳采.冠笄.裁衣.安机械.拆卸.修造.动土.安床.经络.开市.",
		"j": "出火.入宅.安葬.伐木.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0301": {
		"y": "嫁娶.安床.开光.出行.祭祀.动土.出火.解除.会亲友.开市.交易.立券.挂匾.入宅.移徙.拆卸.破土.启攒.安葬.",
		"j": "掘井.词讼.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0302": {
		"y": "嫁娶.开光.求嗣.会亲友.安床.牧养.塑绘.针灸.",
		"j": "入宅.移徙.出火.分居.安香.作灶.开市.交易.立券.安葬.动土.伐木.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0303": {
		"y": "作灶.解除.平治道涂.",
		"j": "栽种.出行.祈福.行丧.纳畜.安葬.安门.伐木.作梁.牧养.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0304": {
		"y": "解除.沐浴.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0306": {
		"y": "祈福.斋醮.出行.移徙.入宅.修造.动土.破土.安葬.",
		"j": "纳采.开光.安床.嫁娶.开市.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0307": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "嫁娶.移徙.开市.入宅.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0308": {
		"y": "嫁娶.冠笄.祭祀.出行.会亲友.修造.动土.入殓.破土.",
		"j": "塑绘.开光.造桥.除服.成服.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0309": {
		"y": "开光.求嗣.出行.纳采.冠笄.出火.拆卸.起基.修造.动土.上梁.移徙.造船.开市.交易.立券.纳财.",
		"j": "祈福.嫁娶.安葬.破土.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0310": {
		"y": "理发.冠笄.嫁娶.进人口.栽种.捕捉.针灸.",
		"j": "纳财.开市.安葬.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0311": {
		"y": "开光.祈福.求嗣.出行.解除.伐木.造屋.起基.修造.架马.安门.移徙.入宅.造庙.除服.成服.移柩.谢土.纳畜.牧养.",
		"j": "纳采.动土.开市.交易.安门.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0312": {
		"y": "裁衣.经络.伐木.开柱眼.拆卸.修造.动土.上梁.合脊.合寿木.入殓.除服.成服.移柩.破土.安葬.启攒.修坟.立碑.",
		"j": "祭祀.嫁娶.出行.上梁.掘井.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0313": {
		"y": "祭祀.会亲友.立券.交易.裁衣.合帐.嫁娶.冠笄.进人口.",
		"j": "栽种.动土.安葬.掘井.修坟.探病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0314": {
		"y": "扫舍.塞穴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0316": {
		"y": "祭祀.嫁娶.纳婿.除服.成服.入殓.移柩.",
		"j": "动土.作灶.入宅.开光.安床.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0317": {
		"y": "祈福.求嗣.开光.塑绘.斋醮.订盟.纳采.嫁娶.拆卸.安床.入宅.安香.移柩.修坟.安葬.谢土.栽种.解除.冠笄.裁衣.移徙.修造.动土.竖柱.放水.启攒.立碑.",
		"j": "赴任.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0318": {
		"y": "祭祀.解除.入殓.除服.成服.移柩.启攒.安葬.修坟.立碑.谢土.沐浴.扫舍.捕捉.取渔.结网.畋猎.理发.",
		"j": "安床.嫁娶.作灶.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0319": {
		"y": "破屋.坏垣.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0320": {
		"y": "祭祀.出行.订盟.纳采.裁衣.合帐.冠笄.进人口.动土.安床.作灶.入殓.移柩.安葬.破土.结网.取渔.畋猎.",
		"j": "作梁.造庙.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0321": {
		"y": "祭祀.开光.塑绘.订盟.纳采.合帐.冠笄.拆卸.动土.起基.上梁.入宅.安香.开市.立券.纳财.沐浴.求嗣.出火.竖柱.安门.",
		"j": "造庙.嫁娶.伐木.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0322": {
		"y": "祭祀.沐浴.捕捉.栽种.",
		"j": "嫁娶.入宅.移徙.作灶.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0323": {
		"y": "祭祀.开光.塑绘.酬神.斋醮.订盟.纳采.嫁娶.裁衣.动土.起基.出火.拆卸.移徙.入宅.安香.修造.竖柱.上梁.纳畜.牧养.祈福.求嗣.解除.伐木.定磉.造屋.安门.",
		"j": "栽种.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0324": {
		"y": "订盟.纳采.冠笄.拆卸.修造.动土.安床.入殓.除服.成服.移柩.安葬.破土.启攒.造仓.",
		"j": "作灶.开光.嫁娶.开市.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0325": {
		"y": "祈福.开光.塑绘.酬神.订盟.纳采.裁衣.安床.开市.立券.入殓.除服.成服.移柩.启攒.安葬.立碑.赴任.会亲友.出行.交易.竖柱.",
		"j": "作灶.掘井.动土.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0326": {
		"y": "祭祀.扫舍.塞穴.",
		"j": "栽种.作灶.安葬.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0327": {
		"y": "开光.塑绘.裁衣.冠笄.伐木.拆卸.竖柱.上梁.开仓.会亲友.安机械.造仓.造屋.交易.解除.开市.立券.纳财.",
		"j": "出行.嫁娶.入宅.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0328": {
		"y": "冠笄.入殓.除服.成服.移柩.平治道涂.修饰垣墙.",
		"j": "造屋.作灶.治病.探病.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0329": {
		"y": "祭祀.嫁娶.祈福.纳采.裁衣.合帐.安床.入宅.安香.入殓.移柩.安葬.谢土.修造.安碓硙.求嗣.会亲友.挂匾.交易.立券.纳财.造仓.放水.",
		"j": "栽种.伐木.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0330": {
		"y": "祭祀.祈福.斋醮.订盟.纳采.裁衣.合帐.拆卸.修造.动土.上梁.起基.移柩.安葬.谢土.沐浴.扫舍.开柱眼.伐木.出火.",
		"j": "安床.开市.立券.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0331": {
		"y": "破屋.坏垣.求医.治病.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0409": {
		"y": "求嗣.出行.解除.订盟.纳采.嫁娶.会亲友.进人口.安床.开市.交易.纳畜.牧养.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "祈福.开市.修造.动土.破土.谢土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0419": {
		"y": "祭祀.进人口.嫁娶.安床.解除.冠笄.出行.裁衣.扫舍.",
		"j": "掘井.动土.破土.安葬.开光.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0404": {
		"y": "祭祀.捕捉.解除.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0509": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "斋醮.开市.嫁娶.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0401": {
		"y": "祭祀.动土.上梁.订盟.纳采.嫁娶.安机械.拆卸.安床.入宅.安香.入殓.移柩.破土.安葬.立碑.谢土.赴任.出行.移徙.祈福.求嗣.解除.造仓.进人口.",
		"j": "开光.出货财.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0402": {
		"y": "祭祀.开光.塑绘.纳采.裁衣.拆卸.安床.起基.动土.竖柱.上梁.移徙.入宅.安香.开市.立券.挂匾.沐浴.出行.求嗣.安门.",
		"j": "嫁娶.栽种.伐木.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0403": {
		"y": "裁衣.合帐.冠笄.嫁娶.纳婿.安床.入殓.纳财.",
		"j": "作灶.开市.安葬.作梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0405": {
		"y": "纳采.嫁娶.出行.开市.立券.纳畜.牧养.出火.移徙.入宅.",
		"j": "祈福.动土.破土.安葬.入殓.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0406": {
		"y": "祭祀.祈福.求嗣.斋醮.冠笄.作灶.纳财.交易.",
		"j": "开光.嫁娶.掘井.安葬.安门.探病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0407": {
		"y": "祭祀.解除.教牛马.出行.余事勿取.",
		"j": "动土.破土.行丧.开光.作梁.安葬.探病.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0408": {
		"y": "沐浴.斋醮.解除.求医.治病.会亲友.造畜椆栖.栽种.理发.扫舍.",
		"j": "开市.嫁娶.移徙.入宅.掘井.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0410": {
		"y": "祭祀.作灶.平治道涂.余事勿取.",
		"j": "嫁娶.安葬.动土.安床.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0411": {
		"y": "造车器.祭祀.祈福.求嗣.斋醮.开市.交易.安机械.雕刻.开光.造屋.合脊.起基.定磉.安门.纳畜.安葬.开生坟.立碑.谢土.斋醮.",
		"j": "入宅.动土.开仓.出货财.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0412": {
		"y": "祭祀.祈福.开光.求嗣.斋醮.纳采.订盟.求医.治病.起基.定磉.造船.取渔.解除.安葬.启攒.谢土.入殓.",
		"j": "开市.动土.掘井.开池.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0413": {
		"y": "祭祀.沐浴.破屋.坏垣.求医.治病.解除.余事勿取.",
		"j": "嫁娶.开市.交易.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0414": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0416": {
		"y": "祭祀.余事勿取.",
		"j": "造庙.嫁娶.安床.余事勿取.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0417": {
		"y": "订盟.纳采.嫁娶.进人口.会亲友.交易.立券.动土.除服.谢土.移柩.破土.启攒.赴任.出行.开市.纳财.栽种.",
		"j": "入殓.安葬.入宅.安床.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0418": {
		"y": "祭祀.祈福.裁衣.合帐.安床.入殓.除服.成服.移柩.破土.启攒.安葬.谢土.立碑.造畜椆栖.",
		"j": "掘井.安门.嫁娶.纳采.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0420": {
		"y": "纳采.开光.求医.治病.动土.上梁.移徙.入宅.",
		"j": "嫁娶.开市.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0421": {
		"y": "祭祀.会亲友.开市.安床.启攒.安葬.",
		"j": "嫁娶.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0422": {
		"y": "祭祀.作灶.掘井.平治道涂.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0423": {
		"y": "祭祀.斋醮.开市.动土.入殓.破土.安葬.",
		"j": "嫁娶.移徙.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0424": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.移徙.求医.",
		"j": "开市.动土.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0425": {
		"y": "祭祀.求医.治病.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0426": {
		"y": "沐浴.结网.取渔.",
		"j": "嫁娶.入宅.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0427": {
		"y": "",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0428": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0429": {
		"y": "嫁娶.开光.出行.出火.拆卸.进人口.开市.立券.交易.挂匾.入宅.移徙.安床.栽种.",
		"j": "祈福.入殓.祭祀.作灶.安葬.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0430": {
		"y": "嫁娶.出行.合帐.冠笄.安床.除服.成服.作灶.交易.立券.入殓.移柩.破土.安葬.",
		"j": "词讼.开光.开市.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0609": {
		"y": "嫁娶.订盟.纳采.冠笄.会亲友.安机械.造车器.祭祀.出行.纳财.入宅.安香.出火.入学.塑绘.开光.拆卸.起基.修造.动土.牧养.栽种.安门.作厕.",
		"j": "行丧.伐木.作梁.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0501": {
		"y": "出行.修饰垣墙.造畜椆栖.教牛马.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0502": {
		"y": "祭祀.祈福.开光.求嗣.解除.伐木.出火.入宅.移徙.安床.拆卸.修造.动土.造畜椆栖.",
		"j": "嫁娶.纳财.安葬.出行.开市.立券.作灶.栽种.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0503": {
		"y": "纳采.嫁娶.开光.出行.理发.会亲友.开市.安床.栽种.牧养.入殓.移柩.启攒.",
		"j": "谢土.祈福.上梁.作灶.斋醮.修造.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0504": {
		"y": "祭祀.平治道涂.解除.修饰垣墙.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0505": {
		"y": "祭祀.沐浴.移徙.破土.安葬.扫舍.平治道涂.",
		"j": "祈福.嫁娶.入宅.安床.作灶.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0506": {
		"y": "祭祀.祈福.斋醮.求嗣.安机械.纳畜.移徙.入宅.安机械.塑绘.开光.起基.竖柱.上梁.作灶.安门.安香.出火.造屋.启攒.安葬.",
		"j": "动土.破土.嫁娶.嫁娶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0507": {
		"y": "嫁娶.纳采.订盟.斋醮.开光.祭祀.祈福.求医.治病.会亲友.动土.解除.捕捉.纳畜.牧养.入殓.破土.安葬.",
		"j": "移徙.入宅.造屋.架马.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0508": {
		"y": "祭祀.沐浴.解除.破屋.坏垣.余事勿取.",
		"j": "行丧.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0510": {
		"y": "开市.交易.立券.安机械.会亲友.开光.求医.治病.造屋.起基.修造.动土.定磉.竖柱.上梁.安门.作灶.放水.作厕.开池.栽种.牧养.造畜椆栖.破土.安葬.立碑.",
		"j": "嫁娶.出火.移徙.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0511": {
		"y": "栽种.捕捉.畋猎.余事勿取.",
		"j": "开市.动土.祭祀.斋醮.安葬.探病.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0512": {
		"y": "嫁娶.祭祀.祈福.求嗣.斋醮.订盟.纳采.解除.出行.动土.破土.习艺.针灸.理发.会亲友.起基.修造.动土.竖柱.定磉.安床.拆卸.纳畜.牧养.放水.破土.除服.成服.修坟.立碑.",
		"j": "开市.入宅.探病.出火.造屋.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0513": {
		"y": "余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0514": {
		"y": "塞穴.断蚁.结网.余事勿取.",
		"j": "破土.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0515": {
		"y": "开光.出行.纳采.嫁娶.伐木.架马.出火.拆卸.移徙.入宅.造庙.造桥.造船.造畜椆栖.开市.入殓.除服.成服.移柩.安葬.",
		"j": "",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0516": {
		"y": "进人口.牧养.置产.塞穴.结网.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0517": {
		"y": "开光.出行.嫁娶.",
		"j": "会亲友.进人口.修造.动土.起基.移徙.开市.纳畜.入殓.除服.成服.移柩.破土.安葬.修坟.立碑.会亲友.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0518": {
		"y": "嫁娶.纳采.出行.祭祀.祈福.开市.动土.移徙.入宅.破土.安葬.",
		"j": "安门.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0519": {
		"y": "嫁娶.纳采.求医.治病.修造.动土.移徙.入宅.破土.安葬.",
		"j": "开市.开光.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0520": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0521": {
		"y": "嫁娶.纳采.祭祀.祈福.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "祈福.斋醮.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0522": {
		"y": "纳采.祭祀.祈福.开市.求医.治病.动土.纳畜.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0523": {
		"y": "嫁娶.纳采.出行.移徙.入宅.",
		"j": "动土.破土.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0524": {
		"y": "订盟.纳采.祭祀.动土.破土.交易.立券.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0525": {
		"y": "嫁娶.裁衣.祭祀.出行.安床.作灶.移徙.入宅.破土.安葬.",
		"j": "赴任.捕捉.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0526": {
		"y": "塞穴.结网.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0527": {
		"y": "嫁娶.订盟.纳采.出行.祭祀.祈福.斋醮.动土.上梁.破土.安葬.",
		"j": "移徙.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0528": {
		"y": "订盟.纳采.会亲友.安床.作灶.造畜椆栖.",
		"j": "开市.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0529": {
		"y": "沐浴.平治道涂.扫舍.入殓.移柩.破土.启攒.安葬.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0530": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.出火.拆卸.动土.上梁.进人口.入宅.移徙.安床.安门.开市.交易.立券.挂匾.栽种.破土.安葬.",
		"j": "",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0531": {
		"y": "祭祀.开光.出行.解除.塑绘.裁衣.入殓.移柩.破土.启攒.安葬.除服.成服.",
		"j": "嫁娶.上梁.修造.拆卸.架马.入宅.伐木.动土.出火.开柱眼.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0606": {
		"y": "祭祀.祈福.求嗣.斋醮.安香.解除.移徙.入宅.会亲友.求医.治病.动土.破土.开生坟.合寿木.",
		"j": "合帐.上梁.经络.安葬.入殓.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0603": {
		"y": "开市.交易.立券.祭祀.祈福.开光.伐木.进人口.安床.拆卸.修造.动土.栽种.破土.移柩.安葬.",
		"j": "入宅.移徙.理发.出火.嫁娶.出行.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0608": {
		"y": "祭祀.交易.纳财.",
		"j": "斋醮.开渠.上梁.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0706": {
		"y": "祭祀.修饰垣墙.平治道涂.",
		"j": "开市.动土.破土.嫁娶.修造.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0601": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0602": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.拆卸.动土.上梁.出火.进人口.入宅.移徙.安床.栽种.纳畜.牧养.竖柱.安门.修造.解除.会亲友.",
		"j": "",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0604": {
		"y": "结网.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0605": {
		"y": "祭祀.作灶.余事勿取.",
		"j": "开市.安葬.破土.修坟.掘井.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0607": {
		"y": "嫁娶.冠笄.修造.动土.作灶.移徙.入宅.补垣.塞穴.纳畜.牧养.架马.修造.动土.起基.定磉.开池.造船.",
		"j": "祈福.开光.掘井.开市.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0610": {
		"y": "开光.求嗣.出行.冠笄.嫁娶.伐木.架马.开柱眼.修造.移徙.入宅.开市.交易.立券.出行.安香.出火.挂匾.起基.修造.开生坟.合寿木.入殓.除服.成服.移柩.安葬.",
		"j": "安床.出货财.作灶.动土.破土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0611": {
		"y": "祭祀.沐浴.理发.嫁娶.作灶.整手足甲.扫舍.修饰垣墙.平治道涂.",
		"j": "斋醮.出行.治病.合寿木.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0612": {
		"y": "安机械.移徙.入宅.出行.祭祀.祈福.斋醮.纳采.订盟.安香.出火.解除.会亲友.修造.动土.拆卸.起基.定磉.移徙.入宅.造屋.安床.修造.破土.安葬.入殓.立碑.",
		"j": "开市.伐木.作梁.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0613": {
		"y": "祭祀.沐浴.捕捉.结网.畋猎.取渔.余事勿取.",
		"j": "开市.交易.嫁娶.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0614": {
		"y": "破屋.坏垣.求医.治病.畋猎.余事勿取.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0615": {
		"y": "嫁娶.出行.安机械.祭祀.塑绘.开光.治病.经络.安床.结网.塞穴.破土.入殓.",
		"j": "开市.安门.掘井.作灶.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0616": {
		"y": "订盟.纳采.会亲友.进人口.雕刻.拆卸.修造.动土.起基.开市.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.",
		"j": "",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0617": {
		"y": "祭祀.捕捉.取渔.修饰垣墙.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0618": {
		"y": "嫁娶.纳采.祭祀.祈福.求医.治病.出行.动土.移徙.入宅.",
		"j": "开市.安门.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0619": {
		"y": "裁衣.作灶.移徙.入宅.纳畜.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0620": {
		"y": "祭祀.入殓.移柩.启攒.安葬.",
		"j": "上梁.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0621": {
		"y": "订盟.纳采.出行.祈福.斋醮.安床.会亲友.",
		"j": "移徙.入宅.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0622": {
		"y": "嫁娶.纳采.出行.求医.治病.开市.移徙.入宅.启攒.安葬.",
		"j": "动土.破土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0623": {
		"y": "嫁娶.祭祀.沐浴.扫舍.修饰垣墙.",
		"j": "行丧.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0624": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0625": {
		"y": "订盟.纳采.出行.祭祀.祈福.修造.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0626": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0627": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.入殓.破土.安葬.",
		"j": "开光.开市.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0628": {
		"y": "开光.求医.治病.动土.上梁.入殓.破土.安葬.",
		"j": "嫁娶.开光.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0629": {
		"y": "祭祀.栽种.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0630": {
		"y": "嫁娶.开光.祭祀.祈福.求嗣.出行.解除.伐木.入宅.移徙.安床.出火.拆卸.修造.上梁.栽种.移柩.",
		"j": "安葬.开市.交易.立券.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0709": {
		"y": "求医.治病.破屋.坏垣.余事勿取.",
		"j": "嫁娶.出行.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d0809": {
		"y": "嫁娶.冠笄.祭祀.沐浴.普渡.出行.纳财.扫舍.纳畜.赴任.",
		"j": "开市.动土.破土.安床.开仓.上梁.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d0701": {
		"y": "求嗣.嫁娶.纳采.合帐.裁衣.冠笄.伐木.作梁.修造.动土.起基.竖柱.上梁.安门.作灶.筑堤.造畜椆栖.",
		"j": "安葬.出行.祈福.栽种.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0702": {
		"y": "祭祀.解除.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0703": {
		"y": "嫁娶.祭祀.祈福.出火.开光.求嗣.出行.拆卸.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.动土.",
		"j": "安葬.行丧.伐木.作梁.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0704": {
		"y": "开光.求嗣.出行.解除.伐木.出火.拆卸.修造.上梁.起基.入宅.移徙.开市.交易.立券.栽种.牧养.入殓.安葬.除服.成服.",
		"j": "置产.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0705": {
		"y": "祭祀.理发.修饰垣墙.平治道涂.沐浴.整手足甲.扫舍.",
		"j": "出行.安门.修造.嫁娶.上梁.入宅.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0707": {
		"y": "订盟.纳采.祭祀.祈福.开光.安香.出火.立券.安机械.移徙.入宅.竖柱.上梁.会亲友.安床.拆卸.挂匾.牧养.教牛马.",
		"j": "嫁娶.安葬.行丧.破土.修坟.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0708": {
		"y": "沐浴.理发.捕捉.入殓.移柩.破土.启攒.安葬.",
		"j": "出火.嫁娶.入宅.作灶.破土.上梁.动土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0710": {
		"y": "纳采.订盟.嫁娶.移徙.入宅.出行.开市.交易.立券.纳财.会亲友.安香.出火.拆卸.造屋.起基.安床.作灶.挂匾.安葬.破土.启攒.立碑.入殓.移柩.",
		"j": "祈福.上梁.开仓.掘井.牧养.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0711": {
		"y": "祭祀.祈福.斋醮.出行.纳采.订盟.安机械.出火.拆卸.修造.动土.起基.移徙.入宅.造庙.入殓.除服.成服.移柩.破土.安葬.谢土.",
		"j": "嫁娶.开市.栽种.合寿木.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0712": {
		"y": "祭祀.进人口.纳财.纳畜.牧养.捕捉.余事勿取.",
		"j": "开市.入宅.安床.动土.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0713": {
		"y": "祭祀.塑绘.开光.求医.治病.嫁娶.会亲友.放水.掘井.牧养.纳畜.开渠.安碓硙.",
		"j": "造屋.入宅.作灶.入学.安葬.行丧.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0714": {
		"y": "祭祀.塞穴.结网.畋猎.余事勿取.",
		"j": "移徙.开市.入宅.嫁娶.开光.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0715": {
		"y": "开市.纳财.祭祀.塑绘.安机械.冠笄.会亲友.裁衣.开仓.经络.纳畜.造畜椆栖.教牛马.牧养.",
		"j": "动土.破土.安葬.治病.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0716": {
		"y": "移徙.入宅.治病.会亲友.祭祀.祈福.斋醮.安香.移徙.嫁娶.造屋.起基.",
		"j": "开市.斋醮.安床.出行.经络.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0717": {
		"y": "塑绘.出行.冠笄.嫁娶.进人口.裁衣.纳婿.造畜椆栖.交易.立券.牧养.开生坟.入殓.除服.成服.移柩.安葬.启攒.",
		"j": "",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0718": {
		"y": "祭祀.冠笄.嫁娶.捕捉.结网.畋猎.取渔.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0719": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0720": {
		"y": "纳采.祭祀.祈福.解除.动土.破土.安葬.",
		"j": "嫁娶.移徙.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0721": {
		"y": "祭祀.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0722": {
		"y": "嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "祭祀.祈福.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0723": {
		"y": "嫁娶.纳采.开市.出行.动土.上梁.移徙.入宅.破土.安葬.",
		"j": "赴任.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0724": {
		"y": "祭祀.作灶.纳财.捕捉.",
		"j": "开市.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0725": {
		"y": "嫁娶.开市.立券.祭祀.祈福.动土.移徙.入宅.",
		"j": "造庙.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0726": {
		"y": "补垣.塞穴.结网.入殓.除服.成服.移柩.安葬.启攒.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0727": {
		"y": "嫁娶.纳采.出行.祭祀.祈福.解除.移徙.入宅.",
		"j": "动土.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0728": {
		"y": "嫁娶.祭祀.祈福.斋醮.治病.破土.安葬.",
		"j": "开市.入宅.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0729": {
		"y": "嫁娶.出行.开市.安床.入殓.启攒.安葬.",
		"j": "祈福.动土.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0730": {
		"y": "嫁娶.祭祀.裁衣.结网.冠笄.沐浴.",
		"j": "开仓.出货财.置产.安葬.动土.破土.掘井.栽种.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0731": {
		"y": "入宅.移徙.安床.开光.祈福.求嗣.进人口.开市.交易.立券.出火.拆卸.修造.动土.",
		"j": "嫁娶.破土.置产.栽种.安葬.修坟.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0818": {
		"y": "塑绘.开光.解除.订盟.纳采.嫁娶.出火.修造.动土.移徙.入宅.拆卸.起基.安门.分居.开市.交易.立券.纳财.纳畜.牧养.",
		"j": "",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d0808": {
		"y": "嫁娶.普渡.祭祀.祈福.补垣.塞穴.断蚁.筑堤.入殓.除服.成服.安葬.",
		"j": "动土.破土.掘井.开光.上梁.词讼.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d0804": {
		"y": "嫁娶.开光.出行.祈福.求嗣.解除.拆卸.动土.修造.进人口.开市.交易.立券.挂匾.入宅.移徙.安床.栽种.纳畜.入殓.移柩.安葬.",
		"j": "",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d0814": {
		"y": "祭祀.捕捉.畋猎.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.启攒.",
		"j": "嫁娶.纳采.订盟.开市.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d0803": {
		"y": "嫁娶.开光.出行.理发.作梁.出火.拆卸.修造.开市.交易.立券.挂匾.动土.入宅.移徙.安床.栽种.",
		"j": "伐木.祭祀.纳畜.祭祀.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d0802": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d0819": {
		"y": "祈福.出行.订盟.纳采.嫁娶.裁衣.动土.安床.放水.开市.掘井.交易.立券.栽种.开渠.除服.成服.移柩.破土.",
		"j": "",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d0909": {
		"y": "余事勿取.",
		"j": "探病.余事勿取.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d0801": {
		"y": "祭祀.解除.沐浴.整手足甲.入殓.移柩.破土.启攒.安葬.",
		"j": "嫁娶.入宅.移徙.作灶.开市.交易.安门.栽种.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d0805": {
		"y": "祭祀.作灶.纳财.栽种.纳畜.进人口.",
		"j": "安葬.经络.修坟.破土.开市.安床.启攒.立碑.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d0806": {
		"y": "祭祀.祈福.求嗣.开光.开市.牧养.理发.",
		"j": "嫁娶.出行.安葬.入殓.入宅.作灶.冠笄.上梁.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d0807": {
		"y": "嫁娶.订盟.纳采.祭祀.斋醮.普渡.解除.出行.会亲友.开市.纳财.修造.动土.竖柱.上梁.开光.开仓.出货财.纳畜.牧养.开池.破土.启攒.",
		"j": "出火.入宅.造屋.安门.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d0810": {
		"y": "祭祀.沐浴.理发.整手足甲.冠笄.解除.入殓.移柩.破土.启攒.安葬.",
		"j": "嫁娶.出行.入宅.开市.安门.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0811": {
		"y": "塑绘.冠笄.嫁娶.会亲友.进人口.经络.裁衣.栽种.纳畜.牧养.补垣.塞穴.捕捉.",
		"j": "祈福.开市.动土.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d0812": {
		"y": "出行.沐浴.订盟.纳采.裁衣.竖柱.上梁.移徙.纳畜.牧养.",
		"j": "嫁娶.安门.动土.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d0813": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.普渡.开光.安香.出火.移徙.入宅.竖柱.修造.动土.竖柱.上梁.起基.造屋.安门.造庙.造桥.破土.启攒.安葬.",
		"j": "开市.立券.纳财.作灶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d0815": {
		"y": "破屋.坏垣.治病.余事勿取.",
		"j": "行丧.安葬.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d0816": {
		"y": "祈福.斋醮.出行.冠笄.嫁娶.雕刻.开柱眼.入宅.造桥.开市.交易.立券.纳财.入殓.除服.成服.移柩.破土.安葬.启攒.",
		"j": "动土.破土.订盟.安床.开池.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d0817": {
		"y": "祈福.求嗣.解除.订盟.纳采.动土.起基.放水.造仓.开市.纳畜.牧养.开生坟.入殓.除服.成服.移柩.破土.安葬.",
		"j": "",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d0820": {
		"y": "嫁娶.祭祀.祈福.斋醮.作灶.移徙.入宅.",
		"j": "动土.破土.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d0821": {
		"y": "嫁娶.出行.纳畜.祭祀.入殓.启攒.安葬.",
		"j": "作灶.动土.破土.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d0822": {
		"y": "订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.安葬.",
		"j": "嫁娶.开市.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d0823": {
		"y": "订盟.纳采.出行.会亲友.修造.上梁.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d0824": {
		"y": "沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.祈福.余事勿取.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d0825": {
		"y": "嫁娶.祭祀.祈福.斋醮.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d0826": {
		"y": "捕捉.结网.入殓.破土.安葬.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d0827": {
		"y": "沐浴.治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d0828": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.移徙.入宅.启攒.安葬.",
		"j": "动土.破土.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d0829": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.求医.治病.动土.移徙.入宅.破土.安葬.",
		"j": "开光.针灸.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d0830": {
		"y": "订盟.纳采.祭祀.祈福.安机械.作灶.纳畜.",
		"j": "动土.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d0831": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.动土.安床.掘井.破土.启攒.",
		"j": "入宅.作梁.安门.伐木.修造.上梁.入殓.造屋.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d0904": {
		"y": "塑绘.开光.进人口.纳畜.补垣.塞穴.栽种.牧养.",
		"j": "嫁娶.纳财.祈福.安葬.修造.开市.交易.立券.动土.上梁.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d0908": {
		"y": "沐浴.捕捉.入殓.除服.成服.破土.启攒.安葬.",
		"j": "祭祀.嫁娶.安床.开市.入宅.探病.上梁.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d0907": {
		"y": "嫁娶.造车器.安机械.祭祀.祈福.开光.安香.出火.出行.开市.立券.修造.动土.移徙.入宅.破土.安葬.",
		"j": "纳采.订盟.架马.词讼.开渠.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d1009": {
		"y": "冠笄.祭祀.沐浴.作灶.理发.整手足甲.扫舍.补垣.塞穴.入殓.破土.启攒.",
		"j": "开光.嫁娶.会亲友.栽种.针灸.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d0901": {
		"y": "嫁娶.祭祀.祈福.求嗣.出行.出火.拆卸.修造.移徙.动土.安床.入殓.破土.安葬.启攒.",
		"j": "造屋.开光.理发.造船.掘井.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d0902": {
		"y": "祭祀.祈福.求嗣.开光.出行.解除.上梁.造屋.移徙.安门.纳财.牧养.纳畜.安葬.启攒.入殓.",
		"j": "破土.置产.掘井.动土.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d0903": {
		"y": "祭祀.解除.沐浴.理发.整手足甲.入殓.移柩.破土.安葬.扫舍.",
		"j": "嫁娶.会亲友.进人口.出行.入宅.移徙.赴任.作灶.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d0905": {
		"y": "祭祀.作灶.沐浴.修饰垣墙.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d0906": {
		"y": "祭祀.求嗣.开光.出行.伐木.作梁.出火.解除.拆卸.进人口.修造.动土.起基.安床.栽种.纳畜.入殓.破土.安葬.除服.成服.",
		"j": "嫁娶.移徙.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d0910": {
		"y": "订盟.纳采.祭祀.祈福.安香.出火.修造.动土.上梁.安门.起基.竖柱.上梁.定磉.开池.移徙.入宅.立券.破土.",
		"j": "嫁娶.造庙.造桥.造船.作灶.安葬.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d0911": {
		"y": "开光.求嗣.雕刻.嫁娶.订盟.纳采.出火.拆卸.修造.动土.起基.上梁.放水.移徙.入宅.造仓.造船.开市.开池.纳畜.牧养.挂匾.",
		"j": "行丧.安葬.合寿木.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d0912": {
		"y": "祭祀.嫁娶.捕捉.",
		"j": "开光.动土.破土.开市.修造.入宅.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d0913": {
		"y": "祭祀.普渡.解除.会亲友.捕捉.畋猎.启攒.除服.成服.移柩.",
		"j": "嫁娶.开市.动土.掘井.开池.安葬.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d0914": {
		"y": "祭祀.出行.解除.冠笄.嫁娶.伐木.架马.开柱眼.修造.动土.移徙.入宅.开生坟.合寿木.入殓.移柩.破土.安葬.修坟.",
		"j": "开光.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d0915": {
		"y": "祭祀.祈福.求嗣.出行.沐浴.交易.扫舍.教牛马.",
		"j": "动土.作灶.行丧.安葬.修坟.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d0916": {
		"y": "出行.解除.纳采.冠笄.雕刻.修造.动土.起基.上梁.合脊.安床.移徙.入宅.开市.栽种.作厕.",
		"j": "造庙.安门.行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d0917": {
		"y": "祭祀.沐浴.解除.理发.冠笄.安机械.作灶.造仓.开市.开池.作厕.补垣.塞穴.断蚁.结网.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d0918": {
		"y": "祭祀.沐浴.修饰垣墙.平治道涂.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d0919": {
		"y": "祭祀.会亲友.纳采.嫁娶.开光.塑绘.斋醮.安香.开市.立券.除服.成服.入殓.移柩.安葬.赴任.进人口.出行.裁衣.修造.动土.上梁.经络.交易.",
		"j": "入宅.伐木.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d0920": {
		"y": "祭祀.冠笄.会亲友.拆卸.起基.除服.成服.移柩.启攒.安葬.沐浴.捕捉.开光.塑绘.",
		"j": "作灶.祭祀.入宅.嫁娶.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d0921": {
		"y": "祭祀.沐浴.破屋.坏垣.余事勿取.",
		"j": "移徙.入宅.出行.栽种.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d0922": {
		"y": "祭祀.塑绘.开光.出行.解除.订盟.嫁娶.拆卸.起基.安床.入宅.开市.入殓.除服.成服.移柩.破土.谢土.挂匾.开柱眼.交易.",
		"j": "造桥.冠笄.造屋.掘井.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d0923": {
		"y": "祭祀.赴任.动土.上梁.开光.塑绘.冠笄.拆卸.起基.安床.开市.立券.赴任.经络.",
		"j": "定磉.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d0924": {
		"y": "祭祀.裁衣.冠笄.嫁娶.纳婿.会亲友.除服.成服.移柩.捕捉.进人口.入殓.",
		"j": "移徙.入宅.作灶.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d0925": {
		"y": "祭祀.诸事不宜.",
		"j": "入殓.安葬.开市.交易.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d0926": {
		"y": "祭祀.裁衣.冠笄.嫁娶.安机械.拆卸.动土.起基.移徙.入宅.入殓.启攒.安葬.造仓.经络.",
		"j": "安床.开光.开市.交易.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "闭",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d0927": {
		"y": "祭祀.出行.成服.除服.沐浴.入殓.",
		"j": "动土.冠笄.移徙.入宅.开市.竖柱.上梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "建",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d0928": {
		"y": "祭祀.沐浴.赴任.出行.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "除",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d0929": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "满",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d0930": {
		"y": "沐浴.入殓.移柩.除服.成服.破土.平治道涂.",
		"j": "嫁娶.移徙.入宅.开市.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "平",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d1008": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.出行.求医.治病.出火.移徙.入宅.",
		"j": "开市.开仓.出货财.安床.安门.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d1108": {
		"y": "订盟.纳采.纳财.开市.立券.祭祀.祈福.移徙.入宅.出行.造屋.起基.修造.动土.竖柱.上梁.安门.安香.出火.教牛马.会亲友.破土.",
		"j": "嫁娶.安葬.掘井.置产.造船.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲己酉",
		"ts": "碓磨门外正东"
	},
	"d1001": {
		"y": "嫁娶.祭祀.祈福.求嗣.沐浴.出火.出行.拆卸.修造.动土.进人口.开市.交易.立券.入宅.移徙.安床.栽种.纳畜.入殓.安葬.启攒.除服.成服.",
		"j": "",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "定",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d1002": {
		"y": "开光.解除.起基.动土.拆卸.上梁.立碑.修坟.安葬.破土.启攒.移柩.",
		"j": "嫁娶.出行.安床.作灶.祭祀.入宅.移徙.出火.进人口.置产.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "执",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d1003": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "破",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d1004": {
		"y": "嫁娶.祈福.求嗣.出行.出火.拆卸.修造.动土.上梁.开光.进人口.开市.交易.立券.挂匾.安床.入宅.移徙.栽种.伐木.入殓.破土.除服.成服.",
		"j": "",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "危",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1005": {
		"y": "开市.交易.立券.挂匾.祭祀.开光.进人口.入宅.安床.出火.拆卸.修造.动土.栽种.",
		"j": "嫁娶.立碑.出行.伐木.安葬.行丧.移徙.纳畜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "成",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d1006": {
		"y": "祭祀.理发.会亲友.进人口.嫁娶.针灸.入殓.移柩.",
		"j": "探病.开渠.安葬.伐木.作灶.入宅.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "收",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d1007": {
		"y": "祭祀.立碑.修坟.启攒.除服.成服.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "开",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d1010": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.求嗣.置产.求医.治病.开市.交易.立券.会亲友.移徙.竖柱.上梁.造屋.合脊.安门.放水.捕捉.纳畜.",
		"j": "造庙.造船.动土.破土.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d1011": {
		"y": "出行.造车器.造畜椆栖.解除.冠笄.裁衣.作梁.雕刻.会亲友.移徙.入宅.安机械.造畜椆栖.开市.扫舍.",
		"j": "嫁娶.动土.破土.修坟.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d1012": {
		"y": "沐浴.理发.冠笄.安床.开市.立券.会亲友.交易.纳财.结网.教牛马.",
		"j": "移徙.入宅.出行.祈福.嫁娶.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d1013": {
		"y": "祭祀.造畜椆栖.修饰垣墙.平治道涂.余事勿取.",
		"j": "嫁娶.开市.安床.掘井.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1014": {
		"y": "捕捉.结网.入殓.除服.成服.移柩.破土.安葬.启攒.立碑.",
		"j": "嫁娶.祭祀.入宅.造屋.移徙.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1015": {
		"y": "祭祀.祈福.求嗣.斋醮.造庙.出火.安机械.会亲友.开市.交易.立券.纳财.习艺.经络.求医.治病.开池.作厕.畋猎.结网.栽种.牧养.安葬.破土.启攒.",
		"j": "开光.嫁娶.掘井.伐木.作梁.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d1016": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d1017": {
		"y": "会亲友.嫁娶.订盟.纳采.纳婿.拆卸.修造.动土.起基.竖柱.上梁.安床.会亲友.纳财.",
		"j": "出行.祈福.安葬.作灶.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "危",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d1018": {
		"y": "祭祀.塑绘.开光.祈福.斋醮.出行.订盟.纳采.裁衣.嫁娶.拆卸.修造.安床.入宅.安香.入殓.启攒.安葬.谢土.赴任.会亲友.进人口.出行.移徙.上梁.经络.开市.交易.立券.纳财.",
		"j": "开仓.冠笄.伐木.作梁.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1019": {
		"y": "祭祀.作灶.入殓.除服.成服.畋猎.",
		"j": "栽种.动土.安葬.开市.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d1020": {
		"y": "祭祀.祈福.斋醮.沐浴.竖柱.订盟.纳采.嫁娶.拆卸.入宅.移柩.启攒.谢土.赴任.出火.纳畜.",
		"j": "作灶.入殓.安葬.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d1021": {
		"y": "嫁娶.祭祀.安机械.入殓.破土.安葬.",
		"j": "动土.上梁.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d1022": {
		"y": "作灶.造畜椆栖.",
		"j": "行丧.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d1023": {
		"y": "沐浴.理发.入学.习艺.进人口.",
		"j": "嫁娶.入宅.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d1024": {
		"y": "开光.针灸.会亲友.启攒.安葬.",
		"j": "开市.动土.破土.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d1025": {
		"y": "祭祀.结网.造畜椆栖.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d1026": {
		"y": "入殓.除服.成服.移柩.破土.启攒.安葬.",
		"j": "移徙.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "定",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d1027": {
		"y": "嫁娶.订盟.纳采.出行.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "开市.赴任.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "执",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d1028": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "余事勿取.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "破",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d1029": {
		"y": "订盟.纳采.会亲友.安机械.纳财.牧养.",
		"j": "祈福.安葬.",
		"c": "生肖冲猪",
		"s": "煞东",
		"ch": "危",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d1030": {
		"y": "嫁娶.订盟.纳采.出行.开市.祭祀.祈福.动土.移徙.入宅.破土.安葬.",
		"j": "斋醮.安门.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "成",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d1031": {
		"y": "祭祀.塞穴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "收",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d1107": {
		"y": "纳采.移徙.纳财.开市.交易.立券.纳财.入宅.修造.动土.竖柱.起基.定磉.造庙.安香.出火.修饰垣墙.平治道涂.会亲友.出行.开池.作厕.",
		"j": "开仓.造屋.造桥.祭祀.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲戊申",
		"ts": "占门炉外东北"
	},
	"d1117": {
		"y": "祭祀.会亲友.嫁娶.沐浴.修造.动土.祈福.开光.塑绘.出行.订盟.纳采.裁衣.入殓.除服.成服.移柩.启攒.赴任.竖柱.上梁.纳财.扫舍.栽种.纳畜.伐木.",
		"j": "入宅.作灶.安床.开仓.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲戊午",
		"ts": "占门碓外东南"
	},
	"d1104": {
		"y": "祭祀.祈福.求嗣.开光.出行.解除.移徙.伐木.安床.纳畜.出火.拆卸.",
		"j": "安葬.修坟.作灶.破土.造庙.动土.嫁娶.纳采.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "除",
		"zc": "正冲正冲乙巳",
		"ts": "厨灶床外东北"
	},
	"d1114": {
		"y": "祭祀.祈福.求嗣.斋醮.沐浴.冠笄.出行.理发.拆卸.解除.起基.动土.定磉.安碓硙.开池.掘井.扫舍.除服.成服.移柩.启攒.立碑.谢土.",
		"j": "移徙.入宅.安门.作梁.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲乙卯",
		"ts": "厨灶门外东南"
	},
	"d1113": {
		"y": "捕捉.畋猎.会亲友.解除.入殓.除服.成服.移柩.余事勿取.",
		"j": "安床.安门.破土.修坟.安葬.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲甲寅",
		"ts": "碓磨炉外东南"
	},
	"d1118": {
		"y": "理发.会亲友.补垣.塞穴.结网.",
		"j": "嫁娶.入宅.安门.移徙.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲己未",
		"ts": "碓磨厕外东南"
	},
	"d1115": {
		"y": "嫁娶.冠笄.安床.纳采.会亲友.塞穴.捕捉.置产.造畜椆栖.",
		"j": "开光.掘井.安葬.谢土.修坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲丙辰",
		"ts": "仓库栖外东南"
	},
	"d1217": {
		"y": "祭祀.求医.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲戊子",
		"ts": "占门碓房内北"
	},
	"d1101": {
		"y": "祭祀.祈福.求嗣.开光.开市.出行.解除.动土.起基.置产.栽种.",
		"j": "嫁娶.作灶.修坟.安门.入宅.立碑.安葬.安床.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "开",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	},
	"d1102": {
		"y": "祭祀.解除.裁衣.理发.安床.作灶.造畜椆栖.放水.筑堤.补垣.塞穴.整手足甲.扫舍.",
		"j": "嫁娶.开光.会亲友.掘井.安门.栽种.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "闭",
		"zc": "正冲正冲癸卯",
		"ts": "占大门外东北"
	},
	"d1103": {
		"y": "祭祀.出行.裁衣.冠笄.会亲友.造畜椆栖.嫁娶.竖柱.上梁.移徙.纳财.纳畜.",
		"j": "动土.伐木.作梁.行丧.安葬.开生坟.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "建",
		"zc": "正冲正冲甲辰",
		"ts": "碓磨栖外东北"
	},
	"d1105": {
		"y": "开市.交易.立券.纳财.会亲友.开光.理发.入殓.移柩.安葬.启攒.",
		"j": "嫁娶.作灶.出火.出行.入宅.移徙.安床.祈福.上梁.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "满",
		"zc": "正冲正冲丙午",
		"ts": "仓库碓外东北"
	},
	"d1106": {
		"y": "造畜椆栖.平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "平",
		"zc": "正冲正冲丁未",
		"ts": "房床厕外东北"
	},
	"d1109": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.塑绘.开光.移徙.安床.伐木.作梁.捕捉.畋猎.结网.求医.治病.解除.安葬.除服.成服.移柩.入殓.立碑.谢土.",
		"j": "开市.造庙.动土.破土.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲庚戌",
		"ts": "厨灶栖外正东"
	},
	"d1110": {
		"y": "破屋.坏垣.祭祀.余事勿取.",
		"j": "嫁娶.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲辛亥",
		"ts": "仓库床外正东"
	},
	"d1111": {
		"y": "嫁娶.纳采.订盟.祭祀.冠笄.裁衣.伐木.作梁.架马.定磉.开柱眼.作灶.移徙.安床.畋猎.结网.开池.作厕.除服.成服.启攒.入殓.移柩.安葬.",
		"j": "造屋.造船.动土.破土.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲壬子",
		"ts": "房床碓外正东"
	},
	"d1112": {
		"y": "纳采.订盟.祭祀.祈福.求嗣.斋醮.开光.会亲友.解除.入学.纳财.交易.立券.经络.起基.动土.定磉.开池.栽种.纳畜.牧养.破土.入殓.立碑.安葬.",
		"j": "嫁娶.开市.入宅.出火.移徙.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲癸丑",
		"ts": "占门厕外正东"
	},
	"d1116": {
		"y": "祭祀.沐浴.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲丁巳",
		"ts": "占房床外东南"
	},
	"d1119": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.除服.成服.入殓.移柩.安葬.谢土.赴任.会亲友.进人口.出行.竖柱.上梁.经络.开市.交易.立券.纳财.开仓.",
		"j": "作灶.治病.伐木.作梁.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲庚申",
		"ts": "厨灶炉外正南"
	},
	"d1120": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.拆卸.修造.动土.起基.安床.移徙.入宅.安香.入殓.移柩.安葬.谢土.赴任.进人口.会亲友.",
		"j": "作灶.治病.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲辛酉",
		"ts": "仓库门外正南"
	},
	"d1121": {
		"y": "祭祀.塑绘.开光.订盟.纳采.嫁娶.安床.进人口.入殓.除服.成服.移柩.启攒.安葬.立碑.",
		"j": "开市.交易.破土.作灶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲壬戌",
		"ts": "房床栖外正南"
	},
	"d1122": {
		"y": "祭祀.解除.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲癸亥",
		"ts": "占门床外正南"
	},
	"d1123": {
		"y": "祭祀.解除.祈福.开光.塑绘.斋醮.订盟.纳采.裁衣.冠笄.拆卸.修造.动土.入殓.除服.成服.移柩.启攒.安床.赴任.出行.移徙.竖柱.上梁.伐木.栽种.破土.安葬.纳畜.",
		"j": "造屋.治病.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲甲子",
		"ts": "占碓磨外正南"
	},
	"d1124": {
		"y": "祭祀.祈福.订盟.纳采.裁衣.合帐.冠笄.安机械.安床.造畜椆栖.入殓.移柩.启攒.安葬.谢土.除服.成服.会亲友.竖柱.上梁.经络.开市.交易.立券.纳财.纳畜.筑堤.",
		"j": "嫁娶.入宅.治病.赴任.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲乙丑",
		"ts": "厨灶厕外西南"
	},
	"d1125": {
		"y": "沐浴.扫舍.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "收",
		"zc": "正冲正冲丙寅",
		"ts": "仓库炉外西南"
	},
	"d1126": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "开",
		"zc": "正冲正冲丁卯",
		"ts": "房床门外西南"
	},
	"d1127": {
		"y": "祈福.斋醮.出行.订盟.纳采.入殓.移柩.破土.安葬.立碑.结网.",
		"j": "入宅.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "闭",
		"zc": "正冲正冲戊辰",
		"ts": "门鸡栖外西南"
	},
	"d1128": {
		"y": "祭祀.沐浴.出行.冠笄.进人口.余事勿取.",
		"j": "嫁娶.动土.安葬.作灶.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "建",
		"zc": "正冲正冲己巳",
		"ts": "碓磨床外西南"
	},
	"d1129": {
		"y": "祭祀.祈福.斋醮.塑绘.开光.订盟.纳采.裁衣.冠笄.嫁娶.拆卸.入宅.安香.入殓.移柩.理发.安葬.修坟.谢土.赴任.移徙.沐浴.治病.破土.启攒.整手足甲.入学.作梁.",
		"j": "开市.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "除",
		"zc": "正冲正冲庚午",
		"ts": "厨灶碓外西南"
	},
	"d1130": {
		"y": "诸事不宜.",
		"j": "诸事不宜.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "满",
		"zc": "正冲正冲辛未",
		"ts": "仓库厕外西南"
	},
	"d1213": {
		"y": "纳财.开市.交易.立券.会亲友.进人口.经络.祭祀.祈福.安香.出火.求医.治病.修造.动土.拆卸.扫舍.安床.栽种.牧养.开生坟.合寿木.入殓.安葬.启攒.",
		"j": "嫁娶.祈福.出火.移徙.入宅.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲甲申",
		"ts": "碓磨炉外正北"
	},
	"d1203": {
		"y": "开光.解除.拆卸.修造.动土.安床.纳畜.安葬.启攒.入殓.",
		"j": "嫁娶.开市.出火.栽种.破土.动土.入宅.移徙.安香.分居.掘井.作灶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "执",
		"zc": "正冲正冲甲戌",
		"ts": "碓磨栖外正西"
	},
	"d1210": {
		"y": "纳采.订盟.祭祀.沐浴.冠笄.合帐.裁衣.修造.动土.拆卸.移徙.入宅.安门.开仓.筑堤.作厕.栽种.纳畜.补垣.塞穴.",
		"j": "嫁娶.祈福.开光.掘井.安葬.行丧.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲辛巳",
		"ts": "仓库床外西北"
	},
	"d1230": {
		"y": "祭祀.祈福.求嗣.斋醮.开光.入学.订盟.冠笄.伐木.修造.动土.起基.放水.交易.开池.",
		"j": "造桥.安门.理发.造庙.栽种.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲辛丑",
		"ts": "仓库厕房内东"
	},
	"d1218": {
		"y": "祭祀.祈福.斋醮.出行.冠笄.安机械.移徙.入宅.安香.安床.除服.成服.移柩.启攒.",
		"j": "开光.栽种.治病.安门.作灶.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "危",
		"zc": "正冲正冲己丑",
		"ts": "碓磨厕房内北"
	},
	"d1208": {
		"y": "祭祀.沐浴.作灶.纳财.捕捉.畋猎.安床.扫舍.",
		"j": "开市.斋醮.破土.安葬.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲己卯",
		"ts": "占门炉外西北"
	},
	"d1220": {
		"y": "祭祀.沐浴.安床.纳财.畋猎.捕捉.",
		"j": "开市.破土.",
		"c": "生肖冲兔",
		"s": "煞東",
		"ch": "收",
		"zc": "正冲正冲辛卯",
		"ts": "仓库门房内北"
	},
	"d1201": {
		"y": "开市.交易.立券.挂匾.纳财.开光.出行.入宅.移徙.安床.纳畜.入殓.移柩.安葬.",
		"j": "栽种.破土.置产.祭祀.嫁娶.动土.作灶.祈福.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "平",
		"zc": "正冲正冲壬申",
		"ts": "房床厕外正南"
	},
	"d1202": {
		"y": "嫁娶.祭祀.祈福.求嗣.开光.出行.解除.出火.出行.拆卸.进人口.入宅.移徙.安床.栽种.动土.修造.纳畜.入殓.安葬.立碑.除服.成服.",
		"j": "",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "定",
		"zc": "正冲正冲癸酉",
		"ts": "占门厕外正南"
	},
	"d1204": {
		"y": "破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "破",
		"zc": "正冲正冲乙亥",
		"ts": "厨灶床外正西"
	},
	"d1205": {
		"y": "嫁娶.祭祀.开光.出火.出行.拆卸.修造.动土.解除.开市.交易.立券.挂匾.纳财.入宅.移徙.安床.栽种.纳畜.",
		"j": "探病.安葬.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "危",
		"zc": "正冲正冲丙子",
		"ts": "仓库碓外西北"
	},
	"d1206": {
		"y": "祭祀.祈福.求嗣.开光.解除.理发.会亲友.栽种.纳畜.牧养.安葬.修坟.立碑.启攒.",
		"j": "入宅.作灶.词讼.移徙.出行.赴任.",
		"c": "生肖冲牛",
		"s": "煞西",
		"ch": "成",
		"zc": "正冲正冲丁丑",
		"ts": "房床厕外西北"
	},
	"d1207": {
		"y": "纳采.订盟.移徙.入宅.出行.安机械.会亲友.祭祀.祈福.斋醮.开光.安香.出火.解除.求医.针灸.治病.造屋.起基.修造.安门.造船.纳畜.牧养.移柩.入殓.启攒.谢土.修坟.立碑.",
		"j": "嫁娶.动土.安床.造桥.掘井.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲戊寅",
		"ts": "占门炉外西北"
	},
	"d1209": {
		"y": "祈福.斋醮.纳采.订盟.解除.架马.开柱眼.修造.动土.起基.上梁.归岫.造屋.合脊.掘井.除服.成服.破土.栽种.",
		"j": "移徙.开市.入宅.安葬.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲庚辰",
		"ts": "厨灶栖外西北"
	},
	"d1211": {
		"y": "合帐.裁衣.教牛马.余事勿取.",
		"j": "入宅.动土.破土.嫁娶.作灶.造船.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲壬午",
		"ts": "房床碓外正北"
	},
	"d1212": {
		"y": "纳采.订盟.嫁娶.祭祀.祈福.安香.出火.出行.会亲友.经络.求医.治病.解除.拆卸.起基.修造.动土.定磉.扫舍.栽种.牧养.造畜椆栖.",
		"j": "斋醮.作梁.掘井.行丧.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲癸未",
		"ts": "占门厕外正北"
	},
	"d1214": {
		"y": "祭祀.入殓.移柩.余事勿取.",
		"j": "入宅.修造.动土.破土.安门.上梁.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲乙酉",
		"ts": "厨灶门外正北"
	},
	"d1215": {
		"y": "塑绘.开光.订盟.纳采.裁衣.冠笄.拆卸.修造.安床.入宅.出火.安葬.谢土.赴任.",
		"j": "掘井.伐木.斋醮.作灶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲丙戌",
		"ts": "仓库栖外正北"
	},
	"d1216": {
		"y": "祭祀.塑绘.开光.裁衣.冠笄.嫁娶.纳采.拆卸.修造.动土.竖柱.上梁.安床.移徙.入宅.安香.结网.捕捉.畋猎.伐木.进人口.放水.",
		"j": "出行.安葬.修坟.开市.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲丁亥",
		"ts": "占房床房内北"
	},
	"d1219": {
		"y": "塑绘.斋醮.出行.拆卸.解除.修造.移徙.造船.入殓.除服.成服.移柩.启攒.修坟.立碑.谢土.",
		"j": "",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲庚寅",
		"ts": "厨灶炉房内北"
	},
	"d1221": {
		"y": "订盟.纳采.祭祀.祈福.修造.动土.上梁.破土.",
		"j": "嫁娶.作灶.",
		"c": "生肖冲龙",
		"s": "煞北",
		"ch": "开",
		"zc": "正冲正冲壬辰",
		"ts": "房床栖房内南"
	},
	"d1222": {
		"y": "出行.沐浴.理发.补垣.塞穴.",
		"j": "入宅.安葬.",
		"c": "生肖冲蛇",
		"s": "煞西",
		"ch": "闭",
		"zc": "正冲正冲癸巳",
		"ts": "占门床房内南"
	},
	"d1223": {
		"y": "教牛马.余事勿取.",
		"j": "入宅.动土.破土.余事勿取.",
		"c": "生肖冲马",
		"s": "煞南",
		"ch": "建",
		"zc": "正冲正冲甲午",
		"ts": "占碓磨房内南"
	},
	"d1224": {
		"y": "嫁娶.出行.求医.治病.祭祀.祈福.上梁.纳畜.",
		"j": "开市.安葬.",
		"c": "生肖冲羊",
		"s": "煞東",
		"ch": "除",
		"zc": "正冲正冲乙未",
		"ts": "厨灶厕房内南"
	},
	"d1225": {
		"y": "开市.立券.开光.解除.安机械.上梁.启攒.安葬.",
		"j": "嫁娶.祈福.",
		"c": "生肖冲猴",
		"s": "煞北",
		"ch": "满",
		"zc": "正冲正冲丙申",
		"ts": "仓库炉房内南"
	},
	"d1226": {
		"y": "平治道涂.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鸡",
		"s": "煞西",
		"ch": "平",
		"zc": "正冲正冲丁酉",
		"ts": "房床门房内南"
	},
	"d1227": {
		"y": "求嗣.斋醮.塑绘.订盟.纳采.出火.拆卸.修造.动土.造桥.安机械.栽种.纳畜.牧养.入殓.除服.成服.移柩.破土.安葬.",
		"j": "开市.嫁娶.",
		"c": "生肖冲狗",
		"s": "煞南",
		"ch": "定",
		"zc": "正冲正冲戊戌",
		"ts": "门鸡栖房内东"
	},
	"d1228": {
		"y": "嫁娶.订盟.纳采.祭祀.祈福.修造.动土.移徙.入宅.",
		"j": "开市.安葬.",
		"c": "生肖冲猪",
		"s": "煞東",
		"ch": "执",
		"zc": "正冲正冲己亥",
		"ts": "碓磨床房内东"
	},
	"d1229": {
		"y": "治病.破屋.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲鼠",
		"s": "煞北",
		"ch": "破",
		"zc": "正冲正冲庚子",
		"ts": "厨灶碓房内东"
	},
	"d1231": {
		"y": "解除.坏垣.余事勿取.",
		"j": "诸事不宜.",
		"c": "生肖冲虎",
		"s": "煞南",
		"ch": "成",
		"zc": "正冲正冲壬寅",
		"ts": "房床炉房内东"
	}
};


},{}],207:[function(require,module,exports){
/**
 * Created by sinceow on 15/6/24.
 */

module.exports = {
    hl2008: require("./hl2008"),
    hl2009: require("./hl2009"),
    hl2010: require("./hl2010"),
    hl2011: require("./hl2011"),
    hl2012: require("./hl2012"),
    hl2013: require("./hl2013"),
    hl2014: require("./hl2014"),
    hl2015: require("./hl2015"),
    hl2016: require("./hl2016"),
    hl2017: require("./hl2017"),
    hl2018: require("./hl2018"),
    hl2019: require("./hl2019"),
    hl2020: require("./hl2020")
};

},{"./hl2008":194,"./hl2009":195,"./hl2010":196,"./hl2011":197,"./hl2012":198,"./hl2013":199,"./hl2014":200,"./hl2015":201,"./hl2016":202,"./hl2017":203,"./hl2018":204,"./hl2019":205,"./hl2020":206}],208:[function(require,module,exports){
var Dispatcher = require("../dispatcher/dispatcher");
var Constants = require("../constants/constants");
var LC = require("lunar-calendar");
var EventEmitter = require("events").EventEmitter;
var Assign = require("object-assign");
var HL = require("./hl/huangli");



var LcStores = Assign({}, EventEmitter.prototype, {

    chosenDay: false,

    getChosenDay: function () {
        return this.chosenDay || this.getToday();
    },

    getToday: function () {
        var date = new Date();
        var currentMonthDates = LC.calendar(date.getFullYear(), date.getMonth() + 1, false);
        var monthData = currentMonthDates["monthData"];
        for (var i = 0; i < currentMonthDates["monthDays"]; i++) {
            if (monthData[i]["day"] == date.getDate()) {
                return monthData[i];
            }
        }
    },

    getHL: function (date) {
        var month = (date["month"] < 10 ? "0" : "") + date["month"];
        var day = (date["day"] < 10 ? "0" : "") + date["day"];

        return HL["hl" + date["year"]]["d" + month + day];
    },

    getCurrentMonthDates: function () {
        return LC.calendar(this.getChosenDay()["year"], this.getChosenDay()["month"], true)["monthData"];
    },

    emitChangeDay: function () {
        this.emit(Constants.CHANGE_DAY);
    },

    addChangeDayListener: function (callback) {
        this.on(Constants.CHANGE_DAY, callback);
    },

    removeChangeDayListener: function (callback) {
        this.removeListener(Constants.CHANGE_DAY, callback);
    }
});

Dispatcher.register(function (action) {
    var chosenDay = LcStores.getChosenDay();

    var year, month, day;

    switch (action.actionType) {
        case Constants.CHANGE_DAY:
            LcStores.chosenDay = action.chosenDay;
            LcStores.emitChangeDay();
            break;

        case Constants.ADD_MONTH:
            year = chosenDay["year"] + (chosenDay["month"] === 12 ? 1 : 0);
            if (year > 2020) {
                break;
            }
            month = chosenDay["month"] === 12 ? 1 : chosenDay["month"] + 1;
            day = chosenDay["day"];
            if (day === 31) {
                day = LC.getSolarMonthDays(year, month - 1);
            }
            if (month === 2) {
                day = 28;
            }

            LcStores.chosenDay = Assign({}, LC.solarToLunar(year, month, day), {
                day: day,
                month: month,
                year: year
            });

            LcStores.emitChangeDay();
            break;
        case Constants.MINUS_MONTH:
            year = chosenDay["year"] - (chosenDay["month"] === 1 ? 1 : 0);
            if (year < 2008) {
                break;
            }
            month = chosenDay["month"] === 1 ? 12 : chosenDay["month"] - 1;
            day = chosenDay["day"];
            if (day === 31) {
                day = LC.getSolarMonthDays(year, month - 1);
            }
            if (month === 2) {
                day = 28;
            }

            LcStores.chosenDay = Assign({}, LC.solarToLunar(year, month, day), {
                day: day,
                month: month,
                year: year
            });

            LcStores.emitChangeDay();
            break;
        case Constants.ADD_YEAR:

            year = chosenDay["year"] + 1;
            if (year > 2020) {
                break;
            }
            month = chosenDay["month"];
            day = chosenDay["day"];
            if (!(year % 400 === 0) || (year % 100 != 0 && year % 4 === 0) && month === 2 && day === 29) {
                day = 28;
            }

            LcStores.chosenDay = Assign({}, LC.solarToLunar(year, month, day), {
                day: day,
                month: month,
                year: year
            });

            LcStores.emitChangeDay();
            break;

        case Constants.MINUS_YEAR:
            year = chosenDay["year"] - 1;
            if (year < 2008) {
                break;
            }
            month = chosenDay["month"];
            day = chosenDay["day"];
            if (!(year % 400 === 0) || (year % 100 != 0 && year % 4 === 0) && month === 2 && day === 29) {
                day = 28;
            }

            LcStores.chosenDay = Assign({}, LC.solarToLunar(year, month, day), {
                day: day,
                month: month,
                year: year
            });

            LcStores.emitChangeDay();
            break;
        case Constants.BACK_TO_TODAY:
            LcStores.chosenDay = LcStores.getToday();
            LcStores.emitChangeDay();
            break;
        default:
            break;

    }
});

module.exports = LcStores;

},{"../constants/constants":191,"../dispatcher/dispatcher":192,"./hl/huangli":207,"events":4,"lunar-calendar":7,"object-assign":8}]},{},[193])