{"version":3,"file":"catalogue-built.js","mappings":"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CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,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","sources":["webpack://modz/./src/Modules/Resources/Error.js","webpack://modz/./src/Modules/Resources/Label.js","webpack://modz/./src/Modules/_3MPlus.js","webpack://modz/./src/Modules/adresseForm.js","webpack://modz/./src/Modules/ads.js","webpack://modz/./src/Modules/ajaxLoader.js","webpack://modz/./src/Modules/ajaxManagement.js","webpack://modz/./src/Modules/bootstrapValidationForm.js","webpack://modz/./src/Modules/carousel.js","webpack://modz/./src/Modules/cleanTextOnFocus.js","webpack://modz/./src/Modules/fusion3m.js","webpack://modz/./src/Modules/gestionLocalStorage.js","webpack://modz/./src/Modules/inscriptionConnexionCustomAction.js","webpack://modz/./src/Modules/inscriptionGoogleAPI.js","webpack://modz/./src/Modules/inscriptionModule.js","webpack://modz/./src/Modules/master.js","webpack://modz/./src/Modules/miniPanier.js","webpack://modz/./src/Modules/modal.js","webpack://modz/./src/Modules/password.js","webpack://modz/./src/Modules/profileCookie.js","webpack://modz/./src/Modules/selectorPanel.js","webpack://modz/./src/Modules/tooltips.js","webpack://modz/./src/Modules/url.js","webpack://modz/./src/Modules/validationForm.js","webpack://modz/./src/Modules/wishList.js","webpack://modz/./src/Libs/handlebars-v1.3.0.js","webpack://modz/./src/Libs/ionSlider.js","webpack://modz/./src/Libs/mustache.js","webpack://modz/./src/Libs/typeahead.js","webpack://modz/./node_modules/jquery/dist/jquery.js","webpack://modz/./node_modules/@babel/runtime/helpers/arrayLikeToArray/_index.mjs","webpack://modz/./node_modules/@babel/runtime/helpers/classCallCheck/_index.mjs","webpack://modz/./node_modules/@babel/runtime/helpers/createClass/_index.mjs","webpack://modz/./node_modules/@babel/runtime/helpers/defineProperty/_index.mjs","webpack://modz/./node_modules/@babel/runtime/helpers/toConsumableArray/_index.mjs","webpack://modz/./node_modules/@babel/runtime/helpers/arrayWithoutHoles/_index.mjs","webpack://modz/./node_modules/@babel/runtime/helpers/iterableToArray/_index.mjs","webpack://modz/./node_modules/@babel/runtime/helpers/nonIterableSpread/_index.mjs","webpack://modz/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray/_index.mjs","webpack://modz/webpack/bootstrap","webpack://modz/webpack/runtime/load script","webpack://modz/webpack/runtime/amd options","webpack://modz/webpack/runtime/compat get default export","webpack://modz/webpack/runtime/define property getters","webpack://modz/webpack/runtime/ensure chunk","webpack://modz/webpack/runtime/get javascript chunk filename","webpack://modz/webpack/runtime/global","webpack://modz/webpack/runtime/hasOwnProperty shorthand","webpack://modz/webpack/runtime/make namespace object","webpack://modz/webpack/runtime/publicPath","webpack://modz/webpack/runtime/jsonp chunk loading","webpack://modz/./src/Modules/manageTemplate.js","webpack://modz/./src/Modules/tools.js","webpack://modz/./src/Modules/lazyLoadingImage.js","webpack://modz/./src/Modules/anchor.js","webpack://modz/./src/Modules/showAlerte.js","webpack://modz/./src/Modules/paginationInfinityScroll.js","webpack://modz/./src/Modules/initPageAfterAjax.js","webpack://modz/./src/Modules/pagination.js","webpack://modz/./src/Modules/tris.js","webpack://modz/./src/Modules/autoComplete.js","webpack://modz/./src/Modules/marque.js","webpack://modz/./src/Modules/rangeslider.js","webpack://modz/./src/Views/catalogue.js"],"sourcesContent":["export const _404 = 'La page demandée est introuvable.'\r\nexport const _500 = 'Une erreur interne est survenue.'\r\nexport const ADRESSE_DOIT_ETRE_RENSEIGNEE =\r\n 'L\\u0027adresse doit être renseignée'\r\nexport const ADRESSE_EMAIL_INVALIDE = 'L\\u0027adresse e-mail est invalide'\r\nexport const ADRESSE_EMAIL_OBLIGATOIRE =\r\n 'L\\u0027adresse e-mail est obligatoire et ne peut être vide.'\r\nexport const ADRESSE_EMAIL_UTILISEE = 'L\\u0027adresse email est déjà utilisée.'\r\nexport const AJAXLOADERINTERNALERROR =\r\n 'Une erreur interne est survenue lors du chargement de la page. Veuillez actualiser la page.'\r\nexport const AUCUN_COMPTE_CLIENT_CORRESPONDANT =\r\n 'Aucun compte client ne correspond à cet e-mail.'\r\nexport const CODEPOSTAL_DIFFERENT_VILLE =\r\n 'Le code postal indiqué ne correspond pas à la bonne ville.'\r\nexport const COMPLETEZ_VOTRE_PROFIL_POUR_VOIR_VOTRE_SELECTION_PERSO =\r\n 'Complétez votre profil\\rpour voir votre sélection\\rpersonnalisée'\r\nexport const COMPTE_CLIENT_EXISTE_DEJA =\r\n 'Il existe déjà un compte client avec cet e-mail. Merci de vous connecter avec vos identifiants.'\r\nexport const CONFIRMATION_MOT_PASSE_OBLIGATOIRE =\r\n 'La confirmation de mot de passe est obligatoire et ne peut être vide.'\r\nexport const CONNECTION_ECHOUE =\r\n 'Votre email ou votre mot de passe est incorrect.'\r\nexport const CONTACTINFORMATION_PARAMETERS_WRONG =\r\n 'Certaines informations sont invalides.'\r\nexport const DATABASEERRORUPDATE =\r\n 'Une erreur est survenu durant la mise à jour de la base de données.'\r\nexport const DATE_INVALIDE =\r\n 'Date de naissance invalide. Merci de respecter le format JJ/MM/AAAA. Elle doit être supérieur au 01/01/1900.'\r\nexport const DATENAISSANCEOBLIGATOIRE =\r\n 'La date de naissance est obligatoire et ne peut être vide'\r\nexport const DEJA_INSCRIT_JEU_CONCOURS =\r\n 'Votre inscription pour ce jeu concours a déjà été prise en compte.'\r\nexport const DOIT_SELECTIONNER_TAILLE = 'SÉLECTIONNEZ VOTRE TAILLE'\r\nexport const ERREUR_CARTE_CADEAU =\r\n 'Le numéro de carte n’existe pas. Veuillez recommencer.'\r\nexport const ERREUR_CARTE_DEJA_ENREGISTREE =\r\n 'Cette carte a déjà été enregistrée.'\r\nexport const ERREUR_CODE_PROMO =\r\n 'Désolé, le code promotionnel saisi n\\u0027est pas valide ou a expiré. Veuillez saisir un code promotionnel valide.'\r\nexport const ERREUR_CODE_PROMO_INVALIDE =\r\n 'Veuillez saisir un code promo valide.'\r\nexport const ERREUR_INTERNE_RECUPERATION_MARQUES =\r\n 'Une erreur interne est survenue lors de la récupération de la liste des marques.'\r\nexport const ERREUR_INTERNE_RECUPERATION_VILLE =\r\n 'Une erreur est survenue lors de la récupération de la liste des villes'\r\nexport const FAILTOCREATEALERTE =\r\n 'Une erreur est survenue lors de la création de votre alerte.'\r\nexport const FAILTOCREATENEWSLETTER = 'Erreur interne.'\r\nexport const INSCRIPTION_PARAMETERS_WRONG =\r\n 'Impossible de créer votre compte. Merci de vérifier vos informations personnelles'\r\nexport const INVALIDCURRENTPASSWORD =\r\n 'Le mot de passe actuel saisi est incorrect !'\r\nexport const INVALIDEMAIL = 'E-mail incorrect.'\r\nexport const INVALIDINTEGER =\r\n 'Ce champ ne peut contenir qu\\u0027un nombre entier valide.'\r\nexport const LA_VILLE_DOIT_ETRE_RENSEIGNEE = 'La ville doit être renseignée.'\r\nexport const LE_CODE_POSTAL_DOIT_ETRE_RENSEIGNE =\r\n 'Le code postal doit être renseigné.'\r\nexport const LE_NUMERO_DE_TELEPHONE_OBLIGATOIRE =\r\n 'Le numéro de téléphone est obligatoire.'\r\nexport const MAXNUMBEROFPROFILESREACHED =\r\n 'Vous avez atteint le nombre maximum de profils enregistrés.'\r\nexport const MERCI_PRECISER_CIVILITE = 'Merci de préciser votre civilité'\r\nexport const MOT_PASSE_CONFIRMATION =\r\n 'Le mot de passe et sa confirmation ne correspondent pas'\r\nexport const MOT_PASSE_NON_CONFORME_CONFIRMATION =\r\n 'Le mot de passe et sa confirmation ne correspondent pas'\r\nexport const MOT_PASSE_NON_IDENTIQUE_CONFIRMATION =\r\n 'Le mot de passe ne peut être identique à votre adresse e-mail'\r\nexport const MOT_PASSE_NON_IDENTIQUE_MAIL =\r\n 'Le mot de passe ne peut être identique à votre adresse e-mail'\r\nexport const MOT_PASSE_OBLIGATOIRE =\r\n 'Le mot de passe est obligatoire et ne peut être vide.'\r\nexport const NEWPASSWORDDOESNOTMATCH =\r\n 'Les nouveaux mots de passe saisis ne correspondent pas !'\r\nexport const NEWSLETTERALREADYSUBSCRIBED = 'E-mail déjà enregistré.'\r\nexport const NOM_OBLIGATOIRE = 'Le nom est obligatoire et ne peut être vide.'\r\nexport const PASSWORDCHARACTER =\r\n 'Le mot de passe doit contenir {2} caractères au minimum.'\r\nexport const PASSWORDCONFIRMATION =\r\n 'Veuillez saisir un mot de passe identique au précédent.'\r\nexport const PAYS_OBLIGATOIRE = 'Le pays est obligatoire et ne peut être vide.'\r\nexport const PRENOM_OBLIGATOIRE =\r\n 'Le prénom est obligatoire et ne peut être vide.'\r\nexport const PRODUITINDISPONIBLE =\r\n 'Dommage, ce produit vient d\\u0027etre vendu il y a quelques minutes !'\r\nexport const PRODUITINDISPONIBLETAILLE =\r\n 'Cette taille n\\u0027est pas disponible actuellement.'\r\nexport const REGLE_CODE_POSTAL =\r\n 'Le code postal doit contenir au minimum 4 caractères et au maximum 5'\r\nexport const REGLE_MOT_PASSE =\r\n 'Le mot de passe doit contenir au minimum 6 caractères.'\r\nexport const REGLE_TELEPHONE = 'Numéro de téléphone incorrect.'\r\nexport const TELEPHONE_OBLIGATOIRE =\r\n 'Veuillez saisir votre numéro de téléphone fixe ou mobile.'\r\nexport const UNKNOWERROR =\r\n 'Une erreur interne est survenue lors du chargement de la page.'\r\nexport const VEUILLEZ_INDIQUER_MAIL_VALIDE =\r\n 'Veuillez indiquer un e-mail valide.'\r\nexport const VOUS_SELECTIONNER_TAILLE = 'Vous devez sélectionner une taille !'\r\nexport const WRONGNAMEOFPROFILE =\r\n 'Merci d\\u0027insérer un nom de profil valide.'\r\n","\r\nexport const A_ACCENT = 'à'\r\nexport const A_JOINDRE_DANS_COLIS = 'A joindre dans votre colis'\r\nexport const A_PARTIR_DE_MAJ = 'À PARTIR DE'\r\nexport const A_PROPOS_DE_MODZ = 'À propos de Modz'\r\nexport const A_VENIR_TRES_PROCHAINEMENT = 'À venir très prochainement !'\r\nexport const ACCEDER_A_MES_CMD = 'Accéder à mes commandes'\r\nexport const ACCEDER_A_MES_INFOS = 'Accéder à mes infos'\r\nexport const ACCEDER_A_MES_RETOURS = 'Accéder à mes retours'\r\nexport const ACCEDER_AU_FORMULAIRE_DE_CONTACT = 'Accéder au formulaire de contact'\r\nexport const ACCEDEZ_A_VOS_DONNES_PERSOS = 'Accédez à vos données personnelles'\r\nexport const ACCEPTER_CGV = 'En cliquant sur COMMANDER, vous acceptez les'\r\nexport const ACCES_ALL_PDTS_MARQUE_MAJ = 'ACCÉDER À TOUS LES PRODUITS DE LA MARQUE'\r\nexport const ACCUEIL = 'Accueil'\r\nexport const ACHAT_EXPRESS = 'Achat Express'\r\nexport const ACHETER = 'Acheter'\r\nexport const ACTIVE = 'Activé'\r\nexport const ADRESSE = 'Adresse'\r\nexport const ADRESSE_FACTURATION = 'Adresse de facturation'\r\nexport const ADRESSE_LIVRAISON = 'Adresse de livraison'\r\nexport const ADRESSE_LIVRAISON_MODIFIER = 'Votre adresse de livraison a été modifié pour cette commande.'\r\nexport const ADRESSE_MAIL = 'Adresse e-mail'\r\nexport const AFFICHER = 'Afficher'\r\nexport const AFFICHER_PLUS_PRODUITS = 'Afficher plus de produits'\r\nexport const AGE = 'Age'\r\nexport const AGES = 'Ages'\r\nexport const AIDE = 'Aide'\r\nexport const AJOINDRE_DANS_VOTRE_COLIS_MAJ = '(A JOINDRE DANS VOTRE COLIS SVP)'\r\nexport const AJOUTER = 'Ajouter'\r\nexport const AJOUTER_A_MON_PANIER = 'AJOUTER À MON PANIER'\r\nexport const AJOUTER_AUX_FAVORIS = 'Ajouter aux favoris'\r\nexport const AJOUTER_PANIER = 'AJOUTER AU PANIER'\r\nexport const AJOUTER_PROFIL = 'Ajouter un profil'\r\nexport const AJOUTER_UNE_MARQUE = 'Ajouter une marque'\r\nexport const ALERTE_ACTIVE_POUR = 'L\\u0027alerte sera activée pour'\r\nexport const ALERTES_AVANT_PREMIERE = 'avant première'\r\nexport const ALERTES_CEST_POURQUOI = 'C\\u0027est pourquoi nous vous proposons d\\u0027être informé en'\r\nexport const ALERTES_DE_NOS_ARRIVAGES = 'de nos arrivages. En quelques clics seulement, créez vos alertes et recevez les nouveautés en fonctions de vos critères. Ne perdez pas une minute pour profiter des bons plans avant les autres !'\r\nexport const ALERTES_MES_ALERTES = 'Mes alertes'\r\nexport const ALERTES_MODZ_NUM1_DESTOCKAGE = 'Modz, numéro 1 du déstockage des boutiques de mode, vous propose des'\r\nexport const ALERTES_NE_MANQUEZ_PLUS_LE_PRODUIT = 'Ne manquez plus le produit dont vous rêviez !'\r\nexport const ALERTES_NLLES_PIECES = 'nouvelles pièces'\r\nexport const ALERTES_NOM_ALERTE = 'Nom de l\\u0027alerte'\r\nexport const ALERTES_TLJ_CES_PIECES = 'tous les jours. Ces pièces sont pour la plupart'\r\nexport const ALERTES_UNIQUES_COURTISEES = 'uniques et très courtisées'\r\nexport const APPEL_FACTURE = 'Appel facturé'\r\nexport const APPLIQUER_CODE_MAJ = 'APPLIQUER LE CODE'\r\nexport const ARTICLE = 'article'\r\nexport const ARTICLE_AJOUT_FAVORIS_MSG = 'L\\u0027article a bien été ajouté à votre liste de favoris.'\r\nexport const ARTICLE_BIEN_AJOUTE_PANIER = 'L\\u0027article a été ajouté dans le panier.'\r\nexport const ARTICLE_DANS_FAVORIS = 'article dans vos favoris'\r\nexport const ARTICLE_EXPE_24H = 'Article expédié en 24h'\r\nexport const ARTICLES = 'articles'\r\nexport const ARTICLES_DANS_FAVORIS = 'articles dans vos favoris'\r\nexport const ATTENTION = 'Attention'\r\nexport const AU = 'au'\r\nexport const AUCUN_ESCOMPTE_ACCORDE = 'Aucun escompte pour paiement anticipé n\\u0027est accordé.'\r\nexport const AUCUN_PRODUIT_CORRESPONDANT_SANS_MARQUES = 'Nous n’avons plus aucun produit correspondant à votre recherche.\\r\\n\\u003cbr /\\u003eDemain, il y aura \\u003cspan class=\\\"PoppinsSemiBold\\\"\\u003e3 000 nouveautés\\u003c/span\\u003e en plus sur le site donc restez connecté !'\r\nexport const AUCUNRETOURENREGISTRE = 'Aucun retour enregistré'\r\nexport const AULIEUDE = 'au lieu de'\r\nexport const AUTOUR_DE_MOI = 'Autour de moi'\r\nexport const AUTRE = 'Autre'\r\nexport const AUTRES_PAYS = 'Autres pays'\r\nexport const AUTRES_VILLES = 'Autres villes'\r\nexport const AVANTAGE_CODE_PROMO = 'Avantage code promotionnel'\r\nexport const AVANTAGE_CODE_PROMO_DOTS = 'Avantage code promotionnel ...................'\r\nexport const AVANTAGE_REDUCTION = 'Avantages, promos, réduction -'\r\nexport const AVEC = 'avec'\r\nexport const AVEC_MONDIAL_RELAY = 'avec Mondial Relay.'\r\nexport const AVEC_MONDIAL_RELAY_MAJ = 'AVEC MONDIAL RELAY'\r\nexport const AVIS_CLIENTS = 'AVIS CLIENTS'\r\nexport const AVIS_TRUSTPILOT = 'Voir les avis de http://trustpilot.fr'\r\nexport const AVOIR = 'Avoir'\r\nexport const AVOIR_ETE_PORTE = '- Avoir été porté'\r\nexport const BAS = 'Bas'\r\nexport const BAS_MAJ = 'BAS'\r\nexport const BENEFICIER_MAJ = 'BENEFICIER'\r\nexport const BESOINAIDE = 'Besoin d\\u0027aide? Commander par téléphone ?'\r\nexport const BOHEME_FP = 'bohèmes'\r\nexport const BON_ACHAT = 'Bon d\\u0027achat'\r\nexport const BONDERETOUR = 'Bon de retour'\r\nexport const BONJOUR = 'Bonjour'\r\nexport const BONNE_ANNEE = 'Bonne année'\r\nexport const BONNE_IDEE = 'Bonne idée \\u003e'\r\nexport const BONNE_NOUVELLE_LIVRAISON_GRATUITE = 'Bonne nouvelle ! Vous bénéficiez de la livraison gratuite.'\r\nexport const BONS_PARRAINAGE = 'Bons de parrainage'\r\nexport const BONUS = 'Bonus'\r\nexport const BORDEREAU_RETOUR = 'Bordereau de retour'\r\nexport const BORDEREAU_RETOUR_MAJ = 'BORDEREAU DE RETOUR'\r\nexport const BR_A_RECEPTION_MODZ = 'A réception, Modz créditera votre compte d\\u0027un avoir utilisable immédiatement, vous bénéficierez de la possibilité de demander le remboursement.'\r\nexport const BR_LES_CGV_APPLICABLE_A_VOTRE_CMD = 'Les conditions Générales de vente applicables à votre commande acceptées lors de votre enregistrement sont disponibles sur notre site. Les consommateurs disposent d\\u0027un délai de 14 Jours francs à compter de la réception des biens pour exercer leur droit de rétractation sans avoir à justifier de motif ni à payer de pénalités, à l\\u0027exception des frais de retour.'\r\nexport const BRAVO_VOUS_VENEZ_DE_METTRE_LA_MAIN = 'Bravo ! Vous venez de mettre la main sur le dernier produit disponible !'\r\nexport const BUREAU = 'Bureau'\r\nexport const CARTES_BANCAIRES = 'Cartes bancaires'\r\nexport const CATEGORIE = 'Catégorie'\r\nexport const CATEGORIES = 'Catégories'\r\nexport const CELA_POURRAIT_VOUS_INTERESSER = 'Cela pourrait vous intéresser'\r\nexport const CEST_PARTI = 'C\\u0027est parti !'\r\nexport const CET_ART_A_BIEN_ETE_AJOUTE = '\\u003cspan class=\\\"d-block\\\"\\u003eCet article a bien été ajouté\\u003c/span\\u003e\\r\\n\\u003cspan class=\\\"d-block\\\"\\u003eà votre panier\\u003c/span\\u003e'\r\nexport const CET_ARTICLE_A_ETE_VENDU = 'Cet article a été vendu.'\r\nexport const CET_ARTICLE_NEST_PLUS_DISPO = 'Cet article n\\u0027est plus disponible.'\r\nexport const CETTE_PAGE_SECURISEE = 'Cette page sécurisée est la page d\\u0027accueil de votre compte Modz. Elle regroupe tous les outils utiles pour gérer vos commandes, modifier vos informations personnelles ou créer des alertes. Vous y trouverez aussi notre offre de parrainage afin de bénéficier de 20€ sur votre prochaine commande.'\r\nexport const CGV_MODZ = 'conditions générales de vente de Modz.'\r\nexport const CHAMPS_OBLIGATOIRES = '* Champs obligatoires'\r\nexport const CHANGER_MON_MDP = 'Changer mon mot de passe'\r\nexport const CHAQUE_JOUR_NOUVEAUTES_EN_LIGNE = 'Chaque jour, ce sont plus de 1.500 nouveautés en ligne. Découvrez-les vite !'\r\nexport const CHARGEMENTZOOM = 'Chargement du zoom...'\r\nexport const CHAUSSURE = 'Chaussure'\r\nexport const CHAUSSURES = 'Chaussures'\r\nexport const CHAUSSURES_MAJ = 'CHAUSSURES'\r\nexport const CHEQUE = 'Chèque'\r\nexport const CHEQUE_1 = 'Chèque numéro 1:'\r\nexport const CHEQUE_2 = 'Chèque numéro 2:'\r\nexport const CHEQUE_3 = 'Chèque numéro 3:'\r\nexport const CHERCHER_AUTOUR_DE_MOI = 'Chercher autour de moi'\r\nexport const CHIFFRE24H = '24h'\r\nexport const CHOISIR_AUTRE_ADRESSE = 'Choisir une autre adresse'\r\nexport const CHOISIR_UN_FICHIER = 'Choisir un fichier'\r\nexport const CHOISISSEZ_MODE_EXPE_COLIS = 'Choisissez le mode d\\u0027expédition de votre colis.'\r\nexport const CHOISISSEZ_TRANSPORTEUR_DE_VITRE_CHOIX = 'Choisissez le transporteur de votre choix.'\r\nexport const CHOIX = 'Choix'\r\nexport const CHOIX_PAIEMENT_3XCHEQUE = 'Vous avez choisi de régler par chèques 3 fois sans frais, nous vous informons que vous devez établir 3 chèques, à l\\u0027ordre de Modz.fr, des montants suivants :'\r\nexport const CHOIX_PAIEMENT_CHEQUE = 'Vous avez choisi de régler par chèque, nous vous informons que vous devez établir votre chèque à l\\u0027ordre de Modz.fr et l\\u0027envoyer à l\\u0027adresse suivante :'\r\nexport const CHOIX_PAIEMENT_VIREMENT = 'Vous avez choisi de régler par virement bancaire, les coordonnées bancaires sont les suivantes :'\r\nexport const CHOIX_POINT_RELAY = 'Choix du point relais'\r\nexport const CINQ_EUROS = '5€'\r\nexport const CIVILITE = 'Civilité'\r\nexport const CLIQUANT_ICI = 'cliquant ici'\r\nexport const CLIQUER_ICI = 'cliquez ici'\r\nexport const CLIQUEZ_ICI = 'Cliquez ici'\r\nexport const CLIQUEZ_POUR_AGRANDIR = 'Cliquez sur l\\u0027image pour agrandir'\r\nexport const CLIQUEZPOURZOOM = 'Cliquez sur l\\u0027image pour agrandir'\r\nexport const CLUB_AUCUN_ARTICLE_ELIGBLE = 'Vous n\\u0027avez pas d\\u0027article éligible actuellement.'\r\nexport const CLUB_BENEFICIER_AVOIR_OU_REMBOURSEMENT = '5. Bénéficier d’un avoir ou d’un remboursement'\r\nexport const CLUB_CARTE_CADEAU_LORS_DU_PAIEMENT = 'Lors du paiement de votre commande, le solde de vos bons d’achat apparaitra et il vous suffira de cocher la case pour que le montant soit déduit de votre commande.'\r\nexport const CLUB_CARTE_CADEAU_SUCCES = 'Bravo ! Votre carte a bien été enregistrée. Bon shopping !'\r\nexport const CLUB_CARTECADEAU = 'Carte cadeau'\r\nexport const CLUB_COCHEZ_LES_ARTICLES = 'Cochez les articles que vous souhaitez retourner et indiquez le motif. Choisissez ensuite votre mode d’expédition.'\r\nexport const CLUB_COLLER_ETIQUETTE_MR_COLIS = 'Coller l’étiquette Mondial Relay sur votre colis.'\r\nexport const CLUB_CONTACT = 'Contact'\r\nexport const CLUB_CONTACTEZNOUS = 'Contactez-nous'\r\nexport const CLUB_DEMANDE_DE_RETOUR = 'Demande de retour'\r\nexport const CLUB_DEPOSER_COLIS_DANS_POINT_RELAIS = 'Déposer votre colis dans le point Mondial Relay suivant:'\r\nexport const CLUB_DEPOSEZ_COLIS_AVEC_SHOPPING_TRANQUILLE = 'Déposez le colis dans le point relais que vous avez choisi.'\r\nexport const CLUB_DEPOSEZ_COLIS_INTERNATIONNAL = 'Déposez le colis dans un bureau de poste.'\r\nexport const CLUB_DESCR_PREPARATION_RETOUR = 'Les articles doivent être pliés dans leur emballage d’origine avec toutes les étiquettes, \\r\\nou boite originale pour les chaussures, le tout dans un colis correctement fermé.\\r\\nConstituez solidement votre colis car la marchandise voyage à vos frais et périls.'\r\nexport const CLUB_EN_FONCTION_DU_MODE_DE_LIVRAISON_SANS_SHOPPING_TRANQUILLE = 'En fonction du mode de livraison choisi, déposez le colis dans un bureau de poste ou un point relais.'\r\nexport const CLUB_ETIQUETTE_MR_A_COLLER = 'L\\u0027étiquette Mondial Relay (à coller sur votre colis) \\u003e'\r\nexport const CLUB_EXPEDIER_COLIS = '4. Expédier votre colis'\r\nexport const CLUB_IMRIMER_ETIQUETTE_MR = '3. Imprimer l\\u0027étiquette Mondial Relay'\r\nexport const CLUB_INDIQUER_ADRESSE_RETOUR_COLIS = '3. Indiquer l’adresse de retour sur votre colis'\r\nexport const CLUB_INDIQUEZ_ADRESSE_RETOUR_COLIS = 'Indiquez l’adresse de retour sur votre colis :'\r\nexport const CLUB_LAVES_REPASSES = '- Lavés et/ou repassés'\r\nexport const CLUB_LES_ARTICLES_NE_DOIVENT_PAS_AVOIR_ETE = 'Les articles ne doivent pas avoir été :'\r\nexport const CLUB_MARQUES_PREFEREES = 'Mes marques préférées'\r\nexport const CLUB_MES_ARTICLES_ELIGIBLES_RETOUR = 'Mes articles éligibles au retour'\r\nexport const CLUB_MES_COULEURS_FAVORITES = 'Mes couleurs favorites'\r\nexport const CLUB_MES_DEMANDES_DE_RETOUR = 'Mes demandes de retour'\r\nexport const CLUB_MES_PROFILS = 'Mes profils'\r\nexport const CLUB_MESABONNEMENTS = 'Mes abonnements'\r\nexport const CLUB_MESALERTES = 'Mes alertes'\r\nexport const CLUB_MESALERTESNOUVEAUTES = 'Mes alertes nouveautés'\r\nexport const CLUB_MESCOMMANDES = 'Mes commandes'\r\nexport const CLUB_MESINFOS = 'Mes infos'\r\nexport const CLUB_MESINFOSPERSO = 'Mes infos personnelles'\r\nexport const CLUB_MESRETOURS = 'Mes retours'\r\nexport const CLUB_MODIFIER_MES_MARQUES = 'Modifier mes marques préférés'\r\nexport const CLUB_MODIFIER_MES_MARQUES_PREFEREES = 'Modifier mes marques préférées'\r\nexport const CLUB_MODIFIER_MES_PRODUITS = 'Modifier mes produits fétiches'\r\nexport const CLUB_MODIFIER_MES_PRODUITS_FETICHES = 'Modifier mes produits fétiches'\r\nexport const CLUB_MODIFIER_MES_TAILLES = 'Modifier mes tailles'\r\nexport const CLUB_MODIFIER_MON_STYLE = 'Modifier mon style'\r\nexport const CLUB_MON_SOLDE_DE_COMPE = 'Mon solde de compte'\r\nexport const CLUB_MON_STYLE = 'Mon style'\r\nexport const CLUB_MONPROFIL = 'Mon profil'\r\nexport const CLUB_NEWS_SOUHAIT_1 = 'Être informé de toutes les actus et promos de Modz\\r\\n\\u003cspan\\u003e(pour que rien ne m\\u0027échappe !)\\u003c/span\\u003e'\r\nexport const CLUB_NEWS_SOUHAIT_2 = 'Recevoir un récap sur les produits que j\\u0027ai mis au panier\\r\\n\\u003cspan\\u003e(pour ne pas les oublier !)\\u003c/span\\u003e'\r\nexport const CLUB_NEWS_SOUHAIT_3 = 'Garder un oeil sur tous mes produits favoris\\r\\n\\u003cspan\\u003e(pour que personne d\\u0027autre ne mette la main dessus !)\\u003c/span\\u003e'\r\nexport const CLUB_NEWS_SOUHAIT_4 = 'Être alerté dès qu\\u0027un produit que j\\u0027ai repéré revient en stock\\u003cspan\\u003e\\r\\n(pour qu\\u0027il ne m\\u0027échappe pas une 2e fois !)\\u003c/span\\u003e'\r\nexport const CLUB_NEWS_SOUHAIT_5 = 'Recevoir des offres exclusives en tant que client Modz\\r\\n\\u003cspan\\u003e(parce que je le vaux bien !)\\u003c/span\\u003e'\r\nexport const CLUB_NEWS_SOUHAIT_6 = 'Recevoir des alertes nouveautés de mes marques préférées\\u003cspan class=\\\"pink\\\"\\u003e\\r\\n(\\u003ca href=\\\"/club/alertes/\\\" class=\\\"underline pink\\\"\\u003egérer mes alertes\\u003c/a\\u003e)\\u003c/span\\u003e'\r\nexport const CLUB_PARRAINAGE = 'Parrainage'\r\nexport const CLUB_PARRAINAGE_BONACHAT_20E_CREDIT = 'Un bon d\\u0027achat de 20€ sera crédité sur votre compte pour chaque \\r\\n1ère commande passée par vos filleuls !'\r\nexport const CLUB_PARRAINAGE_CREDITES_SUR_VOTRE_COMPTE = 'Crédités sur votre compte pour chaque 1ère commande passée \\r\\npar vos filleuls donc 5 filleuls = 100€ pour vous !'\r\nexport const CLUB_PARRAINAGE_FAITES_DECOUVRIR_MODZ = 'Et si vous faisiez découvrir Modz à vos amis afin de leur faire bénéficier \\u003cspan class=\\\"hidden-xs d-block\\\"\\u003e\\u003c/span\\u003e\\r\\nde nos plus belles affaires… c’est gagnant gagnant !'\r\nexport const CLUB_PARRAINAGE_INVIATION_ENVOYEE = 'Votre invitation a bien été envoyée !'\r\nexport const CLUB_PARRAINAGE_PARRAINER = 'Parrainer !'\r\nexport const CLUB_PARRAINAGE_PARRAINER_PLUS_DAMIS = 'Parrainez encore plus d’amis \\u003e'\r\nexport const CLUB_PARRAINAGE_PARRAINNEZ_VOS_AMIS = 'Parrainez vos amis en leur envoyant une invitation :'\r\nexport const CLUB_PARRAINAGE_POUR_VOS_FILLEULS = 'Pour vos filleuls,'\r\nexport const CLUB_PARRAINAGE_PROFITEZ_DU_PROGRAMME_PARRAINAGE = 'Pour profiter du programme de parrainage et envoyez des invitations à vos amis, connectez-vous à votre compte client :'\r\nexport const CLUB_PARRAINAGE_SUR_1ERE_COMMANDE = 'Sur leur 1ère commande d’une valeur minimum de 50€.'\r\nexport const CLUB_PARRAINGE_15E_EN_BON_DACHAT = '15€ en bon d\\u0027achat'\r\nexport const CLUB_PARRAINGE_20E = '20€'\r\nexport const CLUB_PARRAINGE_EN_BON_DACHAT = 'en bon\\u003cbr /\\u003ed\\u0027achat'\r\nexport const CLUB_PARRAINGE_POUR_VOUS = 'Pour vous,'\r\nexport const CLUB_PLACEZ_ARTICLE_AVEC_SHOPPING_TRANQUILLE = 'Placez le ou les articles dans le colis. Collez le code-barres sur le colis (par-dessus l’étiquette de livraison).'\r\nexport const CLUB_PLACEZ_ARTICLE_INTERNATIONNAL = 'Placez le ou les articles dans le colis.'\r\nexport const CLUB_PLACEZ_ARTICLE_SANS_SHOPPING_TRANQUILLE = 'Placez le ou les articles dans le colis. Pour un retour via Mondial Relay, collez le code-barres sur le colis (par-dessus l’étiquette de livraison).'\r\nexport const CLUB_PORTES = '- Portés'\r\nexport const CLUB_PREPARER_COLIS_RETOUR = '2. Préparer votre colis de retour'\r\nexport const CLUB_PRODUITS_FETICHE = 'Mes Produits fétiches'\r\nexport const CLUB_PROFIL_FEMME = 'Profil femme'\r\nexport const CLUB_PROFIL_FILLE = 'Profil Fille'\r\nexport const CLUB_PROFIL_GARCON = 'Profil Garçon'\r\nexport const CLUB_PROFIL_HOMME = 'Profil homme'\r\nexport const CLUB_REFPRODUIT = 'Réf. Produit'\r\nexport const CLUB_RENDEZ_VOUS_SUR_MODZ = 'Rendez-vous sur modz.fr. Connectez-vous à votre compte pour accéder à la rubrique Mes retours.'\r\nexport const CLUB_RENSEIGNER_CODE_CARTE = 'Il vous suffit de renseigner ci-dessous le code inscrit au dos de la carte et vous serez immédiatement crédité du montant correspondant :'\r\nexport const CLUB_RESUME = 'Résumé'\r\nexport const CLUB_RETOUR_ACCUEIL_MON_COMPTE = 'Retourner à l\\u0027accueil de mon compte'\r\nexport const CLUB_RETOUR_AVEC_SHOPPING_TRANQUILLE = 'En France / Belgique avec l’option Shopping Tranquille.'\r\nexport const CLUB_RETOUR_INTERNATIONNAL = 'A l’international.'\r\nexport const CLUB_RETOUR_SANS_SHOPPING_TRANQUILLE = 'En France / Belgique sans l’option Shopping Tranquille.'\r\nexport const CLUB_RETOURNER_ARTICLE = 'Comment retourner un article ?'\r\nexport const CLUB_SALIS = '- Salis'\r\nexport const CLUB_SHOPPING_TRANQUILLE_FRAIS_DE_RETOUR = 'Grâce au Shopping Tranquille, les frais de retour sont pris en charge par Modz.'\r\nexport const CLUB_SOLDE_COMPTE = 'Solde du compte'\r\nexport const CLUB_SUIVI_DES_RETOURS = 'Suivi des retours'\r\nexport const CLUB_TELECHARGEZ_ET_IMPRIMEZ = 'Téléchargez et imprimez'\r\nexport const CLUB_UTILISES_DAUCUNE_MANIER = '- Utilisés d\\u0027aucune manière'\r\nexport const CLUB_VERIFIER_ETAT_ARTICLES = '1. Vérifier l\\u0027état des articles'\r\nexport const CLUB_VOTRE_COMPTE_MODZ_EST_CREDITE = 'Votre compte Modz est crédité d\\u0027un avoir dès réception du colis. Vous recevrez un email de confirmation lorsque votre avoir sera disponible sur votre compte.'\r\nexport const CLUB_VOTRE_DEMANDE_DE_RETOUR = 'Votre demande de retour'\r\nexport const CLUB_VOTRE_RETOUR_EST_ENGISTRE = 'Votre retour est enregistré !'\r\nexport const CLUB_VOUS_AVEZ_RECU_CARTE_CADEAU = 'Vous avez reçu une carte cadeau Modz et vous souhaitez vous faire plaisir ?'\r\nexport const CLUB_VOUS_RECEVREZ_UN_EMAIL_VOUS_CONFIRMANT_LA_RECEPTION = 'Vous recevrez un email vous confirmant la réception de votre colis et votre compte Modz sera instantanément crédité d’un avoir.'\r\nexport const COCHEZ_ARTCILES_SOUHAITEZ_RETOUR = 'Cochez le ou les articles que vous souhaitez renvoyer dans la rubrique \\\"Mes articles éligibles au retour\\\".'\r\nexport const CODE = 'Code'\r\nexport const CODE_POSTAL = 'Code Postal'\r\nexport const CODE_PROMO = 'Code promo'\r\nexport const CODEPOSTAL_ARNAS = '69400 Arnas'\r\nexport const COLORI = 'Coloris :'\r\nexport const COLORIS = 'Coloris'\r\nexport const COMMANDE = 'Commande'\r\nexport const COMMANDE_ATTENTE_MAJ = 'COMMANDE EN ATTENTE'\r\nexport const COMMANDE_ATTENTE_PAIEMENT = 'Vous avez une commande en attente de paiement'\r\nexport const COMMANDE_NUM = 'Commande n°'\r\nexport const COMMANDER_MAJ = 'COMMANDER'\r\nexport const COMPLEMENT_D_ADRESSE = 'Complément d\\u0027adresse'\r\nexport const COMPLEMENTADRESSE = 'Complément d\\u0027adresse'\r\nexport const COMPLETER_CE_PROFIL = 'Compléter ce profil'\r\nexport const COMPOSITION = 'Composition'\r\nexport const COMPTE = 'Compte'\r\nexport const CONFIRMATION_MAJ = 'CONFIRMATION'\r\nexport const CONFIRMATION_MOT_PASSE = 'Confirmation de mot de passe'\r\nexport const CONFIRMEZ_NOUVEAU_PASS = 'Confirmez votre nouveau mot de passe'\r\nexport const CONNECTEZ_VOUS_AVEC_VOTRE_COMPTE = 'Connectez-vous avec votre compte'\r\nexport const CONNECTEZ_VOUS_POUR_ECRIRE_MAIL = 'Pour nous écrire par mail, \\u003cspan style=\\\"text-decoration:underline;\\\" class=\\\"pink\\\"\\u003econnectez-vous ici\\u003c/span\\u003e.'\r\nexport const CONNECTEZ_VOUS_POUR_SUIVRE_MESSAGES = 'Connectez-vous pour voir le suivi de vos messages.'\r\nexport const CONNEXION = 'Connexion'\r\nexport const CONSTITUER_SOLIDEMENT_VOTRE_COLIS = 'Constituer solidement votre colis car la marchandise voyage à vos frais et périls.'\r\nexport const CONSULTEZ_HISTO_CMD = 'Consultez l\\u0027historique de vos commandes'\r\nexport const CONSULTEZ_SOLDE = 'Consultez votre solde d\\u0027avoir disponible'\r\nexport const CONTACT = 'Contact'\r\nexport const CONTACT_ADRESSE_POSTAL_MODZ = 'Adresse Postale de MODZ pour toutes correspondances :\\u003cbr /\\u003e(Courriers, envois de paiements, retours...)'\r\nexport const CONTACT_DE_9H_18H = 'de 9h à18h'\r\nexport const CONTACT_DU_LUNDI_VENDREDI = 'Du lundi au vendredi'\r\nexport const CONTACT_JOUR_DISPO = 'Lundi au Vendredi de 9H à 18H.'\r\nexport const CONTACT_LE_SC_DISPO = 'Le service client est disponible par téléphone du lundi au vendredi de 9h à 17h ou sur rendez-vous de 17h à 19h.'\r\nexport const CONTACT_PAR_COURRIER = 'Par courrier'\r\nexport const CONTACT_PAR_MESSAGERIE = 'Par messagerie'\r\nexport const CONTACT_PAR_TELEPHONE = 'Par téléphone'\r\nexport const CONTACT_POUR_VOS_RETOURS_PAIEMENT_COURRIERS = 'Pour vos courriers, envois de paiements, retours...'\r\nexport const CONTACT_SERVICE_CLIENT_DISPO = 'Le service client est disponible '\r\nexport const CONTACT_THEME_MESSAGE = 'Thème de votre message'\r\nexport const CONTACT_VOTRE_MESSAGE = 'Votre message'\r\nexport const CONTACTEZ_NOUS = 'Contactez-nous'\r\nexport const CONTACTEZ_NOUS_TELEPHONE = 'Contactez nous par téléphone :'\r\nexport const CONTACTSERVICECLIENT = 'Contactez notre service client : 0 892 186 818'\r\nexport const CONTINUER_MAJ = 'CONTINUER'\r\nexport const CONTINUER_MES_ACHATS = 'Continuer mon shopping'\r\nexport const CONTINUER_MON_SHOPPING = 'Continuer mon shopping'\r\nexport const COULEUR = 'Couleur'\r\nexport const COULEURS = 'Couleurs'\r\nexport const COULEURS_FAVORITES = 'Couleurs favorites'\r\nexport const COUP_DE_COEUR = 'Coup de coeur'\r\nexport const CREATIONALERTE = 'Créer votre alerte'\r\nexport const CREER_ALERTE = 'Créer votre alerte'\r\nexport const CREER_CE_PROFIL = 'Créer ce profil'\r\nexport const CREER_MON_COMPTE = 'Créer mon compte'\r\nexport const CREER_UN_COMPTE = 'Créer un compte'\r\nexport const CREER_UNE_ALERTE = 'CRÉER UNE ALERTE'\r\nexport const CREEZ_UNE_ALERTE = 'Créez une alerte'\r\nexport const CREEZ_VOTRE_ALERTE = 'Créez votre alerte !'\r\nexport const DANS_LE_CAS_RETOUR_MR = 'Dans le cas d\\u0027un retour par Mondial Relay, collez le code barre sur le colis, par dessus l\\u0027étiquette de livraison.'\r\nexport const DATE = 'Date'\r\nexport const DATE_COMMANDE_MAJ = 'DATE DE LA COMMANDE'\r\nexport const DATE_DE_COMMANDE = 'Date de la commande'\r\nexport const DATE_DE_NAISSANCE = 'Date de naissance'\r\nexport const DATE_EXPIRTATION = 'Date d\\u0027expiration'\r\nexport const DATE_FACTURE_MAJ = 'DATE DE LA FACTURE'\r\nexport const DATERETOUR = 'Date de retour'\r\nexport const DE = 'de'\r\nexport const DE_LA_MEME_MARQUE = 'De la même marque...'\r\nexport const DE_REDUCTION = 'de réduction'\r\nexport const DE_SPACE_MAJ = 'DE '\r\nexport const DE_STYLE = ' de style '\r\nexport const DECONOMIE = 'd\\u0027économie'\r\nexport const DECOUVREZ_LOFFRE_DU_MOMENT = 'Découvrez l\\u0027offre du moment :'\r\nexport const DECOUVRIR_ARTICLES_SIMILAIRES = 'Découvrir les articles similaires'\r\nexport const DECOUVRIR_CE_SERVICE = 'Découvrir ce service'\r\nexport const DECOUVRIR_LA_SUITE = 'Découvrir la suite'\r\nexport const DECOUVRIR_LOFFRE = 'Découvrir l\\u0027offre'\r\nexport const DECOUVRIR_LOOKBOOK = 'Découvrir le Lookbook'\r\nexport const DECOUVRIR_MA_SELECTION = 'Découvrir ma sélection'\r\nexport const DEDUISEZ_VOTRE_AVOIR = 'Déduisez votre avoir'\r\nexport const DEDUISEZ_VOTRE_AVOIR_DE = 'Je déduis mon avoir, montant total disponible de'\r\nexport const DEDUISEZ_VOTRE_AVOIR_PDESIGN_LIVRAISON = 'Je déduis mon avoir, montant total disponible de'\r\nexport const DEDUISEZ_VOTRE_BON_ACHAT_DE = 'Déduisez votre bon d\\u0027achat de'\r\nexport const DEDUISEZ_VOTRE_BON_ACHAT_PDESIGN_LIVRAISON = 'Je déduis mon bon d\\u0027achat, montant total disponible de'\r\nexport const DEFAULT_PROFILNAME = 'Votre nom...'\r\nexport const DEJA_CLIENT = 'Déjà client ?'\r\nexport const DELAI = 'Délai'\r\nexport const DEMAIN = 'demain'\r\nexport const DEMANDE_DE_RETOUR_ARTICLE = 'Demande de retour d\\u0027article'\r\nexport const DEMANDE_PARRAINAGE_PRIS_EN_COMPTE = 'Votre demande a bien été prise en compte'\r\nexport const DEMANDEZ_UN_REMBOURSEMENT = 'Demandez un remboursement'\r\nexport const DERNIERES_HEURES = 'Dernières heures'\r\nexport const DERNIERS_JOURS = 'Derniers jours'\r\nexport const DES_100E_DACHAT = 'dès 100€ d\\u0027achat'\r\nexport const DES_BOUTIQUES_DE_MODE = 'des boutiques de mode'\r\nexport const DES_QUESTIONS_ENVIES = 'Des questions, des envies ?'\r\nexport const DES_RECEPTION_DE_MON_COLIS = 'Dès réception de mon colis, le Service Retour crédite immédiatement mon compte Modz.'\r\nexport const DESACTIVE = 'Désactivé'\r\nexport const DESCRIPTION = 'DESCRIPTION'\r\nexport const DESCRIPTION_MODZ_ALERTE = 'Modz vous propose des articles de déstockage en provenance de boutiques de mode. Chaque article est une pièce quasi unique, disponible en quelques tailles seulement. Cette rareté nous permet de vous proposer des prix cassés toute l\\u0027année, même en dehors des soldes !'\r\nexport const DESCRIPTION_PROBLEME = 'Veuillez décrire votre problème :'\r\nexport const DESCRIPTION_UTILISATION_ALERTE = 'Pour être tenu(e) informé(e) par e-mail des arrivages correspondant à votre recherche, rien de plus simple !'\r\nexport const DESIGNATION = 'Désignation'\r\nexport const DESIGNATION_VENDEUR = 'Désignation vendeur'\r\nexport const DETAIL_COMMANDE = 'Détail de ma commande'\r\nexport const DETAILS = 'Détails'\r\nexport const DETAILS_DE_MA_COMMANDE = 'Détails de ma commande'\r\nexport const DETAILS_PROBLEME = 'Que s’est-il produit ? Donnez-nous les détails de votre problème.'\r\nexport const DIMANCHE = 'Dimanche'\r\nexport const DOMMAGE_EX = 'Dommage !'\r\nexport const DU = 'Du'\r\nexport const DUN_AVOIR_OU = 'd\\u0027un avoir ou'\r\nexport const DUN_REMBOURSEMENT = 'd\\u0027un remboursement'\r\nexport const ECONOMISEZ = 'économisez'\r\nexport const ECONOMISEZ_CATALOGUE = 'Économisez'\r\nexport const EFFACER_LES_FILTRES = 'Effacer les filtres'\r\nexport const EFFACER_TOUS_LES_FILTRES = 'Effacer tous les filtres'\r\nexport const EFFECTUEZ_UN_RETOUR = 'Effectuez un retour'\r\nexport const ELEGANTE_FP = 'élégantes'\r\nexport const EMAIL_COMPTE_CLIENT = 'Adresse email du compte client'\r\nexport const EMBALLAGE_CADEAU = 'Emballage Cadeau'\r\nexport const EN = 'En'\r\nexport const EN_BON_DACHAT = 'en bon d\\u0027achat'\r\nexport const EN_CLIQUANT_SUR_COMMANDER_JACCEPTE_LES_CGV = 'En cliquant sur Commander, j\\u0027accepte les \\u003ca href=\\\"/reassurance/cgv/\\\" target=\\\"_blank\\\" class=\\\"underline\\\"\\u003eConditions Générales de Vente\\u003c/a\\u003e.'\r\nexport const EN_CLIQUANT_SUR_VALIDER_VOUS_REVEREZ_NOS_NEWS = 'En cliquant sur VALIDER, vous recevrez\\u003cbr /\\u003enos actus et nos offres'\r\nexport const EN_DETAILS = 'En Détails'\r\nexport const EN_FONCTION_MODE_RETOUR = 'En fonction du mode de retour choisi (étape 1), déposez le colis dans un bureau de Poste ou en Point relais.'\r\nexport const EN_PISTE = 'Allez, hop, en piste.'\r\nexport const EN_RENSEIGNANT_DATE_ANNIVERSAIRE = 'En renseignant votre date d’anniversaire, nous ne manquerons pas de fêter ce bel évènement, comme il se doit !'\r\nexport const EN_SAVOIR_PLUSSYMBOLE = 'En savoir +'\r\nexport const EN_STOCK = 'EN STOCK'\r\nexport const EN_STOCK_EXPEDIE_24_H = 'En stock, Expédié en 24H'\r\nexport const EN_STOCK_LIVRE_LE = 'En stock, livré le'\r\nexport const ENCAISSE_RECEPTION = 'encaissé à réception'\r\nexport const ENCAISSE_RECEPTION_1MOIS = 'encaissé 1 mois après réception'\r\nexport const ENCAISSE_RECEPTION_2MOIS = 'encaissé 2 mois après réception'\r\nexport const ENCEMOMENT = 'En ce moment '\r\nexport const ENFANT = 'Enfant'\r\nexport const ENFANTS = 'Enfants'\r\nexport const ENFANTS_MAJ = 'ENFANTS'\r\nexport const ENGAGEMENTS = 'Engagements'\r\nexport const ENGAGEMENTSATISFACTION = 'Engagement Satisfaction'\r\nexport const ENREGISTRER = 'Enregistrer'\r\nexport const ENREGISTRER_MA_CARTE_CADEAU = 'Enregistrer ma carte cadeau'\r\nexport const ENREGISTRER_MODIFICATIONS = 'Enregistrer les modifications'\r\nexport const ENREGISTRER_NOUVEAU_PASS = 'Enregistrer mon nouveau mot de passe'\r\nexport const ENREGISTRERIBAN = 'Enregistrer mon IBAN'\r\nexport const ENSAVOIRPLUS = 'En savoir plus'\r\nexport const ENSEMBLE = 'Ensemble'\r\nexport const ENTRE = 'Entre'\r\nexport const ENVIRON_ABREGES_MIN = 'env.'\r\nexport const ENVOI_LIEN_CONEXION = '(un lien de connexion vous sera envoyé)'\r\nexport const ENVOYER = 'Envoyer'\r\nexport const ENVOYER_CHEQUE_ADRESSE = 'et de les envoyer à l\\u0027adresse suivante :'\r\nexport const ENVOYER_MA_DEMANDE = 'Envoyer ma demande'\r\nexport const ENVOYER_RAPPORT_INCIDENT = 'Envoyer le rapport d\\u0027incident'\r\nexport const ENVOYER_VOTRE_MESSAGE = 'Envoyer votre message'\r\nexport const EPUISE_LE_LE_VEUX = 'Epuisé, je le veux !'\r\nexport const ERREUR_TYPE_PIECE_JOINTE = 'Seulement les fichiers de type \\u0027.jpg\\u0027 , \\u0027.jpeg\\u0027, \\u0027.png\\u0027 et \\u0027.pdf\\u0027 sont autorisés'\r\nexport const EST_EN_COURS_DE_TRAITEMENT = 'est en cours de traitement. Un e-mail de confirmation vient également de vous être envoyé sur votre boîte mail'\r\nexport const ET = 'et'\r\nexport const ET_AUSSI = 'Et aussi ...'\r\nexport const ET_FAITES_PROFITER_DE_15E_DE_BA_A_VOS_FILLEULS = 'et faites profiter de 15€ de bon d’achat à vos filleuls !'\r\nexport const ET_SUIVEZ_NOTRE_ACTU = 'et suivez notre actualité shopping et bons plans !'\r\nexport const ET_TOUTE_LANNEE = 'et toute l\\u0027année'\r\nexport const ETAPES = 'Etapes'\r\nexport const ETAT = 'Etat'\r\nexport const ETAT_DES_ARTICLES = 'L\\u0027Etat du ou des articles'\r\nexport const ETAT_PARRAINAGE = 'Etat du parrainage'\r\nexport const EXCEPTIONNEL_LIVRAISON_OFFERTE = 'Exceptionnel : livraison offerte dès 100€ d\\u0027achat'\r\nexport const EXCEPTIONNELLE_LIVRAISON_1EURO = 'Exceptionnel : livraison à 1€ dès 50€ d\\u0027achat'\r\nexport const EXPEDIE_24_H = 'Expédié en 24h'\r\nexport const EXPEDIE_EN = 'Expédié en'\r\nexport const EXPEDIER_COLIS_MAJ = 'EXPEDIER VOTRE COLIS'\r\nexport const EXPEDITION_EN_24H_MAJ = 'EXPEDITION EN 24 H'\r\nexport const EXPEDITION_IMMEDIATE = 'EXPÉDITION IMMÉDIATE'\r\nexport const EXPEDITION_RAPIDE = 'Expédition rapide'\r\nexport const EXPEDITION_RAPIDE_MAJ = 'EXPÉDITION RAPIDE'\r\nexport const EXPIRE_LE = 'Expire le'\r\nexport const FACTURE = 'Facture'\r\nexport const FACTURE_CONDITIONSGENERALES_MAJ = 'CONDITIONS GENERALES :'\r\nexport const FACTURE_CONDITIONSGENERALES_TXT = 'Les conditions Générales de vente applicables à votre commande acceptées lors de l\\u0027enregistrement sont disponibles sur simple demande auprès du vendeur.'\r\nexport const FACTURE_INFOS_DE_FACTURATION = 'Informations de Facturation'\r\nexport const FACTURE_INFOS_DE_LIVRAISON = 'Informations de Livraison'\r\nexport const FACTURE_LOI_RETOUR = 'Conformément à l\\u0027article L.121-20 et suivants du Code de la Consommation, vous disposez d\\u0027un délai de 7 jours à compter de la date de livraison de votre commande pour retourner tout article ne convenant pas. L\\u0027exercice de ce droit de rétractation est LIBRE sans avoir à justifier de motif ni à payer de pénalités. Les modalités précises de retour sont indiquées dans les conditions générales de vente de chaque vendeur.'\r\nexport const FACTURE_MODE_EXPEDITION = 'Mode d\\u0027expédition'\r\nexport const FACTURE_TYPE_PAIEMENT = 'Type de paiement'\r\nexport const FAMILLES = 'Famille(s) :'\r\nexport const FAMILLESMOB = 'Familles'\r\nexport const FAVORIS = 'Favoris'\r\nexport const FDP_A_MAJ = 'FRAIS DE PORT À'\r\nexport const FDP_OFFERTS_AVEC_MR_A_PARTIR_DE_MAJ = 'FRAIS DE PORT OFFERTS AVEC MONDIAL RELAY À PARTIR DE'\r\nexport const FEMME = 'Femme'\r\nexport const FEMME_MAJ = 'FEMME'\r\nexport const FERME = 'Fermé'\r\nexport const FERMER_MAJ = 'FERMER'\r\nexport const FILLE = 'Fille'\r\nexport const FILLE_MAJ = 'FILLE'\r\nexport const FILLES = 'Filles'\r\nexport const FILTRECATEGORIE = 'Sous-catégories'\r\nexport const FILTRECOULEUR = 'Couleurs'\r\nexport const FILTREFAMILLE = 'Catégories'\r\nexport const FILTREMARQUE = 'Marques'\r\nexport const FILTRER = 'Filtrer'\r\nexport const FILTRER_ET_TRIER = 'Filtrer et trier'\r\nexport const FILTRES = 'Filtres'\r\nexport const FILTRES_SELECTIONNES = 'Filtres sélectionnés :'\r\nexport const FOOTNEWS_RECEVEZ_TOUTES_NOS_OFFRES = 'Recevez toutes nos offres, coups de coeur et nouveautés par mail en vous inscrivant à notre newsletter :'\r\nexport const FRAIS_LIVRAISON_ÉSTIMÉS_AVEC = 'Frais de livraison estimés avec'\r\nexport const FRAIS_LIVRAISON_ÉSTIMÉS_MR = 'Frais de port estimés Mondial Relay'\r\nexport const FRAISDELIVRAISON = 'Frais de livraison'\r\nexport const FRAISDEPORT = 'Frais de Port'\r\nexport const FRAISPORTOFFERT_PRODUIT = 'En ce moment,\\u003cstrong class=\\\"pink\\\"\\u003efrais de port offerts dès {0} €\\u003c/strong\\u003e avec Mondial Relay sur tout le site'\r\nexport const FRAISPORTREDUIT_PRODUIT = 'En ce moment,\\u003cstrong class=\\\"pink\\\"\\u003efrais de port à {0} € dès {1} €\\u003c/strong\\u003e avec Mondial Relay sur tout le site'\r\nexport const FRANCE = 'France'\r\nexport const FRANCE_METROPOLITAINE = 'France métropolitaine'\r\nexport const GAGNEZ = 'Gagnez'\r\nexport const GARANTI = 'Garanti'\r\nexport const GARANTIE_100_MOINS_CHER = 'Garantie 100% moins cher'\r\nexport const GARANTIE_AVANT_NOEL = 'Garantie avant Noël'\r\nexport const GARANTIE_AVANT_REVEILLON = 'Garantie avant le Réveillon'\r\nexport const GARANTIE_MOINS_CHER_MAJ = 'GARANTIE MOINS CHER'\r\nexport const GARANTIE_SATISFAIT_OU_REMBOURSE = 'Garantie satisfait ou remboursé'\r\nexport const GARANTIE_SATISFAIT_OU_REMBOURSE_MAJ = 'GARANTIE SATISFAIT OU REMBOURSÉ'\r\nexport const GARCON = 'Garçon'\r\nexport const GARCON_MAJ = 'GARÇON'\r\nexport const GARCONS = 'Garçons'\r\nexport const GERER_ADRESSES_FACTU_LIV = 'Gérer mes adresses de livraison\\r\\n'\r\nexport const GERER_MES_ALERTES = 'Mes alertes nouveautés'\r\nexport const GERER_MES_PREFERENCES = 'Gérer mes préférences'\r\nexport const GERER_MON_PROFIL_ET_MES_TAILLES = 'Gérer mon profil et mes tailles'\r\nexport const GEREZ_MES_PREFERENCES = 'Gérez mes préférences \\u003e'\r\nexport const GEREZ_VOS_ADRESSES = 'Gérez vos adresses de livraison et de facturation'\r\nexport const GO_MAJ = 'GO !'\r\nexport const GO_TOP_MAJ = 'HAUT'\r\nexport const GRATUIT = 'Gratuit'\r\nexport const GUIDE_DENIM_PARFAIT = 'Guide du denim parfait'\r\nexport const GUIDER_CHERCHER_PRODUITS = 'C\\u0027est décidé, je me laisse guider ! Parce que oui, c\\u0027est pas facile de chercher parmi plus de 200.000 produits en stock, Modz s\\u0027occupe de me dénicher la perle rare... Allez, hop, en piste.'\r\nexport const GUIDER_CHERCHER_PRODUITS_RETOUR_LIGNE = 'C\\u0027est décidé, je me laisse guider ! Parce que oui, c\\u0027est pas facile de chercher parmi plus de 200.000 produits en stock, Modz s\\u0027occupe de me dénicher la perle rare...'\r\nexport const HAUT = 'Haut'\r\nexport const HAUTS = 'Hauts'\r\nexport const HAUTS_MAJ = 'HAUTS'\r\nexport const HOMME = 'Homme'\r\nexport const HOMME_MAJ = 'HOMME'\r\nexport const IDEE_CADEAU = 'New'\r\nexport const IDENTIFICATION_MAJ = 'IDENTIFICATION'\r\nexport const IL_NE_VOUS_RESTE_PLUS_QUE = 'Il ne vous reste plus que'\r\nexport const IL_RESTE_PLUS_QUE = 'Il ne vous reste plus que'\r\nexport const IMAGE_PRODUIT = 'Image Produit'\r\nexport const IMPASSE_CHAVANNE = '1, Impasse De Chavanne - ZAC De Chavanne'\r\nexport const IMPORTANT = 'Important'\r\nexport const IMPR_BON_RETOUR_MAJ = 'IMPRIMER LE BON DE RETOUR'\r\nexport const IMPRIMER_FACTURE_MAJ = 'IMPRIMER LA FACTURE'\r\nexport const IMPRIMER_LE_BORDEREAU_DE_RETOUR = 'Imprimer le bordereau de retour'\r\nexport const IMPRIMER_MAJ = 'IMPRIMER'\r\nexport const IMPRIMEZ_BON_RETOUR = 'Imprimez votre bon de retour.'\r\nexport const INDIQUER_MAJ = 'INDIQUER'\r\nexport const INSCRIPTION = 'Inscription'\r\nexport const INSCRIRE_EMAIL = 'Veuillez inscrire votre adresse mail :'\r\nexport const INSCRIVANT_RECEVOIR_OFFRES = 'En vous inscrivant, vous recevrez les meilleures offres et les promotions Modz.fr'\r\nexport const INTEMPORELLE_FP = 'intemporelles'\r\nexport const JACCEPTE = 'J\\u0027accepte'\r\nexport const JAI = 'J\\u0027ai'\r\nexport const JAI_DEJA_COMPTE_CLIENT = 'J\\u0027ai déjà un compte client'\r\nexport const JAI_UN_COMPTE = 'J\\u0027ai un compte'\r\nexport const JAIME_ET_JE_PARTAGE = 'J\\u0027aime et je partage'\r\nexport const JE_CHERCHE_POUR = 'Je cherche pour :'\r\nexport const JE_CRAQUE = 'JE CRAQUE !'\r\nexport const JE_DECOUVRE = 'Je découvre'\r\nexport const JE_LE_VEUX_MAJ = 'JE LE VEUX !'\r\nexport const JE_MABONNE = 'Je m\\u0027abonne'\r\nexport const JE_ME_CONNECTE_A_MON_COMPTE = 'Je me connecte à Mon compte \\u003e Mes retours et je suis la procédure de retour.'\r\nexport const JE_PARRAINE = 'Je parraine'\r\nexport const JE_REEXPEDIE_LE_COLIS_AVEC_LE_TRANSPORTEUR = 'Je réexpédie le colis avec le transporteur de mon choix : Colissimo, Mondial Relay...'\r\nexport const JE_RENSEIGNE_LES_TAILLES = 'Je renseigne les tailles :'\r\nexport const JE_SELECTIONNE_MA_CARTE_PAIEMENT = 'Je sélectionne ma carte de paiement :'\r\nexport const JE_SHOPPE_MAJ = 'JE SHOPPE !'\r\nexport const JE_SOUHAITE = 'Je souhaite'\r\nexport const JE_SUIS_NOUVEAU_CLIENT = 'Je suis nouveau client'\r\nexport const JE_VALIDE = 'JE VALIDE'\r\nexport const JECONOMISE = 'J\\u0027économise'\r\nexport const JEN_PROFITE = 'J\\u0027en profite'\r\nexport const JEN_PROFITE_MAJ = 'J\\u0027EN PROFITE'\r\nexport const JESOUHAITEQUONMEREMBOURSE = 'Je souhaite qu\\u0027on me rembourse'\r\nexport const JEUDI = 'Jeudi'\r\nexport const JOURS = 'jours'\r\nexport const JUSTE_POUR_MOI_OH_OUI_JE_MINSCRIS = 'juste pour moi ? Oh oui, je m\\u0027inscris !'\r\nexport const JY_VAIS = 'J\\u0027y vais !'\r\nexport const L_ENVOI_SE_FAIT_EN_24H = 'L\\u0027envoi se fait en 24H'\r\nexport const LA_COMMUNAUTE_MAJ = 'LA COMMUNAUTÉ'\r\nexport const LADRESSE_DE_RETOUR = 'L\\u0027adresse de retour'\r\nexport const LADRESSE_INDIQUER_COLIS = 'L\\u0027adresse à indiquer sur votre colis est :'\r\nexport const LE_LES_ARTICLES_NE_DOIVENT = 'Le ou les articles ne doivent ni :'\r\nexport const LE_LES_ARTICLES_PLIES_EMBALLAGE_ORIGINE = 'Le ou les articles doivent etre pliés dans leur emballage d\\u0027origine'\r\nexport const LE_MIN = 'le'\r\nexport const LE_PARRAINAGE_CHEZ_MODZ = 'Le Parrainage chez Modz'\r\nexport const LE_PRODUIT_NE_CONVIENT_PAS = 'Le produit ne me convient pas : je le remets dans son sachet rose.'\r\nexport const LES_CHAUSSURES_DE_LA_SAISON = 'LES CHAUSSURES DE LA SAISON'\r\nexport const LES_DERNIRES_ARRIVAGES_MAJ = 'LES DERNIERS ARRIVAGES'\r\nexport const LES_FACTURES_SONT_EN_EUROS = 'Les factures sont libellées en Euros.'\r\nexport const LES_MARQUES_A_LA_UNE = 'Les marques à la une'\r\nexport const LES_PLUS_BELLES_PEPITES_EN_SOLDES = 'Les plus belles pépites en soldes'\r\nexport const LIB_POPUP_PAIEMENT_CB = 'Merci de renseigner les informations suivantes pour vérifier votre éligibilité au paiement en'\r\nexport const LIENGUIDETAILLES = 'Guide des tailles'\r\nexport const LINGERIE = 'Lingerie'\r\nexport const LIVRAISON = 'LIVRAISON'\r\nexport const LIVRAISON_A = 'Livraison à'\r\nexport const LIVRAISON_A_DOMICILE_EXPRESS = 'Livraison à domicile express'\r\nexport const LIVRAISON_A_DOMICILE_STANDARD = 'Livraison à domicile standard'\r\nexport const LIVRAISON_EN_RELAIS_EXPRESS = 'Livraison en relais express'\r\nexport const LIVRAISON_EN_RELAIS_STANDARD = 'Livraison en relais standard'\r\nexport const LIVRAISON_EXPRESS_GARANTIE_AVANT_NOEL = 'Livraison express garantie avant Noël'\r\nexport const LIVRAISON_EXPRESS_POINT_RELAIS = 'Livraison EXPRESS en point relais'\r\nexport const LIVRAISON_GARANTIE_AVANT_NOEL = 'Livraison garantie avant Noël'\r\nexport const LIVRAISON_GARANTIE_AVANT_NOEL_AVEC_CHRONOPOST = 'Livraison garantie avant Noël avec Chronopost'\r\nexport const LIVRAISON_GARANTIE_AVANT_REVEILLON_AVEC_CHRONOPOST = 'Livraison garantie avant le Réveillon avec Chronopost'\r\nexport const LIVRAISON_GRATUITE_DES = 'Livraison gratuite dès'\r\nexport const LIVRAISON_GRATUITE_DES_100 = 'Livraison gratuite dès 100€ d\\u0027achat'\r\nexport const LIVRAISON_MIN = 'livraison'\r\nexport const LIVRAISON_OFFERTE = 'Livraison offerte'\r\nexport const LIVRAISON_OFFERTE_DES_100 = 'Livraison offerte dès 100€'\r\nexport const LIVRAISON_OFFERTE_MAJ = 'LIVRAISON OFFERTE'\r\nexport const LIVRAISON_PAIEMENT_MAJ = 'Livraison et Paiement'\r\nexport const LIVRAISON_PAIEMENT_RETOUR = 'Livraison, paiement et retour'\r\nexport const LIVRAISON_PREVUE = 'Livraison prévue'\r\nexport const LIVRER_AUTRE_ADRESSE_MAJ = 'LIVRER À UNE AUTRE ADRESSE'\r\nexport const LOOKBOOK = 'Lookbook'\r\nexport const LOOKBOOK_MAJ = 'LOOKBOOK'\r\nexport const LUNDI = 'Lundi'\r\nexport const LUNDI_AU_VENDREDI = 'lundi au vendredi'\r\nexport const LUXE = 'LUXE'\r\nexport const LUXE_FP = 'luxe'\r\nexport const M = 'M'\r\nexport const M_DOT = 'M.'\r\nexport const MA_COMMANDE = 'Ma commande'\r\nexport const MAINTENANT_MAJ = 'MAINTENANT !'\r\nexport const MARDI = 'mardi'\r\nexport const MARIAGE_CEREMONIE = 'Mariage et cérémonies'\r\nexport const MARQUE = 'Marque'\r\nexport const MARQUES = 'Marques'\r\nexport const MARQUES_DE_MODE_PAS_CHER = 'Marques de mode pas cher'\r\nexport const MARQUES_PREFEREES = 'Marques préférées'\r\nexport const MARQUESUNE = 'Marques à la une'\r\nexport const MASQUER_LES_HORAIRES = 'Masquer les horaires'\r\nexport const MATIERES = 'Matières'\r\nexport const MDP_ACTUEL = 'Mot de Passe actuel'\r\nexport const MDP_CONFIRMER = 'Confirmer le mot de passe'\r\nexport const MDP_NOUVEAU = 'Nouveau mot de passe'\r\nexport const ME_CONNECTER = 'Me connecter'\r\nexport const ME_DECONNECTER = 'Me déconnecter'\r\nexport const ME_MIN = 'me'\r\nexport const MERCI_PRECISER_DEFAUT = 'Merci de préciser le défaut :'\r\nexport const MERCI_PRECISER_ENDROIT_DECHIERE = 'Merci de préciser à quel endroit l\\u0027article est déchiré'\r\nexport const MERCI_PRECISER_ERREUR = 'Merci de préciser l\\u0027erreur :'\r\nexport const MERCIMODZ = 'Merci Modz !'\r\nexport const MERCREDI = 'Mercredi'\r\nexport const MES_ALERTES = 'Mes alertes'\r\nexport const MES_ALERTES_NOUVEAUTES = 'Mes alertes nouveautés'\r\nexport const MES_BONS_PARRAINAGE = 'Mes bons de parrainage'\r\nexport const MES_FAVORIS = 'Mes favoris'\r\nexport const MES_FILLEULS = 'Mes filleuls'\r\nexport const MES_INFOS_FACTURATION = 'Mes informations de facturation'\r\nexport const MES_INFOS_PERSONNELLES = 'Mes infos personnelles'\r\nexport const MES_INFOS_PERSOS = 'Gérer mon compte'\r\nexport const MES_TAILLES = 'Mes tailles'\r\nexport const MESSAGERIE = 'Messagerie'\r\nexport const MESSAGES = 'Messages'\r\nexport const MODIFIER = 'Modifier'\r\nexport const MODIFIER_ADRESSE = '\\u003e\\u003e modifier'\r\nexport const MODIFIER_ADRESSE_LIVRAISON = 'Modifier mon adresse de livraison'\r\nexport const MODIFIER_CE_PROFIL = 'Modifier ce profil'\r\nexport const MODIFIER_LE_CP = 'Modifier le code postal'\r\nexport const MODIFIER_MES_COULEURS_ET_MES_MARQUES = 'Modifier mes couleurs et mes marques'\r\nexport const MODIFIER_MES_TAILLES = 'Modifier mes tailles'\r\nexport const MODIFIEZ_ADRESSES_PERSOS = 'Vous pouvez modifier ci-dessous à tout moment vos données personnelles: vos coordonnées, email et mot de passe.'\r\nexport const MODZ = 'Modz'\r\nexport const MODZ_AVIS = 'MODZ Avis'\r\nexport const MODZ_REMBOURSE_10_FOIS_LA_DIFF = 'Modz rembourse 10 fois la différence'\r\nexport const MOINS_50_SUR_TOUT_LE_SITE_MAJ = '-50% SUR TOUT LE SITE'\r\nexport const MON_ADRESSE_LIVRAISON = 'Mon adresse de livraison'\r\nexport const MON_COMPTE = 'Mon compte'\r\nexport const MON_PANIER = 'Mon Panier'\r\nexport const MON_PANIER_MAJ = 'MON PANIER'\r\nexport const MON_PROFIL = 'Mon profil'\r\nexport const MON_PROFIL_ET_MES_TAILLES = 'Mon profil et mes tailles'\r\nexport const MON_SHOPPING_PERSONNALISE = 'Mon shopping personnalisé'\r\nexport const MONTANT = 'Montant'\r\nexport const MONTANT_COMMANDE = 'Montant de ma commande'\r\nexport const MONTANT_INITIAL = 'Montant initial'\r\nexport const MONTANT_MINI_ACHAT = 'Montant minimum d\\u0027achat'\r\nexport const MONTANT_PAYE = 'Montant Payé'\r\nexport const MONTANT_RESTANT = 'Montant restant'\r\nexport const MONTANT_TOTAL = 'Montant Total'\r\nexport const MONTANTTVA = 'Montant TVA'\r\nexport const MOT_PASSE = 'Mot de passe'\r\nexport const MOT_PASSE_OUBLIE = 'Mot de passe oublié ?'\r\nexport const MOTIF = 'Motif'\r\nexport const N1_DU_DESTOCKAGE = 'N°1 du déstockage'\r\nexport const NATURE_MESSAGE = 'Nature de votre message'\r\nexport const NATURE_PROBLEME = 'La nature de votre problème : souci de connexion, problème sur votre panier, erreur de serveur…'\r\nexport const NAVIGATION = 'Navigation'\r\nexport const NAVIGATION_PRECEDENT = '\\u003c\\u003c Précédent '\r\nexport const NAVIGATION_RETOUR_LISTE = '\\u003c\\u003c RETOUR À LA LISTE'\r\nexport const NAVIGATION_SUIVANT = ' Suivant \\u003e\\u003e'\r\nexport const NB_ARTICLES_CONCERNES_RETOUR = 'Nombre d\\u0027articles concernés par le retour :'\r\nexport const NBR_TAILLES_UTILISÉES = 'Les tailles de votre profil ont été utilisées pour cette alerte.'\r\nexport const NE_ETRANGER_COCHEZ = 'Né(e) à l\\u0027étranger, cochez ici :'\r\nexport const NEST_DESORMAIS_PLUS_DISPO = 'n\\u0027est désormais plus disponible.'\r\nexport const NEUFH_DIXHUITH = '9h à 18h'\r\nexport const NEW = 'New'\r\nexport const NEWSDESTYLE = 'News de style'\r\nexport const NI_ETRE_SALI = '- Ni être sali'\r\nexport const NI_LAVE = '- Ni lavé'\r\nexport const NI_REPASSE = '- Ni repassé'\r\nexport const NOM = 'Nom'\r\nexport const NOM_TITULAIRE_CARTE = 'Nom du titulaire de la carte'\r\nexport const NON = 'Non'\r\nexport const NON_MERCI_PLUS_TARD = 'Non merci, plus tard'\r\nexport const NON_RENSEIGNEES = 'Non renseignées'\r\nexport const NOS_ARRIVAGES_MAJ = 'NOS ARRIVAGES'\r\nexport const NOS_CLIENTS_RECOMMANDENT_MODZ = 'Nos clients recommandent Modz'\r\nexport const NOS_MARQUES = 'Nos marques'\r\nexport const NOS_MARQUES_SELECTIONNEES = 'Nos marques sélectionnées'\r\nexport const NOS_PLUS_BEAUX_PULLS_JACQUARD = 'Nos plus beaux pulls en jacquard'\r\nexport const NOS_SUGGESTIONS = 'Nos suggestions'\r\nexport const NOSASTUCES = 'Nos astuces'\r\nexport const NOTRE_SERVICE_CLIENT_EST_A_VOTRE_ECOUTE = 'Notre service client est à votre écoute du'\r\nexport const NOUS_ENVERRONS_LIEN_RÉINITIALISER_MOT_PASSE = 'Nous vous enverrons par e-mail un lien qui vous permettra de réinitialiser votre mot de passe.'\r\nexport const NOUS_ESPERONS_AVOIR = 'Nous espèrons avoir bientôt de vos nouvelles !'\r\nexport const NOUVEAU_CLIENT = 'Nouveau client ?'\r\nexport const NOUVEAU_MAJ = 'NOUVEAU'\r\nexport const NOUVEAU_SERVICE_CLICK_COLLECT = 'Notre nouveau service Click \\u0026 Collect !'\r\nexport const NOUVEAUTES = 'Nouveautés'\r\nexport const NOUVEAUTES_AH_50 = 'Nouveautés Automne-Hiver à -50%'\r\nexport const NOUVEAUTES_COLOREES = 'Nouveautés colorées !'\r\nexport const NOUVEAUX_ARRIVAGES = 'Soyez le 1er informé des nouveaux arrivages'\r\nexport const NUM_FACTURE_MAJ = 'N° DE FACTURE'\r\nexport const NUMENVOI = 'Numéro d\\u0027envoi'\r\nexport const NUMERO_TELEPHONE_TRANSPORTEUR_INFORME = 'Votre numéro de téléphone permettra au transporteur de vous tenir informé'\r\nexport const NUMRETOUR = 'N° de retour'\r\nexport const OFFERT = 'Offert'\r\nexport const OFFERT_MAJ = 'OFFERT'\r\nexport const OFFERTE = 'offerte'\r\nexport const OFFRE_SPECIALE = 'OFFRE SPECIALE'\r\nexport const OFFREZ_LEUR = 'Offrez leur'\r\nexport const OFFRIR_CARTE_CADEAU = 'Offrir la carte cadeau'\r\nexport const OFFRIR_UNE_CARTE = 'Offrir une carte'\r\nexport const OHLALA_JE_CRAQUE_MAJ = 'OH LA LA, JE CRAQUE !'\r\nexport const OHNON = 'Oh non :('\r\nexport const OK = 'OK'\r\nexport const ORIGINAL_FP = 'originales'\r\nexport const OU = 'ou'\r\nexport const OU_PAR_TELEPHONE = 'ou par téléphone au'\r\nexport const OUI = 'Oui'\r\nexport const PAIEMENT = 'PAIEMENT'\r\nexport const PAIEMENT_3X_4X_CB = 'Paiement en 3X ou 4X CB'\r\nexport const PAIEMENT_3X_OU_4X_CB = 'Paiement en 3x ou 4x CB'\r\nexport const PAIEMENT_ANNULE_MAJ = 'PAIEMENT ANNULÉ'\r\nexport const PAIEMENT_MAJ = 'PAIEMENT'\r\nexport const PAIEMENT_REFUSE_MAJ = 'PAIEMENT REFUSÉ'\r\nexport const PAIEMENT_SECURISE = 'Paiement sécurisé'\r\nexport const PAIEMENT_SECURISE_MAJ = 'PAIEMENT SÉCURISÉ'\r\nexport const PANIER = 'Panier'\r\nexport const PANIER_MAJ = 'PANIER'\r\nexport const PARRAINAGE_CINQEUROS_BONACHAT = '5 € en bon d\\u0027achat'\r\nexport const PARRAINAGE_DES_PREMIER_ACHAT_AMI = 'Dès le premier achat de l\\u0027un(e) de vos ami(e)s, vous bénéficiez d\\u0027un bon d\\u0027achat de'\r\nexport const PARRAINAGE_EMAIL_FILLEUL_1 = 'Adresse email du 1er filleul'\r\nexport const PARRAINAGE_EMAIL_FILLEUL_2 = 'Adresse email du 2ème filleul'\r\nexport const PARRAINAGE_EMAIL_FILLEUL_3 = 'Adresse email du 3ème filleul'\r\nexport const PARRAINAGE_EN_PARRAINANT_VOS_AMIES = 'En parrainant vos ami(e)s, vous leur offrez'\r\nexport const PARRAINAGE_PARRAINEZ_VOS_AMIS = 'Parrainez vos ami(e)s en inscrivant ci-dessous leurs adresses mails :'\r\nexport const PARRAINAGE_PARRAINEZ_VOS_AMIS_ENOYANT_INVITATION = 'Parrainez-vos ami(s) en leur envoyant une invitation.'\r\nexport const PARRAINAGE_POUR_LEUR_PREMIERE_COMMANDE = 'pour leur(s) première commande. Validité : 3 mois à partir de l\\u0027inscription et dès 50 € d\\u0027achat.'\r\nexport const PARRAINAGE_SAISISSEZ_EMAIL_FILLEUL = 'Saisissez l\\u0027email de votre filleul'\r\nexport const PARRAINER = 'Parrainez !'\r\nexport const PARRAINER_AMIS = 'Parrainer mes amis'\r\nexport const PARRAINER_UN_AMI = 'Parrainer un ami'\r\nexport const PARRAINEZ_VOS_AMIS_GAGNEZ_20E = 'Parrainez vos amis, gagnez 20€'\r\nexport const PARRAINEZ_VOS_PROCHES = 'Parrainez vos proches'\r\nexport const PARTENARIAT = 'Partenariat'\r\nexport const PAS_DE_BLABLA = 'Pas de blabla, que des promos !'\r\nexport const PAS_VOTRE_TAILLE = 'Il n\\u0027y a pas votre taille'\r\nexport const PASSEE_LE = 'Passée le'\r\nexport const PAYER_AVEC_CETTE_CARTE = 'Payer avec cette carte'\r\nexport const PAYER_CETTE_COMMANDE = 'Payer cette commande'\r\nexport const PAYPAL = 'Paypal'\r\nexport const PAYS = 'Pays'\r\nexport const PERSONNAL_SHOPPING = 'Personnal shopping'\r\nexport const PHOTO = 'Photo'\r\nexport const PLACEZ_LES_ARTICLES = 'Placez le ou les articles ainsi que le bon de retour dans le colis.'\r\nexport const PLIE_EMBALLAGE_ORIGINE = '- Plié dans son emballage d\\u0027origine'\r\nexport const PLUS_DE_11000_POINT_RELAIS_AU_CHOIX = 'Plus de 11 000 points relais au choix'\r\nexport const PLUS_DE_6000_POINT_RELAIS_AU_CHOIX = 'Plus de 7 000 points relais au choix.'\r\nexport const PLUS_DE_FILTRES = 'Plus de filtres'\r\nexport const POINT_RELAIS_STANDARD = 'Point relais standard'\r\nexport const POINTURES = 'Pointures'\r\nexport const POPUP_RETOUR_CHOIX_MODE_EXPE = 'Choisissez le mode d\\u0027expédition de votre retour'\r\nexport const POPUP_RETOUR_COUT = 'Coût :'\r\nexport const POPUP_RETOUR_SHOPPING_TRANQUILLE = 'Vous bénéficiez de l\\u0027option Shopping tranquille, votre retour est gratuit ! Sélectionnez un point Mondial Relay.'\r\nexport const PORTABLE = 'Portable'\r\nexport const POUR = 'pour'\r\nexport const POUR_BENEFICIER_DE_LA = 'pour bénéficier de la'\r\nexport const POUR_BENEFICIER_DE_LA_LIVRAISON_GRATUITE = 'pour bénéficier de la livraison gratuite.'\r\nexport const POUR_ENFANTS_MAJ = 'POUR ENFANTS'\r\nexport const POUR_ETRE_FACTURE_MODIFIER = 'Pour être facturé à une autre adresse, veuillez modifier vos informations'\r\nexport const POUR_ETRE_LIVRE_DEMAIN = 'pour être livré demain !'\r\nexport const POUR_ETRE_LIVRE_DEMAIN_AVEC_CHRONOPOST = 'pour être livré demain avec Chronopost !'\r\nexport const POUR_ETRE_LIVRER_MODIFIER_LIVRAISON = 'Pour être livrer à une autre adresse, veuillez modifier vos informations'\r\nexport const POUR_FEMME_MAJ = 'POUR FEMME'\r\nexport const POUR_HOMME_MAJ = 'POUR HOMME'\r\nexport const POUR_SAISIR_MANUELLEMENT_VOTRE_ADRESSE = 'pour saisir manuellement votre adresse'\r\nexport const PREFERENCES = 'Préférences'\r\nexport const PRENOM = 'Prénom'\r\nexport const PREPARER_MAJ = 'PREPARER'\r\nexport const PRESTATAIRE = 'Prestataire'\r\nexport const PRIX = 'Prix'\r\nexport const PRIX_BOUTIQUE = 'Prix boutique'\r\nexport const PRIX_BOUTIQUE_CATALOGUE = 'Prix Boutique : '\r\nexport const PRIX_MODZ_CATALOGUE = 'Prix Modz '\r\nexport const PRIX_TOTAL_MAJ = 'PRIX TOTAL'\r\nexport const PRIX_UNITAIRE_MAJ = 'PRIX UNITAIRE'\r\nexport const PRIXSERVICECLIENT = '0,35 cts/min'\r\nexport const PROBLEME_TECHNIQUE_CONNEXION = 'Si votre problème technique n’est pas un problème de connexion, nos techniciens vous apporteront une solution personnalisée dans les plus brefs délais.'\r\nexport const PRODUIT = 'Produit'\r\nexport const PRODUIT_EPUISE = 'Produit épuisé'\r\nexport const PRODUITS = 'Produits'\r\nexport const PROFILE = 'Profile'\r\nexport const PROLONGATION_JUSQU_AU = 'PROLONGATION JUSQU\\u0027AU 24.05.19'\r\nexport const PROMO = 'Promo'\r\nexport const PROMO_CATALOGUE = 'Promotion'\r\nexport const PROMOS = 'Promos'\r\nexport const PROMOTION = 'Promotion'\r\nexport const QTE_MAJ = 'QTE'\r\nexport const QUANTITE_LIMITEE = 'Quantité limitée'\r\nexport const QUATORZE_JOURS_POUR_RENVOYER_VOS_ARTICLES = '14 jours pour renvoyer vos articles.'\r\nexport const QUATRE_JOURS_SEULEMENT = '4 JOURS SEULEMENT !'\r\nexport const QUEL_NAVIGATEUR = 'Quel est votre navigateur ? (Google Chrome, Internet Explorer, Mozilla Firefox…)'\r\nexport const QUINZE_EUROS = '15€'\r\nexport const QUOIDENEUF = 'Quoi de neuf ?'\r\nexport const RAPPEL_CRITERES_ALERTE = 'Rappel de vos critères d\\u0027alerte :'\r\nexport const RAPPORT_ENVOI_MAIL = 'Un mail vient de vous êtes envoyé. Il contient un lien qui pourra résoudre un éventuel problème de connexion.'\r\nexport const RAPPORT_INCIDENT_EMAIL_INCORRECT = 'L\\u0027email renseigné ne correspond à aucun compte client.'\r\nexport const RAPPORT_INCIDENT_SOUMIS = 'Votre demande a bien été envoyée.'\r\nexport const RECEVOIR_TOUTES_NOS_ACTUS_OFFRES = 'Recevoir toutes nos actus et nos offres'\r\nexport const RECHERCHER = 'Rechercher'\r\nexport const RECHERCHER_UNE_MARQUE = 'Rechercher une marque...'\r\nexport const RECOMMANDATION_PRODUIT = 'Recommandation produit'\r\nexport const REDUCTION = 'Réduction'\r\nexport const REF = 'Réf'\r\nexport const REF_CLIENT_MAJ = 'REFERENCE CLIENT'\r\nexport const REF_COMMANDE_MAJ = 'REFERENCE COMMANDE'\r\nexport const REF_MODELE = 'Ref Modèle'\r\nexport const REF_PRODUIT = 'Ref Produit'\r\nexport const REFERENCE = 'Référence'\r\nexport const REFERENCE_CLIENT = 'Référence client :'\r\nexport const REFERENCE_NUMBER = 'Référence n°'\r\nexport const REINITIALISER = 'Réinitialiser'\r\nexport const REINITIALISEZ_VOTRE_PASSWORD = 'Réinitialisez votre mot de passe : '\r\nexport const REJOIGNEZ_COMMU_FACEBOOK = 'Rejoignez la communauté Facebook'\r\nexport const REMBOURSE_2X = 'remboursé 2x'\r\nexport const REMBOURSEMENT_DIFFERENCE = 'nous vous remboursons la différence'\r\nexport const REMBOURSEMENTENCOURS = 'Remboursement en cours'\r\nexport const REMISES = 'Remises'\r\nexport const RENSEIGNEZ_LES_TAILLES_MAJ = 'RENSEIGNEZ LES TAILLES'\r\nexport const RESTANTDUTTC = 'Restant dû TTC'\r\nexport const RESTE_A_PAYER = 'Reste à payer'\r\nexport const RESULTAT = 'Résultat'\r\nexport const RESULTATS = 'Résultats :'\r\nexport const RESULTATS_DE_VOTRE_RECHERCHE = 'Resultats de votre recherche'\r\nexport const RESULTATS_TROUVES = 'Résultats trouvés'\r\nexport const RETOUR = 'RETOUR'\r\nexport const RETOUR_A_TOUS_MES_PROFILS = 'Retour à tous mes profils'\r\nexport const RETOUR_ADRESSER_MAJ = 'RETOURS A ADRESSER A :'\r\nexport const RETOUR_DESPOSER_POINT_MR = 'RETOUR A DEPOSER AU POINT MONDIAL RELAY:'\r\nexport const RETOUR_FACILE_SANS_CONDITION = 'Retour facile sans condition'\r\nexport const RETOUR_FACILE_SANS_CONDITION_MAJ = 'RETOUR FACILE SANS CONDITION'\r\nexport const RETOUR_HAUT_DE_PAGE = 'Retour haut de page'\r\nexport const RETOUR_HAUT_DE_PAGE_MAJ = 'RETOUR HAUT DE PAGE'\r\nexport const RETOUR_PAGE_ACCUEIL = 'Retour à la page d\\u0027accueil'\r\nexport const RETOURNER_ARTICLE_FACE = 'RETOURNER UN ARTICLE C\\u0027EST FACILE ET RAPIDE EN 5 ÉTAPES'\r\nexport const RETOURNERUNARTICLE = 'Retourner un article'\r\nexport const RETROUVEZ_ARTICLES_SELECTION_PERSO = 'Retrouvez tous vos articles de votre sélection personnalisée.'\r\nexport const RETROUVEZ_INFOS_PERSOS_COMDES = 'Retrouvez toutes les informations sur vos données personnelles et vos commandes.'\r\nexport const ROCK_FP = 'Rock \\u0026 Denim'\r\nexport const SABONNER_A_LA_NEWS = 'S\\u0027abonner à la newsletter'\r\nexport const SACS_ACCESSOIRES_MAJ = 'SACS \\u0026 ACCESSOIRES'\r\nexport const SAISIE_EMAIL = 'Saisissez votre adresse e-mail'\r\nexport const SAISIEIBAN = 'Saisie de votre IBAN :'\r\nexport const SAISIR_LE_CODE = 'Saisir le code'\r\nexport const SAISISSEZ_ADRESSE_MAIL = 'Saisissez votre adresse mail'\r\nexport const SAISISSEZ_MAIL_CLIQUEZ_CONTINUER = 'Saisissez l’adresse e-mail que vous utilisez habituellement pour vous connecter à Modz et cliquez sur continuer.'\r\nexport const SAISISSEZ_NOUVEAU_PASS = 'Saisissez votre nouveau mot de passe'\r\nexport const SAMEDI = 'Samedi'\r\nexport const SAUVEGARDER = 'Sauvegarder'\r\nexport const SE_SOUVENIR_MOI = 'Se souvenir de moi'\r\nexport const SELECTION_CADEAUX_POUR_ELLE = 'Sélection cadeaux pour elle'\r\nexport const SELECTION_CADEAUX_POUR_LUI = 'Sélection cadeaux pour lui'\r\nexport const SELECTION_PERSONNALISEE = 'Ma sélection personnalisée'\r\nexport const SELECTIONNER_COULEUR_FILTRES = 'Sélectionner une couleur'\r\nexport const SELECTIONNEZ_POINT_RELAIS = 'Sélectionnez un point relais'\r\nexport const SELECTIONNEZ_VILLE = 'Sélectionnez votre ville'\r\nexport const SELECTIONNEZ_VOTRE_POINT_CHRONOPOST = 'Sélectionnez votre point Chronopost'\r\nexport const SELECTIONNEZ_VOTRE_POINT_RELAY = 'Sélectionnez votre point Mondial Relay.'\r\nexport const SELECTIONNEZ_VOTRE_TAILLE = 'Sélectionnez votre taille'\r\nexport const SELECTIONS_SPECIALES = 'Sélections Spéciales'\r\nexport const SERVER_SECURISE = 'SERVEUR SÉCURISÉ'\r\nexport const SERVEUR_SÉCURISE = 'SERVEUR SÉCURISÉ'\r\nexport const SERVICE_CLIENT = 'SERVICE CLIENT'\r\nexport const SERVICE_CLIENT_DISPONIBLE = 'Le service client est disponible du :'\r\nexport const SERVICE_CLIENT_HORAIRE = 'Lundi au Vendredi de 9H00 à 18H00.'\r\nexport const SERVICE_MARKETING = 'Service marketing'\r\nexport const SESAME_OUVRE_TOI = 'Sésame ouvre toi'\r\nexport const SHOOPING_TRANQUILLE = 'Shopping tranquille'\r\nexport const SI_VOUS_AVEZ_UN_CODE_PROMO = 'Si vous avez un code promotionnel, veuillez le saisir ici :'\r\nexport const SI_VOUS_NE_RECEVEZ_PAS = 'Si vous ne recevez pas cet e-mail, vérifiez alors vos courriers indésirables ou contactez l’un de nos conseillers au 0892 186 818 (0,35€/min)'\r\nexport const SI_VOUS_SOUHAITEZ_ANNULER_VOTRE_COMMANDE = 'Si vous souhaitez annuler votre commande, merci de le signaler au service client en'\r\nexport const SI_VOUS_SOUHAITEZ_REGLER_VOTRE_COMMANDE = 'Si vous souhaitez régler votre commande par un autre moyen de paiement, cliquez sur'\r\nexport const SOLDES = 'Soldes'\r\nexport const SOLDESAVOIRS = 'Solde des avoirs'\r\nexport const SOLDESBONSACHAT = 'Solde des bons d\\u0027achat'\r\nexport const SOUHAITEZ_RECEVOIR_OFFRES = 'Souhaitez-vous également recevoir les offres de partenaire de Modz :'\r\nexport const SOUS_48H = 'sous 48H'\r\nexport const SOUS_CATEGORIE = 'Sous-catégorie'\r\nexport const SOUS_TOTAL_ACHATS = 'Sous Total des achats ..................'\r\nexport const SOUSCATEGORIES = 'Sous-catégories'\r\nexport const SOUSTOTALTTC = 'Sous-total TTC'\r\nexport const SOYEZ_INFORME_DE_LETAT_DES_CMDES = 'Soyez informé de l\\u0027état d\\u0027avancement des commandes que vous avez réalisées, consultez l\\u0027historique de vos commandes, imprimez vos factures ou annulez une commande en cours.'\r\nexport const SOYEZ_INFORME_DES_NOUVEAUTES_DE_LA_MARQUE = 'Soyez informé en avant-première des nouveautés de la marque !'\r\nexport const SPORT = 'Sport'\r\nexport const SPORTSWEAR_FP = 'sportswear'\r\nexport const STATUT = 'Statut'\r\nexport const SUIVANT = 'Suivant'\r\nexport const SUIVANT_MAJ = 'SUIVANT'\r\nexport const SUIVEZ_NOUS = 'Suivez-nous'\r\nexport const SUIVEZ_STATU_CMD = 'Suivez le statut de votre commande en cours'\r\nexport const SUIVEZ_VOS_RETOURS = 'Suivez vos retours'\r\nexport const SUIVI_DE_LIVRAISON = 'Suivi de livraison'\r\nexport const SUIVI_DE_MES_CMDES = 'Suivi de mes commandes'\r\nexport const SUIVI_DES_MESSAGES = 'Suivi des messages'\r\nexport const SUIVRE_MES_RETOURS = 'Retourner un article'\r\nexport const SUPP = 'supp.'\r\nexport const SUPPRIMER = 'Supprimer'\r\nexport const SUPPRIMER_ARTICLE_PANIER = 'Supprimer un article du panier'\r\nexport const SUPPRIMER_LA_SELECTION = 'Supprimer la sélection'\r\nexport const SUPPRIMER_SELECTION = 'Supprimer ma sélection'\r\nexport const SUR_VOTRE_COLIS = 'sur votre colis'\r\nexport const T_DOT = 'T.'\r\nexport const TAILLE = 'Taille'\r\nexport const TAILLE_BAS = 'Tailles de bas'\r\nexport const TAILLE_CONVERTIE_SELON_STANDARD = '*Taille convertie selon les standards de tailles françaises.'\r\nexport const TAILLE_ETIQUETTE = 'Taille étiquette'\r\nexport const TAILLE_HAUT = 'Tailles de haut'\r\nexport const TAILLE_MARUE_ETIQUETEE_PRODUIT = '** Taille de la marque étiquetée sur le produit.'\r\nexport const TAILLE_MAXIMUM_PIECE_JOINTE_1MO = 'La taille maximum pour votre pièce jointe ne doit pas dépasser 1 Mo'\r\nexport const TAILLEDISPO_PRODUIT = 'Taille(s) Disponible(s)'\r\nexport const TAILLEDISPO_PRODUIT_SING = 'Taille Disponible'\r\nexport const TAILLEFRANCAISE = 'Taille\\u003cbr /\\u003eFrançaise'\r\nexport const TAILLEMARQUE = 'Taille(s) Étiquette'\r\nexport const TAILLES = 'Tailles'\r\nexport const TAILLES_DE = 'Taille de'\r\nexport const TAILLES_DE_BIS = 'Tailles de'\r\nexport const TAILLES_DISPOS = 'Tailles disponibles'\r\nexport const TAILLES_PRODUIT_DISPO_CATALOGUE = 'Tailles dispo : '\r\nexport const TAILLES_SELECTIONNEES = 'taille(s) sélectionnée(s)'\r\nexport const TAILLESDISPOS_PRODUIT = 'Tailles disponibles'\r\nexport const TARIFTTC = 'Tarif TTC'\r\nexport const TELECHARGEZ_IMPRIMER_BORDEREAU_RETOUR_MAJ = 'TELECHARGEZ ET IMPRIMEZ LE BORDEREAU DE RETOUR A JOINDRE DANS VOTRE COLIS'\r\nexport const TELECOPIE = 'Télécopie'\r\nexport const TELEPHONE = 'Téléphone'\r\nexport const TENDANCE_FP = 'tendances'\r\nexport const TENUES_DE_FETES = 'Tenues de fêtes'\r\nexport const TEST13M_CHEZ_MODZ_CEST_LA_JUNGLE = 'Chez Modz, \\u003cspan class=\\\"visible-xs\\\"\\u003e\\u003c/span\\u003ec’est un peu la jungle'\r\nexport const TEST13M_ET_POUR_FINIR_LA_POINTURE = '... et pour finir la pointure !'\r\nexport const TEST13M_ETAPE = 'Étape'\r\nexport const TEST13M_ETAPE_SUIVANTE = 'Suivant'\r\nexport const TEST13M_JAMELIORE_MON_EXP_ACHAT = 'J\\u0027améliore mon expérience d\\u0027achat'\r\nexport const TEST13M_JE_CHERCHE_POUR = 'Je cherche pour :'\r\nexport const TEST13M_JE_SELECTIONNE_TAILLE = 'Je sélectionne la taille de'\r\nexport const TEST13M_LA_TAILLE_DE_BAS = '... la taille de bas'\r\nexport const TEST13M_MON_PROFIL_PERSO = 'Mon profil personnalisé'\r\nexport const TEST13M_NE_PERDEZ_PAS_DE_VUE_VOS_BONNES_AFFAIRES = 'Ne perdez pas de vue vos bonnes affaires, et rentrez immédiatement votre profil en moins \\u003cstrong\\u003eDE 30 SECONDES.\\u003c/strong\\u003e'\r\nexport const TEST13M_SI_ON_REPERE_DES_PETITS_PRIX = 'Si on repère toujours des petits prix, c’est en cherchant sa taille que l’on peut s’y perdre.'\r\nexport const TEST23M_AMELIO_EXP_ACHAT = 'Améliorez votre \\u003cspan class=\\\"visible-xs\\\"\\u003e\\u003c/span\\u003eexpérience d\\u0027achat'\r\nexport const TEST23M_CEST_PARTI = 'C\\u0027est parti !'\r\nexport const TEST23M_ET_POUR_FINIR = '... \\u003cspan class=\\\"visible-xs\\\"\\u003e\\u003c/span\\u003eet pour finir !'\r\nexport const TEST23M_ET_POUR_LES_PANTALONS = '... \\u003cspan class=\\\"visible-xs\\\"\\u003e\\u003c/span\\u003eet pour les pantalons ?'\r\nexport const TEST23M_MA_POINTURE = 'Ma pointure est :'\r\nexport const TEST23M_MA_TAILLE_DE_HAUT = 'Ma taille de haut est :'\r\nexport const TEST23M_MA_TAILLE_EST = 'Ma taille est :'\r\nexport const TEST23M_SELECTIONNEZ_VOS_INFOS_DE_PROFIL = 'Sélectionnez vos \\u003cspan class=\\\"visible-xs\\\"\\u003e\\u003c/span\\u003einformations de profil'\r\nexport const TEST33M_CHEZ_MODZ_CHAQUE_PRODUIT_EST_UNIQUE = 'Chez Modz, chaque produit est unique.'\r\nexport const TEST33M_SELECTIONNEZ_VOS_TAILLES = 'Sélectionnez vos tailles\\u003cbr /\\u003epour faire des trouvailles !'\r\nexport const TEST43M_POINTURE_DE_CHAUSSURES = 'Pointure de\\u003cspan class=\\\"visible-xs\\\"\\u003e\\u003c/span\\u003e chaussures :'\r\nexport const TEST43M_TAILLE_POUR_LE_BAS = 'Taille pour le bas :'\r\nexport const TEST43M_TAILLE_POUR_LE_HAUT = 'Taille pour le haut :'\r\nexport const TEST43M_VOUS_RECHERCHEZ_POUR = 'Vous recherchez pour :'\r\nexport const TEST73M_POINTURE = 'Pointure'\r\nexport const TEST73M_TAILLE_DE_BAS = 'Taille de bas'\r\nexport const TEST73M_TAILLE_DE_HAUT = 'Taille de haut'\r\nexport const TOP_DES_MARQUES = 'Top des marques'\r\nexport const TOTAL_A_PAYER = 'Total à payer'\r\nexport const TOTAL_ÉCONOMISE = 'Total économisé'\r\nexport const TOTAL_MAJ = 'TOTAL : '\r\nexport const TOTAL_REGLER = 'Total à régler'\r\nexport const TOTALARTICLESTTC = 'Total Articles TTC'\r\nexport const TOTALHT = 'Total HT'\r\nexport const TOTALTTC = 'Total TTC'\r\nexport const TOUS_GENRES = 'Tous les genres'\r\nexport const TOUS_LES_BAS = 'Tous les bas'\r\nexport const TOUS_LES_HAUTS = 'Tous les hauts'\r\nexport const TOUS_PAYS = 'Tous les pays'\r\nexport const TOUTES_LES_CHAUSSURES = 'Toutes les chaussures'\r\nexport const TOUTES_LES_COULEURS = 'Toutes les couleurs'\r\nexport const TOUTES_NOS_MARQUES = 'Toutes nos marques'\r\nexport const TRANSPORTEUR = 'Transporteur'\r\nexport const TRIER_PAR = 'Trier par'\r\nexport const TROP_DARTICLES = 'Trop d\\u0027articles ? Faites le tri !'\r\nexport const TROP_TARD = 'Trop tard !'\r\nexport const TTC = 'TTC'\r\nexport const TYPE = 'Type'\r\nexport const UN_CADEAU_POUR_ELLE = 'Un cadeau pour elle'\r\nexport const UN_CADEAU_POUR_LUI = 'Un cadeau pour lui'\r\nexport const UN_EMAIL_ÉTÉ_ENVOYE = 'Un e-mail a été envoyé à l\\u0027adresse suivante : '\r\nexport const UN_ZESTE_DE_PROMO_EN_PLUS_MAJ = 'UN ZESTE DE PROMO EN PLUS'\r\nexport const UNE_ALERTE_SUR_LES_NOUVEAUTES_DE = 'Une alerte sur les nouveautés de'\r\nexport const UNIVERS = 'Univers :'\r\nexport const UNIVERS0 = 'Univers'\r\nexport const UTILISATION_EMAIL_COMPTE = 'Votre adresse mail doit correspondre celle utilisée pour votre compte.'\r\nexport const UTILISER_AUTRE_CARTE = 'Utiliser une autre carte'\r\nexport const UTILISER_CODE_PROMO = 'Vous avez un code promo ? Cliquez ici !'\r\nexport const VALIDER = 'valider'\r\nexport const VALIDER_DEMANDE_RETOUR = 'Valider ma demande de retour'\r\nexport const VALIDER_ET_CONTINUER = 'Valider et continuer'\r\nexport const VALIDER_MON_PANIER = 'Valider mon panier'\r\nexport const VALIDER_MON_RETOUR = 'Valider mon retour'\r\nexport const VENDREDI = 'Vendredi'\r\nexport const VERIFIER_MAJ = 'VERIFIER'\r\nexport const VERIFIER_SPAM = 'Vous n\\u0027avez rien reçu ? Pensez à vérifier vos spams !'\r\nexport const VETEMENTS_FEMME = 'Vêtements femme'\r\nexport const VETEMENTS_FILLE = 'Vêtements fille'\r\nexport const VETEMENTS_GARCON = 'Vêtements garçon'\r\nexport const VETEMENTS_HOMME = 'Vêtements homme'\r\nexport const VEUILLEZ_CLIQUER_POUR_CONNECTER = 'Veuillez cliquer ici pour vous connecter'\r\nexport const VEUILLEZ_MODIFIER_VOS_TAILLES = 'Veuillez modifier vos tailles'\r\nexport const VEUILLEZ_SELECTIONNER_TAILLES = 'Veuillez sélectionner ou modifier vos tailles'\r\nexport const VIGNETTE_PRODUIT = 'Vignette Produit'\r\nexport const VILLE = 'Ville'\r\nexport const VINGT_EUROS = '20€'\r\nexport const VIREMENT_BANCAIRE = 'Virement bancaire'\r\nexport const VITE_JE_SHOPPE_MAJ = 'VITE, JE SHOPPE !'\r\nexport const VOIR_ARTICLE = 'VOIR L\\u0027ARTICLE'\r\nexport const VOIR_CADEAUX_MODE_MAJ = 'VOIR CADEAUX MODE'\r\nexport const VOIR_CONDITIONS_PARRAINAGE = 'Voir les conditions de parrainage \\u003e'\r\nexport const VOIR_LA_MARQUE = 'Voir la marque'\r\nexport const VOIR_LA_MARQUE_MAJ = 'VOIR LA MARQUE'\r\nexport const VOIR_LA_SELECTION = 'Voir la sélection'\r\nexport const VOIR_LA_SUITE = 'Voir la suite'\r\nexport const VOIR_LES = 'Voir les'\r\nexport const VOIR_LES_HORAIRES = 'Voir les horaires'\r\nexport const VOIR_LOOKBOOK = 'Voir le lookbook'\r\nexport const VOIR_MA_SELECTION = 'Voir ma sélection'\r\nexport const VOIR_MA_SELECTION_PERSO = 'Voir ma sélection personnalisée'\r\nexport const VOIR_MES_COMMANDES = 'Suivre mes commandes'\r\nexport const VOIR_MON_COMPTE = 'VOIR MON COMPTE'\r\nexport const VOIR_MON_PANIER = 'Voir mon panier'\r\nexport const VOIR_SELECTION_VINS_MAJ = 'VOIR SÉLECTION VINS'\r\nexport const VOIR_TOUS_ARTICLES = 'Voir tous les articles'\r\nexport const VOIR_TOUT = 'Voir tout'\r\nexport const VOIR_TOUTE_MA_SELECTION = 'Voir toute ma sélection \\u003e'\r\nexport const VOIR_TOUTES_LES_MARQUES = 'Voir toutes les marques'\r\nexport const VOIRVOS = 'VOIR VOS'\r\nexport const VOS = 'Vos'\r\nexport const VOS_CARTES_PAIEMENT = 'Vos cartes de paiement'\r\nexport const VOS_COMS_PARTICULIERS_SUR_CE_RETOUR = 'Vos commentaires particuliers sur ce retour :'\r\nexport const VOS_DONNES_PROTEGEES = 'Vos données protégées'\r\nexport const VOS_FILLEULS = 'Vos filleuls'\r\nexport const VOS_SPACE = 'Vos '\r\nexport const VOS_TAILLES = 'Vos tailles'\r\nexport const VOTRE_ADRESSE_EMAIL = 'Votre adresse email'\r\nexport const VOTRE_ADRESSE_MAIL = 'Votre adresse mail'\r\nexport const VOTRE_ADRESSE_NEST_PAS_REPERTORIEE = 'Votre adresse n\\u0027est pas répertoriée ?'\r\nexport const VOTRE_CMD_SERA_EXPEDIEE = 'Votre commande sera expédiée dès réception de votre règlement.'\r\nexport const VOTRE_COLIS_RETOUR = 'Votre colis de retour'\r\nexport const VOTRE_COMMANDE = 'Votre commande'\r\nexport const VOTRE_CP_DE_NAISSANCE = 'Votre code postal de naissance :'\r\nexport const VOTRE_DRESSING_VA_ADORER_NOTRE_NOTRE_NEWS = 'Votre dressing va adorer notre newsletter !'\r\nexport const VOTRE_NOM_DE_NAISSANCE = 'Votre nom de naissance :'\r\nexport const VOTRE_PAIEMENT_A_ETE_ANNULE = 'Votre paiement a été annulé.'\r\nexport const VOTRE_PAIEMENT_A_ETE_REFUSE = 'Votre paiement a été refusé.'\r\nexport const VOTRE_PARRAIN = 'Votre parrain :'\r\nexport const VOTRE_PASS_A_ETE_RESET = 'Votre mot de passe a été réinitialisé.'\r\nexport const VOTRE_REF_CLIENT = 'Votre référence client :'\r\nexport const VOTRE_SELECTION_PERSO = 'Votre sélection personnalisée'\r\nexport const VOTRE_SHOPPING = 'Votre shopping uniquement sur des articles dans votre taille grâce au profil.'\r\nexport const VOTRETAILLE = 'Votre taille'\r\nexport const VOUS = 'Vous'\r\nexport const VOUS_ADOREZ = 'Vous adorez'\r\nexport const VOUS_AIMEREZ_SUREMENT = 'Vous aimerez sûrement'\r\nexport const VOUS_AVEZ = 'Vous avez'\r\nexport const VOUS_AVEZ_AJOUTER_PANIER = 'Cet article a bien été ajouté à votre panier'\r\nexport const VOUS_AVEZ_ECONOMISE = 'Vous avez économisé'\r\nexport const VOUS_AVEZ_QUITTE_PAGE_PAIEMENT = 'Vous avez quitté la page de paiement. Votre commande sera expédiée une fois que le paiement sera finalisé.'\r\nexport const VOUS_AVEZ_RECU_CARTE_CADEAU = 'Vous avez reçu une carte cadeau Modz et vous souhaitez l’utiliser.'\r\nexport const VOUS_BENEFICIEZ_DE = 'Vous bénéficiez de'\r\nexport const VOUS_CONNECTEZ_CODE_PROMO = 'Un code promo? Connectez-vous !'\r\nexport const VOUS_DEVEZ_CHOISIR_POINT_RELAY = 'Vous devez choisir un point relais pour la livraison avant d\\u0027accéder au paiement.'\r\nexport const VOUS_NAVEZ_PAS_DE_MESSAGES = 'Vous n\\u0027avez pas de message.'\r\nexport const VOUS_POUVEZ_BENEFICIER_DE = 'Vous pouvez bénéficier de'\r\nexport const VOUS_POUVEZ_REGLER_VOTRE_COMMANDE = 'Vous pouvez régler votre commande à l\\u0027aide d\\u0027un autre moyen de paiement.'\r\nexport const VOUS_POUVEZ_SUIVRE_COMMANDE = 'Vous pouvez suivre l\\u0027évolution de votre commande à partir de l\\u0027onglet Mon compte.'\r\nexport const VOUS_RECEVREZ_PAR_MAIL = 'Vous recevrez par e-mail tous les nouveaux produits correspondant à vos critères dès leur mise en ligne.'\r\nexport const VOUS_TROUVEREZ_LA_PROCEDURE_RETOUR = 'Vous trouverez ci-après la procédure de retour à bien respecter.'\r\nexport const VOUS_UTILISEZ_LAVOIR_POUR_UN_PROCHAIN_ACHAT = 'Vous utilisez l\\u0027avoir pour un prochain achat ou vous demandez le remboursement : c\\u0027est vous qui choisissez !'\r\nexport const X_PERSONNES_ONT_AJOUTE_AUX_FAVORIS = 'personnes ont ajouté ce produit à leur favoris.'\r\nexport const ZOOM_SUR_MARQUES = 'Zoom sur les marques'\r\n\r\n\r\n","'use strict'\r\n\r\n/**\r\n * Pop up 3M\r\n */\r\n\r\nimport selectorPanel from 'Modules/selectorPanel'\r\nimport profileCookie from 'Modules/profileCookie'\r\nimport tooltips from 'Modules/tooltips'\r\nimport {\r\n TAILLE,\r\n TAILLES,\r\n TAILLES_DE,\r\n HAUT,\r\n BAS,\r\n POINTURES,\r\n CHAUSSURES,\r\n AGE,\r\n AGES,\r\n VEUILLEZ_SELECTIONNER_TAILLES\r\n} from 'Modules/Resources/Label'\r\nimport url from 'Modules/url'\r\nimport modal from 'Modules/modal'\r\nimport validationForm from 'Modules/validationForm'\r\n\r\nconst J_BUTTON_SUBMIT = '.j_submit3MPlus'\r\nconst J_BORDER_SELECTED = '.j_borderSelected'\r\nconst J_LIST_CATEGORY = '.j_listCategory'\r\nconst J_GENDER_DATA = 'category'\r\nconst C_ACTIVE_SELECTOR = '.active'\r\nconst J_URL = '.j_url'\r\nconst J_TYPE_MODULE_DATA = 'type'\r\nconst J_FORM_3MPLUS = '.j_form3MPlus'\r\nconst J_PROFILE_GENDER_DATA = 'profilegender'\r\nconst J_PANEL_ITEM = '.j_panelItem'\r\nconst C_BUTTON_STYLE_OFF = 'goBtn-disabled'\r\nconst C_BUTTON_STYLE_ON = 'goBtn'\r\nconst C_CLASS_PINK_BUTTON = 'btn-empty'\r\nconst J_TOOLTIP_TRIGGER = '.j_3mPlusToolTipTrigger'\r\nconst J_FAMILY_DATA = 'family'\r\nconst J_TRIGGER_DATA = 'count'\r\nconst J_MUST_LOAD_DATA = 'mustload'\r\nconst J_LINKFEMME_DATA = 'linkfemme'\r\nconst J_LINKHOMME_DATA = 'linkhomme'\r\nconst J_LINKGARCON_DATA = 'linkgarcon'\r\nconst J_LINKFILLE_DATA = 'linkfille'\r\nconst J_LINK_DATA = 'link'\r\nconst J_ACCORDION_3M = '.j_accordion3M'\r\nconst setEnableEvent = switch3MPlus\r\nconst C_ARROW = ' '\r\nconst C_ARROW2ROTATE =\r\n ''\r\nconst setDisableEvent = setOnClickToolTip\r\n/*\r\n * Fonction qui va lancer tous le process du 3m+\r\n */\r\nfunction process() {\r\n $(document).ready(function () {\r\n $('.modaltest3m10')\r\n .parents('.mm-page')\r\n .siblings('.modal-backdrop')\r\n .addClass('zindex')\r\n })\r\n\r\n /* Lazyload img */\r\n $('.bloc3M .j_listCategory').click(function () {\r\n const imgArray = document.querySelectorAll('.lazyload-3m')\r\n\r\n for (let i = 0; i < imgArray.length; i++) {\r\n const img = imgArray[i]\r\n\r\n if (img.getAttribute('data-src')) {\r\n img.src = img.getAttribute('data-src')\r\n img.removeAttribute('data-src')\r\n }\r\n }\r\n })\r\n\r\n $('.jfinalstep').mouseup(function () {\r\n profileCookie.init()\r\n const cookie = profileCookie.getCurrentProfile()\r\n const genre = cookie.gender\r\n window.location.href =\r\n url.deleteParams('np', window.location.href) + '?cg=' + genre\r\n })\r\n $('#modaltest3m10 .j_listCategory').on('click', function () {\r\n selectorPanel.showPanel(this)\r\n $('.j_genreSelector').hide()\r\n $('.j_panelItems').fadeIn()\r\n })\r\n $('#modaltest3m10 .j_tailleshaut .checkbox-t3m').on('click', function () {\r\n $('.j_tailleshaut').hide()\r\n $('.j_taillesbas').fadeIn()\r\n })\r\n $('#modaltest3m10 .j_taillesbas .checkbox-t3m').on('click', function () {\r\n $('.j_taillesbas').hide()\r\n $('.j_tailleschaussure').fadeIn()\r\n })\r\n $('#modaltest3m10 .j_taillesage .checkbox-t3m').on('click', function () {\r\n $('.j_taillesage').hide()\r\n $('.j_tailleschaussure').fadeIn()\r\n })\r\n $('#modaltest3m10 .j_tailleschaussure .checkbox-t3m').on(\r\n 'click',\r\n function () {\r\n $('.j_tailleschaussure').hide()\r\n $('.j_taillesorigin').hide()\r\n $('.blocmail3m').fadeIn()\r\n }\r\n )\r\n\r\n // Enregistrement du mail du client dans la pop-up du 3M\r\n\r\n const J_VALIDATION_BUTTON_3M = '.btnvalidemail3m'\r\n const J_FORM_NEWSLETTER_3M = '.j_form_newsletter_3m'\r\n const J_EMAIL_NAME = 'j_email'\r\n const J_ACTION_DATA = 'action'\r\n const C_GREEN = 'green'\r\n const C_RED = 'red'\r\n const C_BLACK = 'black'\r\n /*\r\n * Set l'event click sur le bouton de validation de la newsletter\r\n *\r\n */\r\n\r\n $(J_FORM_NEWSLETTER_3M).on('submit', function () {\r\n const form = $(this)\r\n\r\n $(J_VALIDATION_BUTTON_3M).attr('disabled', true)\r\n validationForm.process(\r\n function (content) {\r\n // Callback de réussite\r\n $(\"input[name='\" + J_EMAIL_NAME + \"']\").val(content.Message)\r\n manageStyleForNewsletterError(content)\r\n eraseColorForNewsLetter()\r\n profileCookie.saveCookie()\r\n\r\n const cookie = profileCookie.getCurrentProfile()\r\n const genre = cookie.gender\r\n\r\n if ($(J_VALIDATION_BUTTON_3M).hasClass('j_test_modal3M')) {\r\n $('.j_message_capital').show()\r\n $('.email3m').css('margin-top', '30px')\r\n $(J_VALIDATION_BUTTON_3M).hide()\r\n $('.j_close_modal3M').show()\r\n } else {\r\n window.location.href =\r\n url.deleteParams('np', window.location.href) +\r\n '?cg=' +\r\n genre\r\n }\r\n },\r\n function (content) {\r\n // Callback si échec. C'est la même que la réussite : l'erreur est mis dans le champ email\r\n $(\"input[name='\" + J_EMAIL_NAME + \"']\").val(content.Message)\r\n manageStyleForNewsletterError(content)\r\n eraseColorForNewsLetter()\r\n $(J_VALIDATION_BUTTON_3M).attr('disabled', false)\r\n },\r\n function (msg) {\r\n // Callback exécuter si l'email n'a pas le bon format\r\n const content = {\r\n // Dans le cas du mail incorrect, on est pas passé dans l'ajax, il faut donc ajouter les éléments permettant de gérer les erreurs manuellement\r\n Error: true,\r\n CssClass: C_RED,\r\n Message: msg\r\n }\r\n $(\"input[name='\" + J_EMAIL_NAME + \"']\").val(content.Message)\r\n manageStyleForNewsletterError(content)\r\n eraseColorForNewsLetter()\r\n $(J_VALIDATION_BUTTON_3M).attr('disabled', false)\r\n },\r\n $(form).data(J_ACTION_DATA), // Le controller à appeler\r\n form\r\n )\r\n\r\n return false\r\n })\r\n\r\n /*\r\n * Va gérer les styles CSS à appliquer au champ newsletter selon le message\r\n */\r\n function manageStyleForNewsletterError(content) {\r\n if (content.CssClass == C_GREEN) {\r\n $(\"input[name='\" + J_EMAIL_NAME + \"']\").addClass(C_GREEN)\r\n }\r\n if (content.CssClass == C_BLACK) {\r\n $(\"input[name='\" + J_EMAIL_NAME + \"']\").addClass(C_BLACK)\r\n }\r\n if (content.CssClass == C_RED) {\r\n $(\"input[name='\" + J_EMAIL_NAME + \"']\").addClass(C_RED)\r\n }\r\n }\r\n\r\n /*\r\n * Va effacer les couleurs des champs emails quand on tape dedans\r\n */\r\n function eraseColorForNewsLetter() {\r\n $(\"input[name='\" + J_EMAIL_NAME + \"']\").on('focus', function (item) {\r\n $(item.currentTarget).removeClass(C_GREEN)\r\n $(item.currentTarget).removeClass(C_BLACK)\r\n $(item.currentTarget).removeClass(C_RED)\r\n })\r\n }\r\n\r\n $('.j_btn_intro').on('click', function () {\r\n $('.j_3m_intro').hide()\r\n $('.j_panelSelector').fadeIn()\r\n })\r\n $('.j_return_step_1').on('click', function () {\r\n $('.j_panelItems').hide()\r\n $('.j_genreSelector').fadeIn()\r\n })\r\n $('.j_return_step_2').on('click', function () {\r\n $('.j_taillesbas').hide()\r\n $('.j_tailleshaut').fadeIn()\r\n })\r\n $('.j_return_step_3').on('click', function () {\r\n $('.j_tailleschaussure').hide()\r\n $('.j_taillesbas').fadeIn()\r\n })\r\n $(\r\n '#modaltest3m10 ul.multiselect-tailles3m li:first-child > label > span'\r\n ).each(function () {\r\n if ($(this).text() === 'Prématuré') {\r\n $(this).parents().addClass('prehaut')\r\n }\r\n })\r\n\r\n $('.j_show_profil3m').bind('click', function () {\r\n if ($('.j-accordeon3M').html() == '') {\r\n const gender = $('.j-accordeon3M').data('genre')\r\n const urlAccordeon =\r\n window.location.origin + '/_3MPlus/Accordeon/?gender=' + gender\r\n modal.miseAjourParClassCss(\r\n 'j-accordeon3M',\r\n urlAccordeon,\r\n CallbackAccordeon\r\n )\r\n } else {\r\n // on appelle la callback sans le chargement ajax car c'est déjà chargé\r\n $(J_ACCORDION_3M).addClass('open')\r\n $('.bandeau-3M').css('background-color', '#fff4f6')\r\n $('.bloc-config-taille > div').fadeIn()\r\n }\r\n })\r\n\r\n function CallbackAccordeon() {\r\n selectorPanel.setEvents(checkButtonForEachForm)\r\n checkButtonForEachForm()\r\n\r\n setOnClickTaille()\r\n\r\n $(J_ACCORDION_3M).addClass('open')\r\n $('.bandeau-3M').css('background-color', '#fff4f6')\r\n $('.bloc-config-taille > div').fadeIn()\r\n\r\n $('.j_tailles3m').on('click', function () {\r\n const id = $(this).attr('id')\r\n if ($('.multiselect-container').is(':visible')) {\r\n $('.j_tailles3m').removeClass('font-semi-sans')\r\n $('.multiselect-container').slideUp()\r\n $('.chevronrotate').animate(\r\n { deg: -45 },\r\n {\r\n duration: 400,\r\n step: function (now) {\r\n $(this).css({ transform: 'rotate(' + now + 'deg)' })\r\n }\r\n }\r\n )\r\n if (!$('[data-label=' + id + ']').is(':visible')) {\r\n $(this).addClass('font-semi-sans')\r\n $('[data-label=' + id + ']').slideDown('slow')\r\n $('#' + id + ' span').animate(\r\n { deg: 45 },\r\n {\r\n duration: 400,\r\n step: function (now) {\r\n $(this).css({\r\n transform: 'rotate(' + now + 'deg)'\r\n })\r\n }\r\n }\r\n )\r\n }\r\n } else {\r\n $(this).addClass('font-semi-sans')\r\n $('[data-label=' + id + ']').slideDown('slow')\r\n $('#' + id + ' span').animate(\r\n { deg: 45 },\r\n {\r\n duration: 400,\r\n step: function (now) {\r\n $(this).css({ transform: 'rotate(' + now + 'deg)' })\r\n }\r\n }\r\n )\r\n }\r\n })\r\n\r\n $('.jbtnpress').mousedown(function () {\r\n const idrange =\r\n '#' +\r\n $(this).siblings('.range-slider').find('.range').attr('id')\r\n const iddatalist =\r\n '#' +\r\n $(this).siblings('.range-slider').find('datalist').attr('id')\r\n const opt = $(\r\n iddatalist + ' option[value=\"' + $(idrange).val() + '\"]'\r\n )\r\n const reg = /[-;]+/g\r\n const tableau = iddatalist.split(reg)\r\n const idDivContainerMulitselect =\r\n '.j_' +\r\n tableau[2].toUpperCase() +\r\n '_' +\r\n tableau[1].toUpperCase()\r\n $(idDivContainerMulitselect)\r\n .find('ul.multiselect-tailles3m')\r\n .each(function (index, item) {\r\n const option = $($(item).find('.checkbox-t3m'))\r\n option.each(function () {\r\n if ($(this).val() == opt.attr('id')) {\r\n $(this).trigger('click')\r\n }\r\n })\r\n })\r\n })\r\n\r\n $('.j_accordion_3M p.h3').on('click', function () {\r\n if ($(J_ACCORDION_3M).hasClass('open')) {\r\n $('.j_accordion_3M > div').hide()\r\n $(J_ACCORDION_3M).removeClass('open')\r\n } else {\r\n $(J_ACCORDION_3M).addClass('open')\r\n $(' .j_accordion_3M > div').fadeIn()\r\n }\r\n })\r\n }\r\n\r\n $(document).bind('click', function (e) {\r\n const $clicked = $(e.target)\r\n if (!$clicked.parents().hasClass('zonetailles3m'))\r\n $('.zonetailles3m .multiselect-container').slideUp()\r\n if (\r\n !$clicked.parents().hasClass('bandeau-3M') &&\r\n !$clicked.hasClass('j_show_profil3m')\r\n ) {\r\n $('.bandeau-3M').css('background-color', '#fff')\r\n $('.bloc-config-taille').removeClass('open')\r\n $('.bloc-config-taille > div').hide('slow')\r\n }\r\n })\r\n\r\n setToolTip()\r\n setOnClickTaille()\r\n}\r\n\r\nfunction processLight() {\r\n // Enregistrement du mail du client dans la pop-up du 3M\r\n\r\n const J_VALIDATION_BUTTON_3M = '.btnvalidemail3m'\r\n const J_FORM_NEWSLETTER_3M = '.j_formr_3m_light'\r\n const J_EMAIL_NAME = 'j_email'\r\n const J_ACTION_DATA = 'action'\r\n const C_GREEN = 'green'\r\n const C_RED = 'red'\r\n const C_BLACK = 'black'\r\n /*\r\n * Set l'event click sur le bouton de validation de la newsletter\r\n *\r\n */\r\n\r\n $('.jfinalstep').mouseup(function () {\r\n $('#modal3mlight').modal('hide')\r\n })\r\n\r\n $(J_FORM_NEWSLETTER_3M).on('submit', function () {\r\n const form = $(this)\r\n\r\n $(J_VALIDATION_BUTTON_3M).attr('disabled', true)\r\n validationForm.process(\r\n function (content) {\r\n // Callback de réussite\r\n $(\"input[name='\" + J_EMAIL_NAME + \"']\").val(content.Message)\r\n manageStyleForNewsletterError(content)\r\n eraseColorForNewsLetter()\r\n //$('#modal3mlight').modal('hide')\r\n $('.j_message_capital').show()\r\n },\r\n function (content) {\r\n // Callback si échec. C'est la même que la réussite : l'erreur est mis dans le champ email\r\n $(\"input[name='\" + J_EMAIL_NAME + \"']\").val(content.Message)\r\n manageStyleForNewsletterError(content)\r\n eraseColorForNewsLetter()\r\n $(J_VALIDATION_BUTTON_3M).attr('disabled', false)\r\n },\r\n function (msg) {\r\n // Callback exécuter si l'email n'a pas le bon format\r\n const content = {\r\n // Dans le cas du mail incorrect, on est pas passé dans l'ajax, il faut donc ajouter les éléments permettant de gérer les erreurs manuellement\r\n Error: true,\r\n CssClass: C_RED,\r\n Message: msg\r\n }\r\n $(\"input[name='\" + J_EMAIL_NAME + \"']\").val(content.Message)\r\n manageStyleForNewsletterError(content)\r\n eraseColorForNewsLetter()\r\n $(J_VALIDATION_BUTTON_3M).attr('disabled', false)\r\n },\r\n $(form).data(J_ACTION_DATA), // Le controller à appeler\r\n form\r\n )\r\n\r\n return false\r\n })\r\n\r\n /*\r\n * Va gérer les styles CSS à appliquer au champ newsletter selon le message\r\n */\r\n function manageStyleForNewsletterError(content) {\r\n if (content.CssClass == C_GREEN) {\r\n $(\"input[name='\" + J_EMAIL_NAME + \"']\").addClass(C_GREEN)\r\n }\r\n if (content.CssClass == C_BLACK) {\r\n $(\"input[name='\" + J_EMAIL_NAME + \"']\").addClass(C_BLACK)\r\n }\r\n if (content.CssClass == C_RED) {\r\n $(\"input[name='\" + J_EMAIL_NAME + \"']\").addClass(C_RED)\r\n }\r\n }\r\n\r\n /*\r\n * Va effacer les couleurs des champs emails quand on tape dedans\r\n */\r\n function eraseColorForNewsLetter() {\r\n $(\"input[name='\" + J_EMAIL_NAME + \"']\").on('focus', function (item) {\r\n $(item.currentTarget).removeClass(C_GREEN)\r\n $(item.currentTarget).removeClass(C_BLACK)\r\n $(item.currentTarget).removeClass(C_RED)\r\n })\r\n }\r\n\r\n $('.j_btn_intro').on('click', function () {\r\n $('.j_3m_intro').hide()\r\n $('.j_panelSelector').fadeIn()\r\n })\r\n $('.j_return_step_1').on('click', function () {\r\n $('.j_panelItems').hide()\r\n $('.j_genreSelector').fadeIn()\r\n })\r\n $('.j_return_step_2').on('click', function () {\r\n $('.j_taillesbas').hide()\r\n $('.j_tailleshaut').fadeIn()\r\n })\r\n $('.j_return_step_3').on('click', function () {\r\n $('.j_tailleschaussure').hide()\r\n $('.j_taillesbas').fadeIn()\r\n })\r\n $(\r\n '#modaltest3m10 ul.multiselect-tailles3m li:first-child > label > span'\r\n ).each(function () {\r\n if ($(this).text() === 'Prématuré') {\r\n $(this).parents().addClass('prehaut')\r\n }\r\n })\r\n\r\n $('.j_show_profil3m').bind('click', function () {\r\n if ($('.j-accordeon3M').html() == '') {\r\n const gender = $('.j-accordeon3M').data('genre')\r\n const urlAccordeon =\r\n window.location.origin + '/_3MPlus/Accordeon/?gender=' + gender\r\n modal.miseAjourParClassCss(\r\n 'j-accordeon3M',\r\n urlAccordeon,\r\n CallbackAccordeon\r\n )\r\n } else {\r\n // on appelle la callback sans le chargement ajax car c'est déjà chargé\r\n $(J_ACCORDION_3M).addClass('open')\r\n $('.bandeau-3M').css('background-color', '#fff4f6')\r\n $('.bloc-config-taille > div').fadeIn()\r\n }\r\n })\r\n\r\n function CallbackAccordeon() {\r\n selectorPanel.setEvents(checkButtonForEachForm)\r\n checkButtonForEachForm()\r\n\r\n setOnClickTaille()\r\n\r\n $(J_ACCORDION_3M).addClass('open')\r\n $('.bandeau-3M').css('background-color', '#fff4f6')\r\n $('.bloc-config-taille > div').fadeIn()\r\n\r\n $('.j_tailles3m').on('click', function () {\r\n const id = $(this).attr('id')\r\n if ($('.multiselect-container').is(':visible')) {\r\n $('.j_tailles3m').removeClass('font-semi-sans')\r\n $('.multiselect-container').slideUp()\r\n $('.chevronrotate').animate(\r\n { deg: -45 },\r\n {\r\n duration: 400,\r\n step: function (now) {\r\n $(this).css({ transform: 'rotate(' + now + 'deg)' })\r\n }\r\n }\r\n )\r\n if (!$('[data-label=' + id + ']').is(':visible')) {\r\n $(this).addClass('font-semi-sans')\r\n $('[data-label=' + id + ']').slideDown('slow')\r\n $('#' + id + ' span').animate(\r\n { deg: 45 },\r\n {\r\n duration: 400,\r\n step: function (now) {\r\n $(this).css({\r\n transform: 'rotate(' + now + 'deg)'\r\n })\r\n }\r\n }\r\n )\r\n }\r\n } else {\r\n $(this).addClass('font-semi-sans')\r\n $('[data-label=' + id + ']').slideDown('slow')\r\n $('#' + id + ' span').animate(\r\n { deg: 45 },\r\n {\r\n duration: 400,\r\n step: function (now) {\r\n $(this).css({ transform: 'rotate(' + now + 'deg)' })\r\n }\r\n }\r\n )\r\n }\r\n })\r\n\r\n $('.jbtnpress').mousedown(function () {\r\n const idrange =\r\n '#' +\r\n $(this).siblings('.range-slider').find('.range').attr('id')\r\n const iddatalist =\r\n '#' +\r\n $(this).siblings('.range-slider').find('datalist').attr('id')\r\n const opt = $(\r\n iddatalist + ' option[value=\"' + $(idrange).val() + '\"]'\r\n )\r\n const reg = /[-;]+/g\r\n const tableau = iddatalist.split(reg)\r\n const idDivContainerMulitselect =\r\n '.j_' +\r\n tableau[2].toUpperCase() +\r\n '_' +\r\n tableau[1].toUpperCase()\r\n $(idDivContainerMulitselect)\r\n .find('ul.multiselect-tailles3m')\r\n .each(function (index, item) {\r\n const option = $($(item).find('.checkbox-t3m'))\r\n option.each(function () {\r\n if ($(this).val() == opt.attr('id')) {\r\n $(this).trigger('click')\r\n }\r\n })\r\n })\r\n })\r\n\r\n $('.j_accordion_3M p.h3').on('click', function () {\r\n if ($(J_ACCORDION_3M).hasClass('open')) {\r\n $('.j_accordion_3M > div').hide()\r\n $(J_ACCORDION_3M).removeClass('open')\r\n } else {\r\n $(J_ACCORDION_3M).addClass('open')\r\n $(' .j_accordion_3M > div').fadeIn()\r\n }\r\n })\r\n }\r\n\r\n $(document).bind('click', function (e) {\r\n const $clicked = $(e.target)\r\n if (!$clicked.parents().hasClass('zonetailles3m'))\r\n $('.zonetailles3m .multiselect-container').slideUp()\r\n if (\r\n !$clicked.parents().hasClass('bandeau-3M') &&\r\n !$clicked.hasClass('j_show_profil3m')\r\n ) {\r\n $('.bandeau-3M').css('background-color', '#fff')\r\n $('.bloc-config-taille').removeClass('open')\r\n $('.bloc-config-taille > div').hide('slow')\r\n }\r\n })\r\n\r\n setToolTip()\r\n setOnClickTaille()\r\n}\r\n\r\n/*\r\n * Gestion de l'événement onClick sur les bouton j_submit3MPlus (GO)\r\n * Actuellement, cela va rediriger vers la page du genre auquel correspond ce bouton\r\n */\r\nfunction setOnClickEvent($element) {\r\n $element.off('click', setDisableEvent)\r\n $element.on('click', setEnableEvent)\r\n}\r\n\r\nfunction setOnClickTaille() {\r\n $('.j_taillesorigin .checkbox-t3m').on('click', function (event) {\r\n const parentUL = $(this).parents('ul.multiselect-tailles3m')\r\n const labelTaille = parentUL.siblings('.btn-multiselect')\r\n const options = parentUL.find('.checkbox-t3m:checked')\r\n if (options.length === 0) {\r\n // Si on a rien de sélectionné\r\n labelTaille.html(TAILLE + C_ARROW)\r\n } else if (options.length > 0 && options.length < 3) {\r\n // Si on a moins de 3 options sélectionnées\r\n let selected = ''\r\n options.each(function () {\r\n selected += $(this).data('label') + ', '\r\n })\r\n labelTaille.html(selected.substr(0, selected.length - 2) + C_ARROW)\r\n } else {\r\n // Si on a plus de 3 options sélectionnées\r\n labelTaille.html(options.length + ' ' + TAILLES + C_ARROW)\r\n }\r\n\r\n $(event.currentTarget).removeClass(C_CLASS_PINK_BUTTON)\r\n tooltips.hideToolTip(event.currentTarget)\r\n\r\n getDataAndSaveProfileV2(this, parentUL)\r\n })\r\n $('.lestailles .checkbox-t3m').on('click', function (event) {\r\n const parentUL = $(this).parents('ul.multiselect-tailles3m')\r\n const labelTaille = parentUL.siblings('.btn-multiselect')\r\n const options = parentUL.find('.checkbox-t3m:checked')\r\n if (options.length === 0) {\r\n // Si on a rien de sélectionné\r\n if ($(this).parents('.genre').hasClass('HAUT')) {\r\n labelTaille.html('Haut' + C_ARROW)\r\n }\r\n if ($(this).parents('.genre').hasClass('BAS')) {\r\n labelTaille.html('Bas' + C_ARROW)\r\n }\r\n if ($(this).parents('.genre').hasClass('CHAUSSURE')) {\r\n labelTaille.html('Chaussures' + C_ARROW)\r\n }\r\n } else if (options.length > 0 && options.length < 3) {\r\n // Si on a moins de 3 options sélectionnées\r\n let selected = ''\r\n options.each(function () {\r\n selected += $(this).data('label') + ', '\r\n })\r\n labelTaille.html(selected.substr(0, selected.length - 2) + C_ARROW)\r\n } else {\r\n // Si on a plus de 3 options sélectionnées\r\n labelTaille.html(options.length + ' ' + TAILLES + C_ARROW)\r\n }\r\n\r\n $(event.currentTarget).removeClass(C_CLASS_PINK_BUTTON)\r\n tooltips.hideToolTip(event.currentTarget)\r\n\r\n getDataAndSaveProfileV2(this, parentUL)\r\n })\r\n\r\n $('.bloclestailles .checkbox-t3m').on('click', function (event) {\r\n let isMobile = false // initiate as false\r\n // device detection\r\n if (\r\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(\r\n navigator.userAgent\r\n ) ||\r\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(\r\n navigator.userAgent.substr(0, 4)\r\n )\r\n ) {\r\n isMobile = true\r\n }\r\n const parentUL = $(this).parents('.multiselect-tailles3m')\r\n const labelTaille = parentUL.parent().siblings('.j_tailles3m')\r\n const options = parentUL.find('.checkbox-t3m:checked')\r\n if (options.length === 0) {\r\n // Si on a rien de sélectionné\r\n if ($(this).parents('.genre').hasClass('HAUT')) {\r\n if (\r\n isMobile &&\r\n $(this).parents('.catalogue3m').hasClass('cat3m')\r\n ) {\r\n labelTaille.html(TAILLES_DE + ' ' + HAUT + C_ARROW2ROTATE)\r\n } else {\r\n labelTaille.html(HAUT + C_ARROW2ROTATE)\r\n }\r\n }\r\n if ($(this).parents('.genre').hasClass('BAS')) {\r\n if (\r\n isMobile &&\r\n $(this).parents('.catalogue3m').hasClass('cat3m')\r\n ) {\r\n labelTaille.html(TAILLES_DE + ' ' + BAS + C_ARROW2ROTATE)\r\n } else {\r\n labelTaille.html(BAS + C_ARROW2ROTATE)\r\n }\r\n }\r\n if ($(this).parents('.genre').hasClass('AGE')) {\r\n if (\r\n isMobile &&\r\n $(this).parents('.catalogue3m').hasClass('cat3m')\r\n ) {\r\n labelTaille.html(AGE + C_ARROW2ROTATE)\r\n } else {\r\n labelTaille.html(AGES + C_ARROW2ROTATE)\r\n }\r\n }\r\n if ($(this).parents('.genre').hasClass('CHAUSSURE')) {\r\n if (\r\n isMobile &&\r\n $(this).parents('.catalogue3m').hasClass('cat3m')\r\n ) {\r\n labelTaille.html(POINTURES + C_ARROW2ROTATE)\r\n } else {\r\n labelTaille.html(CHAUSSURES + C_ARROW2ROTATE)\r\n }\r\n }\r\n if ($(this).parents('.genre').hasClass('CHAUSSURES')) {\r\n if (\r\n isMobile &&\r\n $(this).parents('.catalogue3m').hasClass('cat3m')\r\n ) {\r\n labelTaille.html(POINTURES + C_ARROW2ROTATE)\r\n } else {\r\n labelTaille.html(CHAUSSURES + C_ARROW2ROTATE)\r\n }\r\n }\r\n } else if (options.length > 0 && options.length < 3) {\r\n // Si on a moins de 3 options sélectionnées\r\n let mongenre = ''\r\n if ($(this).parents('.genre').hasClass('HAUT')) {\r\n if (\r\n isMobile &&\r\n $(this).parents('.catalogue3m').hasClass('cat3m')\r\n ) {\r\n mongenre = TAILLES_DE + ' ' + HAUT\r\n } else {\r\n mongenre = HAUT\r\n }\r\n }\r\n if ($(this).parents('.genre').hasClass('BAS')) {\r\n if (\r\n isMobile &&\r\n $(this).parents('.catalogue3m').hasClass('cat3m')\r\n ) {\r\n mongenre = TAILLES_DE + ' ' + BAS\r\n } else {\r\n mongenre = BAS\r\n }\r\n }\r\n if ($(this).parents('.genre').hasClass('AGE')) {\r\n if (\r\n isMobile &&\r\n $(this).parents('.catalogue3m').hasClass('cat3m')\r\n ) {\r\n mongenre = AGE + ' ' + BAS\r\n } else {\r\n mongenre = AGE\r\n }\r\n }\r\n if ($(this).parents('.genre').hasClass('CHAUSSURE')) {\r\n if (\r\n isMobile &&\r\n $(this).parents('.catalogue3m').hasClass('cat3m')\r\n ) {\r\n mongenre = POINTURES\r\n } else {\r\n mongenre = CHAUSSURES\r\n }\r\n }\r\n if ($(this).parents('.genre').hasClass('CHAUSSURES')) {\r\n if (\r\n isMobile &&\r\n $(this).parents('.catalogue3m').hasClass('cat3m')\r\n ) {\r\n mongenre = POINTURES\r\n } else {\r\n mongenre = CHAUSSURES\r\n }\r\n }\r\n let selected = ''\r\n options.each(function () {\r\n selected += $(this).data('label') + ', '\r\n })\r\n labelTaille.html(\r\n mongenre +\r\n ' (' +\r\n selected.substr(0, selected.length - 2) +\r\n ')' +\r\n C_ARROW2ROTATE\r\n )\r\n } else {\r\n let mongenre = ''\r\n\r\n // Si on a plus de 3 options sélectionnées\r\n if ($(this).parents('.genre').hasClass('HAUT')) {\r\n if (\r\n isMobile &&\r\n $(this).parents('.catalogue3m').hasClass('cat3m')\r\n ) {\r\n mongenre = TAILLES_DE + ' ' + HAUT\r\n } else {\r\n mongenre = HAUT\r\n }\r\n }\r\n if ($(this).parents('.genre').hasClass('BAS')) {\r\n if (\r\n isMobile &&\r\n $(this).parents('.catalogue3m').hasClass('cat3m')\r\n ) {\r\n mongenre = TAILLES_DE + ' ' + BAS\r\n } else {\r\n mongenre = BAS\r\n }\r\n }\r\n if ($(this).parents('.genre').hasClass('AGE')) {\r\n mongenre = AGE\r\n }\r\n if ($(this).parents('.genre').hasClass('CHAUSSURE')) {\r\n if (\r\n isMobile &&\r\n $(this).parents('.catalogue3m').hasClass('cat3m')\r\n ) {\r\n mongenre = POINTURES\r\n } else {\r\n mongenre = CHAUSSURES\r\n }\r\n }\r\n if ($(this).parents('.genre').hasClass('CHAUSSURES')) {\r\n if (\r\n isMobile &&\r\n $(this).parents('.catalogue3m').hasClass('cat3m')\r\n ) {\r\n mongenre = POINTURES\r\n } else {\r\n mongenre = CHAUSSURES\r\n }\r\n }\r\n labelTaille.html(\r\n mongenre +\r\n ' (' +\r\n options.length +\r\n ' ' +\r\n TAILLES +\r\n ')' +\r\n C_ARROW2ROTATE\r\n )\r\n }\r\n\r\n $(event.currentTarget).removeClass(C_CLASS_PINK_BUTTON)\r\n tooltips.hideToolTip(event.currentTarget)\r\n\r\n getDataAndSaveProfileV2(this, parentUL)\r\n })\r\n}\r\n\r\n/*\r\n * Switch pour rediriger vers la bonne page du genre selon le type de 3MPlus\r\n */\r\nfunction switch3MPlus(event) {\r\n const $form = $(J_PANEL_ITEM + ':not(.hidden)').find('form')\r\n const type = $($form).data(J_TYPE_MODULE_DATA)\r\n let location = ''\r\n let gender\r\n\r\n if (type === 'simple3MPlus') {\r\n gender = $($form).data(J_PROFILE_GENDER_DATA)\r\n if (gender === 'HOMME') {\r\n location = $(event.currentTarget).data(J_LINKHOMME_DATA)\r\n }\r\n if (gender === 'FEMME') {\r\n location = $(event.currentTarget).data(J_LINKFEMME_DATA)\r\n }\r\n if (gender === 'FILLE') {\r\n location = $(event.currentTarget).data(J_LINKFILLE_DATA)\r\n }\r\n if (gender === 'GARCON') {\r\n location = $(event.currentTarget).data(J_LINKGARCON_DATA)\r\n }\r\n } else if (type === 'avance3MPlus') {\r\n gender = $(event.currentTarget)\r\n .closest('form')\r\n .data(J_PROFILE_GENDER_DATA)\r\n location = $(event.currentTarget).data(J_LINK_DATA)\r\n }\r\n redirectToNewGengerProfilePage(gender, location) // Fonction qui va rediriger vers le genre\r\n}\r\n\r\n/*\r\n * Efface l'événements on click sur les boutons\r\n */\r\nfunction blockGoButton($element) {\r\n $element.off('click', setEnableEvent)\r\n $element.on('click', setDisableEvent)\r\n}\r\n\r\nfunction getDataAndSaveProfileV2(element, parent) {\r\n const $form = $(element).closest('form') // On récupère le plus proche formulaire\r\n const data = []\r\n const selectedDataFamily = $(parent).data(J_FAMILY_DATA)\r\n const category = $($form).data(J_PROFILE_GENDER_DATA)\r\n let mustReload = false\r\n\r\n // On va construire le tableau de données. On se sert du form courrant pour cela, afin d'être sur que ce sont bien les bonnes données qui sont envoyées\r\n $form.find('ul.multiselect-tailles3m').each(function (index, item) {\r\n const option = $($(item).find('.checkbox-t3m:checked'))\r\n if (option.length > 0) {\r\n const dataFamily = $(item).data(J_FAMILY_DATA)\r\n const values = []\r\n option.each(function () {\r\n values.push(this.value)\r\n })\r\n\r\n data[dataFamily] = values\r\n } else {\r\n data[$(item).data(J_FAMILY_DATA)] = []\r\n }\r\n })\r\n let name = profileCookie.existProfilByGender(category)\r\n\r\n if (name === undefined) {\r\n // Si le profil existe pas, on construit son nom\r\n name = category + ' ' + (profileCookie.getMaxNbOfProfile() + 1)\r\n }\r\n\r\n profileCookie.saveDataAsCookie(category, name, data, selectedDataFamily)\r\n\r\n checkIfGoButtonIsAvailableAndShow($form)\r\n\r\n // On récupère la variable indiquant si on reload la page ou non\r\n mustReload = $(J_PANEL_ITEM).data(J_MUST_LOAD_DATA)\r\n if (mustReload !== undefined && mustReload === true) {\r\n if ($(J_URL).length > 0) {\r\n if ($(J_URL).val().indexOf('/Catalogue') !== -1) {\r\n window.location.href = url.deleteParams(\r\n 'ct',\r\n window.location.href\r\n ) // GCVIA fix Mantis 0001952\r\n }\r\n }\r\n }\r\n}\r\n\r\n/*\r\n * Redirige vers la page du genre passé en paramètre\r\n */\r\nfunction redirectToNewGengerProfilePage(gender, location) {\r\n const profile = profileCookie.getProfileByGender(gender)\r\n switch (gender) {\r\n case 'FEMME':\r\n case 'HOMME':\r\n if (profile !== undefined) {\r\n if (profile.sizes !== undefined) {\r\n if (\r\n profile.sizes.BAS !== undefined &&\r\n profile.sizes.BAS.length > 0 &&\r\n profile.sizes.HAUT !== undefined &&\r\n profile.sizes.HAUT.length > 0 &&\r\n profile.sizes.CHAUSSURE !== undefined &&\r\n profile.sizes.CHAUSSURE.length > 0\r\n ) {\r\n document.location.href = location\r\n }\r\n }\r\n }\r\n break\r\n case 'FILLE':\r\n case 'GARCON':\r\n if (profile !== undefined) {\r\n if (profile.sizes !== undefined) {\r\n if (\r\n profile.sizes.AGE !== undefined &&\r\n profile.sizes.AGE.length > 0 &&\r\n profile.sizes.CHAUSSURE !== undefined &&\r\n profile.sizes.CHAUSSURE.length > 0\r\n ) {\r\n document.location.href = location\r\n }\r\n }\r\n }\r\n break\r\n default:\r\n document.location.href = location\r\n }\r\n}\r\n\r\n/*\r\n * Va récupérer le form et vérifier pour vérifier si on doit afficher le bouton cliquable ou non\r\n */\r\nfunction checkButtonForEachForm() {\r\n const selectedGender = $(J_BORDER_SELECTED + C_ACTIVE_SELECTOR)\r\n .find(J_LIST_CATEGORY)\r\n .data(J_GENDER_DATA)\r\n\r\n const form = $(\r\n J_FORM_3MPLUS +\r\n '[data-' +\r\n J_PROFILE_GENDER_DATA +\r\n \"='\" +\r\n selectedGender +\r\n \"']\"\r\n )\r\n checkIfGoButtonIsAvailableAndShow(form)\r\n}\r\n\r\n/*\r\n * Fonction appelé sur le click du bouton go grisé.\r\n * Si le bouton est grisé, on appel cette méthode qui va afficher les tooltips\r\n */\r\nfunction setOnClickToolTip(event) {\r\n let form = $(J_PANEL_ITEM + ':not(.hidden)').find('form')\r\n const type = $(form).data(J_TYPE_MODULE_DATA)\r\n let gender = ''\r\n let location = 'right'\r\n\r\n if (type === 'simple3MPlus') {\r\n gender = $(form).data(J_PROFILE_GENDER_DATA)\r\n location = 'bottom'\r\n } else if (type === 'avance3MPlus') {\r\n gender = $(event.currentTarget)\r\n .closest('form')\r\n .data(J_PROFILE_GENDER_DATA)\r\n form = $(event.currentTarget).closest('form')\r\n }\r\n\r\n $(form)\r\n .find('ul.multiselect-tailles3m')\r\n .each(function (index, item) {\r\n const option = $($(item).find('.checkbox-t3m:checked'))\r\n if (option.length == 0) {\r\n const dataFamily = $(item).data(J_FAMILY_DATA)\r\n const div = $(item).closest('.j_' + gender + '_' + dataFamily)\r\n const button = $(div).find('.btn-multiselect') // On récupère le button le plus proche : Dans le cas du simple et avancé, on a pas de form\r\n button.addClass(C_CLASS_PINK_BUTTON)\r\n tooltips.setEventOnItem(\r\n button,\r\n location,\r\n VEUILLEZ_SELECTIONNER_TAILLES\r\n )\r\n }\r\n })\r\n}\r\n$('.j_submit3MPlusDropDown').on('click', function () {\r\n window.location.href = url.deleteParams('np', window.location.href)\r\n})\r\n/*\r\n * Va checker si il y a des counts, et s'ils sont à 0. Si c'est le cas on met en place les tooltips\r\n */\r\nfunction setToolTip() {\r\n const $triggers = $(J_TOOLTIP_TRIGGER)\r\n let dataCount = -1\r\n\r\n if ($triggers.length > 0) {\r\n $triggers.each(function (index, item) {\r\n dataCount = $(item).data(J_TRIGGER_DATA)\r\n\r\n if (dataCount === 0) {\r\n // On regarde si on a bien 0\r\n const dataFamily = $(item).data(J_FAMILY_DATA)\r\n const form = $(\r\n 'ul.multiselect-tailles3m' +\r\n '[data-' +\r\n J_FAMILY_DATA +\r\n \"='\" +\r\n dataFamily +\r\n \"']\"\r\n ).closest('form') // On récupère le form correspondant à la nature (haut, bas, etc.)\r\n if (form.length > 0) {\r\n const button = $(form).find('button') // et grace au form, on récupère le bouton\r\n button.addClass(C_CLASS_PINK_BUTTON)\r\n tooltips.setEventOnItem(\r\n button,\r\n 'right',\r\n VEUILLEZ_SELECTIONNER_TAILLES\r\n )\r\n }\r\n }\r\n })\r\n }\r\n}\r\n\r\n/*\r\n * Prend le form courant en paramètre. Va vérifier si les multiselects de ce form ont des valeurs sélectionnées\r\n * Si oui, on va afficher le bouton cliquable et setter le click dessus\r\n * Si non, on va afficher le bouton non cliquable et supprimer l'event click dessus\r\n */\r\nfunction checkIfGoButtonIsAvailableAndShow(form) {\r\n const button = $(J_BUTTON_SUBMIT)\r\n const classForShowing = C_BUTTON_STYLE_ON\r\n const classForHidding = C_BUTTON_STYLE_OFF\r\n let result = false\r\n\r\n // pour chaque multiselect, on va vérifier si on a des options sélectionnées. Si oui, on affiche le bouton cliquable\r\n // Si non, on affiche le non cliquable et on sort de la boucle\r\n $(form)\r\n .find('ul.multiselect-tailles3m')\r\n .each(function (index, item) {\r\n const option = $($(item).find('.checkbox-t3m:checked'))\r\n if (option.length > 0) {\r\n $(button).addClass(classForShowing)\r\n $(button).removeClass(classForHidding)\r\n result = true\r\n } else {\r\n blockGoButton($(button))\r\n $(button).removeClass(classForShowing)\r\n $(button).addClass(classForHidding)\r\n result = false\r\n return false\r\n }\r\n })\r\n if (result === true) {\r\n setOnClickEvent($(button)) // Si on arrive là, c'est qu'on a des tailles dans les trois champs. Donc on peut setter le click sur le bouton\r\n }\r\n}\r\n\r\nexport default {\r\n process: process,\r\n processLight: processLight\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * MODULE ADRESSE INSCRIPTION\r\n */\r\n\r\nimport { ERREUR_INTERNE_RECUPERATION_VILLE } from 'Modules/Resources/Error'\r\nimport { SELECTIONNEZ_VILLE } from 'Modules/Resources/Label'\r\nimport ajaxLoader from 'Modules/ajaxLoader'\r\nimport urlModule from 'Modules/url'\r\n\r\nconst J_COMPLEMENT_ADRESSE_LINK = '.j_inscriptionProcess_complementAdressClick'\r\nconst J_COMPLEMENT_ADRESSE = '.j_inscriptionProcess_complementAdresse'\r\nconst J_CODE_POSTAL = '.j_inscriptionProcess_codePostal'\r\nconst J_CODE_POSTAL_NAME = 'cp'\r\nconst J_CODE_POSTAL_ACTION = 'action'\r\nconst J_DIV_ERROR_CODE_POSTAL = '.j_inscriptionProcess_codePostalError'\r\nconst J_VILLE_SELECTOR = '.j_inscriptionProcess_villeSelector'\r\nconst J_CLASSICAL_VILLE_INPUT = '.j_inscriptionProcess_villeInput'\r\nconst C_HIDDEN = 'hidden'\r\nconst J_SOURCE_AJAX_DATA = 'source'\r\nconst J_DATA_VALUE_PAYS = 'value'\r\nconst J_VILLE_ERROR = '.j_inscriptionProcess_villeError'\r\nconst J_AUTRES_PAYS_LINK = '.j_inscriptionProcess_autresPays'\r\nconst J_AUTRES_PAYS_SELECT = '.j_select_autresPays'\r\nconst J_LABEL_PAYS_TO_HIDE = '.j_inscriptionProcess_PaysToHide'\r\nconst J_VILLE_NAME = 'ville'\r\nconst J_INSCRIPTION_ERROR = '.j_inscription_error'\r\nconst J_MODIFIER_ADRESSE_LIVRAISON_BUTTON = '.j_submit_modifierAdresseLivraison'\r\nconst J_MODIFIER_ADRESSE_FACTURATION_BUTTON =\r\n '.j_submit_modifierAdresseFacturation'\r\nconst J_DATA_ACTION_MODIFICATION_ADRESSE_LIVRAISON = 'action'\r\nconst J_DATA_ACTION_MODIFICATION_ADRESSE_FACTURATION = 'actionfacturation'\r\nconst J_TELEPHONE = '.j_telephone'\r\nconst J_LAST_TELEPHONE_NAME = 'telephonePart5'\r\nconst J_OTHER_TELEPHONE = '.j_otherPaysTelephone'\r\nconst J_AUTRES_VILLES = 'j_autres_villes'\r\nconst J_CHANGE_ADDRESS_POPUP = '.j_modal_change_address'\r\n\r\nconst J_CODE_POSTAL_SELECTOR = '.j_code_postal_select'\r\nconst J_LINE_ADRESSE_SELECTOR = '.j_line_adresse_select'\r\nconst J_COMPLEMENT_ADRESSE_SELECTOR = '.j_complement_adresse_select'\r\nconst J_VILLE_NAME_SELECTOR = '.j_ville_name_select'\r\nconst J_NAME_SELECTOR = '.j_name_select'\r\n\r\n/*\r\n * Fonction de validation du formulaire et d'appel du process d'inscription en ajax\r\n * pour modification d'adresse inscription en popup\r\n */\r\nfunction processModificationAdresseLivraison(event) {\r\n const $form = $(event.target)\r\n const button = $form\r\n .find(J_MODIFIER_ADRESSE_LIVRAISON_BUTTON + ':submit')\r\n .not(':hidden')\r\n const action = $(button).data(J_DATA_ACTION_MODIFICATION_ADRESSE_LIVRAISON)\r\n\r\n const parameters = $form\r\n .find(':input')\r\n .not(J_AUTRES_PAYS_SELECT)\r\n .serializeArray()\r\n const $pays = $(J_AUTRES_PAYS_SELECT)\r\n\r\n if ($pays.val() == '') {\r\n return false\r\n }\r\n\r\n parameters.push({\r\n name: $pays.attr('name'),\r\n value: $($pays.find(':selected')).data(J_DATA_VALUE_PAYS)\r\n })\r\n\r\n ajaxLoader.loadAndExecuteCallBack(\r\n 'POST',\r\n parameters,\r\n function (content) {\r\n if (content.Result === false) {\r\n $(J_INSCRIPTION_ERROR).removeClass(C_HIDDEN)\r\n $(J_INSCRIPTION_ERROR).empty().append(content.Message)\r\n } else {\r\n $(J_LINE_ADRESSE_SELECTOR).empty().append(content.LigneAdresse)\r\n if (content.ComplementLigneAdresse != null) {\r\n $(J_COMPLEMENT_ADRESSE_SELECTOR)\r\n .empty()\r\n .append(content.ComplementLigneAdresse)\r\n }\r\n $(J_CODE_POSTAL_SELECTOR + J_VILLE_NAME_SELECTOR)\r\n .empty()\r\n .append(content.CodePostal + ' - ' + content.Ville)\r\n $(J_NAME_SELECTOR)\r\n .empty()\r\n .append(content.Prenom + ' ' + content.Nom)\r\n\r\n const redirectionUrl = urlModule.parseRedirectionParameter()\r\n\r\n if (redirectionUrl !== undefined && redirectionUrl !== '') {\r\n parent.location.href = redirectionUrl\r\n } else {\r\n // close popup\r\n $(J_CHANGE_ADDRESS_POPUP).modal('hide')\r\n }\r\n\r\n if (content.Reload === true) {\r\n window.location.reload(true)\r\n }\r\n }\r\n },\r\n function () {\r\n // En cas d'échec on affiche une erreur\r\n },\r\n action\r\n )\r\n\r\n return false\r\n}\r\n\r\nfunction processModificationAdresseFacturation(event) {\r\n const $form = $(event.target)\r\n const button = $form\r\n .find(J_MODIFIER_ADRESSE_FACTURATION_BUTTON + ':submit')\r\n .not(':hidden')\r\n const action = $(button).data(\r\n J_DATA_ACTION_MODIFICATION_ADRESSE_FACTURATION\r\n )\r\n const parameters = $form\r\n .find(':input')\r\n .not(':hidden')\r\n .not(J_AUTRES_PAYS_SELECT)\r\n .serializeArray()\r\n const $pays = $(J_AUTRES_PAYS_SELECT)\r\n\r\n parameters.push({\r\n name: $pays.attr('name'),\r\n value: $($pays.find(':selected')).data(J_DATA_VALUE_PAYS)\r\n })\r\n\r\n ajaxLoader.loadAndExecuteCallBack(\r\n 'POST',\r\n parameters,\r\n function (content) {\r\n if (content.Result === false) {\r\n $(J_INSCRIPTION_ERROR).removeClass(C_HIDDEN)\r\n $(J_INSCRIPTION_ERROR).empty().append(content.Message)\r\n } else {\r\n const redirectionUrl = urlModule.parseRedirectionParameter()\r\n\r\n if (redirectionUrl !== undefined && redirectionUrl !== '') {\r\n parent.location.href = redirectionUrl\r\n }\r\n }\r\n },\r\n function () {\r\n // En cas d'échec on affiche une erreur\r\n },\r\n action\r\n )\r\n\r\n return false\r\n}\r\n\r\n/*\r\n * Fonction d'apparition du champ complément d'adresse au clique\r\n */\r\nfunction setEventOnComplementAdresseLink() {\r\n $(J_COMPLEMENT_ADRESSE_LINK).on('click', function (event) {\r\n $(J_COMPLEMENT_ADRESSE).removeClass(C_HIDDEN)\r\n $(event.currentTarget).addClass(C_HIDDEN)\r\n return false\r\n })\r\n}\r\n\r\n/*\r\n * Fonction d'affichage des villes à partir du CP rentré par l'utilisateur\r\n */\r\nfunction setEventForGettingVillesByCodePostal() {\r\n $(J_CODE_POSTAL).on('change paste keyup', function (event) {\r\n // on execute sur les events de modidification de la value du champ\r\n // $(J_AUTRES_PAYS_SELECT + ' option[data-value=FR]').remove();\r\n $(J_AUTRES_PAYS_SELECT).removeClass(C_HIDDEN)\r\n $(J_LABEL_PAYS_TO_HIDE).addClass(C_HIDDEN)\r\n\r\n if (event.preventDefault) {\r\n event.preventDefault()\r\n } else {\r\n event.returnValue = false\r\n }\r\n\r\n if (\r\n $(J_AUTRES_PAYS_SELECT + ' option:selected').data('value') !=\r\n 'FR' &&\r\n $(J_AUTRES_PAYS_SELECT + ' option:selected').data('value') !=\r\n 'GF' &&\r\n $(J_AUTRES_PAYS_SELECT + ' option:selected').data('value') !=\r\n 'GP' &&\r\n $(J_AUTRES_PAYS_SELECT + ' option:selected').data('value') !=\r\n 'MQ' &&\r\n $(J_AUTRES_PAYS_SELECT + ' option:selected').data('value') !=\r\n 'MU' &&\r\n $(J_AUTRES_PAYS_SELECT + ' option:selected').data('value') !=\r\n 'PM' &&\r\n $(J_AUTRES_PAYS_SELECT + ' option:selected').data('value') != 'RE'\r\n ) {\r\n // On ne fais pas le chargement de la liste si ce n'est pas nécessaire\r\n return\r\n }\r\n\r\n const form = $(event.currentTarget).closest('form')\r\n\r\n import('Modules/bootstrapValidationForm').then(\r\n (bootstrapValidationForm) => {\r\n bootstrapValidationForm.default.validateField(\r\n '#' + $(form).attr('id'),\r\n $(event.currentTarget).attr('name')\r\n ) // On dois valider le field si on veut que le isValidField fonctionne\r\n\r\n if (\r\n bootstrapValidationForm.default.isValidField(\r\n '#' + $(form).attr('id'),\r\n $(event.currentTarget).attr('name')\r\n ) === true\r\n ) {\r\n const action = $(event.currentTarget).data(\r\n J_CODE_POSTAL_ACTION\r\n )\r\n const parameters = {\r\n cp: $(event.currentTarget).val()\r\n }\r\n\r\n ajaxLoader.loadAndExecuteCallBack(\r\n 'POST',\r\n parameters,\r\n function (content) {\r\n const select = $(J_VILLE_SELECTOR)\r\n\r\n if (content.ListVilles.length > 0) {\r\n const selectElement = select[0]\r\n\r\n // On supprime tout les 'options' pour nettoyer la liste pour les nouvelles valeurs\r\n for (const a in selectElement.options) {\r\n selectElement.options.remove(a)\r\n }\r\n\r\n // On ajout l'élément par défaut\r\n const opt = document.createElement('option')\r\n opt.value = ''\r\n opt.innerHTML = SELECTIONNEZ_VILLE\r\n select[0].appendChild(opt)\r\n\r\n // On ajoute le résultat de la requête\r\n for (\r\n let i = 0;\r\n i < content.ListVilles.length;\r\n i++\r\n ) {\r\n if (\r\n content.ListVilles[i].CodePays ==\r\n $(\r\n J_AUTRES_PAYS_SELECT +\r\n ' option:selected'\r\n ).data('value') ||\r\n $(\r\n J_AUTRES_PAYS_SELECT +\r\n ' option:selected'\r\n ).data('value') == 'FR'\r\n ) {\r\n const opt =\r\n document.createElement('option')\r\n opt.value =\r\n content.ListVilles[i].NomVilleReel\r\n opt.innerHTML =\r\n content.ListVilles[i].NomVille\r\n select[0].appendChild(opt)\r\n }\r\n }\r\n\r\n // On affiche la liste si elle est caché, et on cache le input classique s'il était affiché\r\n if ($(select).hasClass(C_HIDDEN)) {\r\n bootstrapValidationForm.default.disableValidator(\r\n $(form),\r\n J_VILLE_NAME,\r\n 'notEmpty'\r\n ) // on désactive également le validateur noEmpty, pour qu'on puisse appuyer sur le bouton submit si on choisit une ville\r\n $(select).removeClass(C_HIDDEN)\r\n $(J_CLASSICAL_VILLE_INPUT).addClass(\r\n C_HIDDEN\r\n )\r\n }\r\n } else if (content.ListVilles.length === 0) {\r\n if ($(select).hasClass(C_HIDDEN) === false) {\r\n $(select).addClass(C_HIDDEN)\r\n }\r\n if (\r\n $(J_CLASSICAL_VILLE_INPUT).hasClass(\r\n C_HIDDEN\r\n )\r\n ) {\r\n $(J_CLASSICAL_VILLE_INPUT).removeClass(\r\n C_HIDDEN\r\n )\r\n }\r\n }\r\n },\r\n function () {\r\n // En cas d'échec on affiche une erreur\r\n const $location = $(J_DIV_ERROR_CODE_POSTAL)\r\n $location.removeClass(C_HIDDEN)\r\n $location\r\n .empty()\r\n .append(ERREUR_INTERNE_RECUPERATION_VILLE)\r\n },\r\n action\r\n )\r\n }\r\n }\r\n )\r\n })\r\n}\r\n\r\n/*\r\n * Fonction qui sera passé en callback du module autoComplete : elle récupère la liste des villes qui commencent par la valeur de l'input passé en paramètre de cette fonction\r\n */\r\nfunction getListOfVillesForAutoCompleteField($item) {\r\n return function findMatches(q, callback) {\r\n const action = $item.data(J_SOURCE_AJAX_DATA)\r\n\r\n // q = valeur de l'input\r\n const parameters = {\r\n name: q\r\n }\r\n\r\n ajaxLoader.loadAndExecuteCallBack(\r\n 'POST',\r\n parameters,\r\n function (content) {\r\n const matches = []\r\n for (let i = 0; i < content.ListVilles.length; i++) {\r\n matches.push({\r\n value: content.ListVilles[i].Value,\r\n cp: content.ListVilles[i].Key\r\n })\r\n }\r\n\r\n callback(matches)\r\n },\r\n function () {\r\n const $location = $(J_VILLE_ERROR)\r\n $location.removeClass(C_HIDDEN)\r\n $location.empty().append(ERREUR_INTERNE_RECUPERATION_VILLE)\r\n },\r\n action\r\n )\r\n }\r\n}\r\n\r\n/*\r\n * Insert le CP dans le champ CP quand on sélectionne une ville et change le pays (envoyé en callback de l'autocomplete)\r\n */\r\nfunction insertCodePostalWhenSelectingVille(event, item) {\r\n import('Modules/bootstrapValidationForm').then(\r\n (bootstrapValidationForm) => {\r\n $(J_CODE_POSTAL).val(item.cp)\r\n $(J_CODE_POSTAL).empty().append(item.cp)\r\n const formId = $(J_CODE_POSTAL).closest('form').attr('id')\r\n if (formId !== undefined) {\r\n bootstrapValidationForm.default.setItemAsValid(\r\n '#' + formId,\r\n $(J_CODE_POSTAL),\r\n 'notEmpty'\r\n )\r\n bootstrapValidationForm.default.validateField(\r\n '#' + formId,\r\n $(J_CODE_POSTAL)\r\n )\r\n }\r\n\r\n $(\r\n J_AUTRES_PAYS_SELECT +\r\n ' option[data-value=\"' +\r\n item.value.substr(item.value.length - 2) +\r\n '\"]'\r\n ).prop('selected', true)\r\n $(J_LABEL_PAYS_TO_HIDE).text($(J_AUTRES_PAYS_SELECT).val())\r\n $(J_LABEL_PAYS_TO_HIDE).removeClass(C_HIDDEN)\r\n $(J_AUTRES_PAYS_SELECT).addClass(C_HIDDEN)\r\n }\r\n )\r\n}\r\n\r\n/*\r\n * Function de gestion du clique sur \"Autres pays\" qui va afficher la liste select et cacher le label FRANCE\r\n */\r\nfunction setEventForPrintingOtherPays() {\r\n $(J_AUTRES_PAYS_LINK).on('click', function (event) {\r\n const $select = $(J_AUTRES_PAYS_SELECT)\r\n\r\n if ($select !== undefined && $select !== '') {\r\n if ($select.hasClass(C_HIDDEN)) {\r\n $select.removeClass(C_HIDDEN)\r\n $(J_LABEL_PAYS_TO_HIDE).addClass(C_HIDDEN)\r\n $(event.currentTarget).addClass(C_HIDDEN)\r\n }\r\n }\r\n })\r\n}\r\n\r\n/*\r\n * Efface l'icone de validation si c'est une case téléphone, mais pas la dernière\r\n */\r\nfunction removeTelephoneIcon(e, data) {\r\n if (\r\n $(data.element).hasClass(J_TELEPHONE.replace('.', '')) &&\r\n $(data.element).attr('name') !== J_LAST_TELEPHONE_NAME\r\n ) {\r\n // Remove the required icon when the field updates its status\r\n const $icon = $(\r\n \".icon-checkform-ok[data-bv-icon-for='\" +\r\n $(data.element).attr('name') +\r\n \"']\"\r\n )\r\n $icon.addClass(C_HIDDEN)\r\n }\r\n}\r\n\r\n/*\r\n * Efface l'icone de validation des champs téléphone quand on tape\r\n * on affiche toujours l'icône invalide en priorité avec la première erreur\r\n */\r\nfunction manageValidIconTelephone() {\r\n $(J_TELEPHONE).on('change paste keyup blur', function () {\r\n import('Modules/bootstrapValidationForm').then(\r\n (bootstrapValidationForm) => {\r\n const $telephone = $(J_TELEPHONE)\r\n const validTelephonList = []\r\n const invalidTelephonList = []\r\n let cptInvalidField = 0\r\n\r\n $telephone.each(function (index, item) {\r\n if (\r\n bootstrapValidationForm.default.isValidField(\r\n $($(item).closest('form')),\r\n $(item)\r\n ) === true\r\n ) {\r\n validTelephonList.push(item)\r\n }\r\n if (\r\n bootstrapValidationForm.default.isValidField(\r\n $($(item).closest('form')),\r\n $(item)\r\n ) === false\r\n ) {\r\n cptInvalidField++\r\n invalidTelephonList.push(item)\r\n }\r\n })\r\n\r\n if (\r\n cptInvalidField > 0 &&\r\n validTelephonList !== undefined &&\r\n validTelephonList.length > 0\r\n ) {\r\n $(validTelephonList).each(function (index, item) {\r\n if (\r\n bootstrapValidationForm.isValidField(\r\n $($(item).closest('form')),\r\n $(item)\r\n ) === true\r\n ) {\r\n const name = $(item).attr('name')\r\n const icon = $(\r\n \".icon-checkform-ok[data-bv-icon-for='\" +\r\n name +\r\n \"']\"\r\n )\r\n if (icon !== undefined) {\r\n $(icon).addClass(C_HIDDEN)\r\n }\r\n }\r\n })\r\n }\r\n\r\n if (\r\n cptInvalidField > 1 &&\r\n invalidTelephonList !== undefined &&\r\n invalidTelephonList.length > 1\r\n ) {\r\n // on efface le premier élément pour afficher une erreur à la fois. Si son erreur est à hidden, on l'affiche\r\n const firstElement = invalidTelephonList.shift()\r\n let name = $(firstElement).attr('name')\r\n let error = $(\".help-block[data-bv-for='\" + name + \"']\")\r\n if (error !== undefined && $(error).hasClass(C_HIDDEN)) {\r\n $(error).removeClass(C_HIDDEN)\r\n }\r\n\r\n // On cache les autres erreurs\r\n $(invalidTelephonList).each(function (index, item) {\r\n if (\r\n bootstrapValidationForm.default.isValidField(\r\n $($(item).closest('form')),\r\n $(item)\r\n ) === false\r\n ) {\r\n name = $(item).attr('name')\r\n error = $(\".help-block[data-bv-for='\" + name + \"']\")\r\n if (error !== undefined) {\r\n $(error).addClass(C_HIDDEN)\r\n }\r\n }\r\n })\r\n } else {\r\n // Si il n'y a qu'une erreur et qu'elle est caché, on l'affiche\r\n const name = $(invalidTelephonList[0]).attr('name')\r\n const error = $(\".help-block[data-bv-for='\" + name + \"']\")\r\n if (error !== undefined && $(error).hasClass(C_HIDDEN)) {\r\n $(error).removeClass(C_HIDDEN)\r\n }\r\n }\r\n }\r\n )\r\n })\r\n}\r\n\r\n/*\r\n * selon le pays actuellement sélectionné, on change les settings du formulaire / affiche des choses différentes\r\n */\r\nfunction changeSettingsByPays() {\r\n $(J_AUTRES_PAYS_SELECT).on('change', function (event) {\r\n import('Modules/bootstrapValidationForm').then(\r\n (bootstrapValidationForm) => {\r\n // produit.default.init('#modal-produit', '#modal-produit-dialog')\r\n const form = $(event.currentTarget).closest('form')\r\n\r\n // raz des champ CP et Ville\r\n $(J_VILLE_SELECTOR).val('')\r\n $(J_CLASSICAL_VILLE_INPUT).val('')\r\n $(J_CODE_POSTAL).val('')\r\n\r\n if (\r\n $(event.currentTarget)\r\n .find(':selected')\r\n .data(J_DATA_VALUE_PAYS) === 'FR'\r\n ) {\r\n // Changement du field telephone\r\n $(J_TELEPHONE).removeClass(C_HIDDEN)\r\n $(J_OTHER_TELEPHONE).addClass(C_HIDDEN)\r\n\r\n // Changement des settings du code postal\r\n bootstrapValidationForm.default.enableValidator(\r\n '#' + $(form).attr('id'),\r\n J_CODE_POSTAL_NAME,\r\n 'stringLength'\r\n )\r\n bootstrapValidationForm.default.validateField(\r\n '#' + $(form).attr('id'),\r\n J_CODE_POSTAL_NAME\r\n )\r\n } else {\r\n // Changement du field telephone\r\n $(J_OTHER_TELEPHONE).removeClass(C_HIDDEN)\r\n $(J_TELEPHONE).addClass(C_HIDDEN)\r\n\r\n $(J_VILLE_SELECTOR).addClass(C_HIDDEN)\r\n $(J_CLASSICAL_VILLE_INPUT).removeClass(C_HIDDEN)\r\n\r\n // Changement des settings du code postal\r\n bootstrapValidationForm.default.disableValidator(\r\n '#' + $(form).attr('id'),\r\n J_CODE_POSTAL_NAME,\r\n 'stringLength'\r\n )\r\n bootstrapValidationForm.default.validateField(\r\n '#' + $(form).attr('id'),\r\n J_CODE_POSTAL_NAME\r\n )\r\n }\r\n }\r\n )\r\n })\r\n}\r\n\r\nfunction showVilleFieldWhenSelectingAutresVilles() {\r\n $(J_VILLE_SELECTOR).on('change', function (event) {\r\n if ($(event.currentTarget).val() === J_AUTRES_VILLES) {\r\n if ($(event.currentTarget).hasClass(C_HIDDEN) === false) {\r\n $(event.currentTarget).addClass(C_HIDDEN)\r\n }\r\n if ($(J_CLASSICAL_VILLE_INPUT).hasClass(C_HIDDEN)) {\r\n $(J_CLASSICAL_VILLE_INPUT).removeClass(C_HIDDEN)\r\n }\r\n // $(J_AUTRES_PAYS_SELECT + ' option[data-value=FR]').remove();\r\n $(J_AUTRES_PAYS_SELECT).removeClass(C_HIDDEN)\r\n $(J_LABEL_PAYS_TO_HIDE).addClass(C_HIDDEN)\r\n } else {\r\n const cityName = $(event.currentTarget).val()\r\n // Modification du pays lors de la sélection d'une ville depuis la combobox autocomplétante\r\n if (cityName.substring(cityName.length - 2) == 'FR') {\r\n // var opt = document.createElement(\"option\");\r\n // opt.text = \"France Metropolitaine\";\r\n // opt.setAttribute('data-value', 'FR');\r\n // $(J_AUTRES_PAYS_SELECT).children('optgroup')[0].appendChild(opt);\r\n } else {\r\n // $(J_AUTRES_PAYS_SELECT + ' option[data-value=FR]').remove();\r\n }\r\n\r\n $(J_CLASSICAL_VILLE_INPUT).val(cityName)\r\n\r\n // $(J_AUTRES_PAYS_SELECT + ' option').prop('selected', false);\r\n // $(J_AUTRES_PAYS_SELECT + ' option[data-value=\"' + cityName.substring(cityName.length - 2) + '\"]').prop('selected', true);\r\n // $(J_LABEL_PAYS_TO_HIDE).removeClass(C_HIDDEN);\r\n // $(J_LABEL_PAYS_TO_HIDE).text($(J_AUTRES_PAYS_SELECT).val());\r\n // $(J_AUTRES_PAYS_SELECT).addClass(C_HIDDEN);\r\n }\r\n })\r\n}\r\n\r\nexport default {\r\n processModificationAdresseLivraison: processModificationAdresseLivraison,\r\n processModificationAdresseFacturation:\r\n processModificationAdresseFacturation,\r\n setEventOnComplementAdresseLink: setEventOnComplementAdresseLink,\r\n setEventForGettingVillesByCodePostal: setEventForGettingVillesByCodePostal,\r\n getListOfVillesForAutoCompleteField: getListOfVillesForAutoCompleteField,\r\n insertCodePostalWhenSelectingVille: insertCodePostalWhenSelectingVille,\r\n setEventForPrintingOtherPays: setEventForPrintingOtherPays,\r\n manageValidIconTelephone: manageValidIconTelephone,\r\n removeTelephoneIcon: removeTelephoneIcon,\r\n changeSettingsByPays: changeSettingsByPays,\r\n showVilleFieldWhenSelectingAutresVilles:\r\n showVilleFieldWhenSelectingAutresVilles\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Module Ad Blocker\r\n */\r\nlet adBlockEnabled = false\r\n\r\n/**\r\n * Détecte si un bloquer de publicité est activé sur le poste de l'utilisateur\r\n */\r\nfunction initAdBlockerDetection() {\r\n const testAd = document.createElement('div')\r\n testAd.innerHTML = ' '\r\n testAd.className = 'adsbox'\r\n document.body.appendChild(testAd)\r\n window.setTimeout(function () {\r\n if (testAd.offsetHeight === 0) {\r\n adBlockEnabled = true\r\n }\r\n testAd.remove()\r\n }, 100)\r\n}\r\n\r\n/**\r\n * Retourne si un utilisateur utilisateur un bloqueur de publicité\r\n */\r\nfunction useAdBlocker() {\r\n return adBlockEnabled\r\n}\r\n\r\nexport default {\r\n useAdBlocker: useAdBlocker,\r\n initAdBlockerDetection: initAdBlockerDetection\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Module AJAX\r\n */\r\n\r\nimport { AJAXLOADERINTERNALERROR } from 'Modules/Resources/Error'\r\n\r\nconst J_LOCATION_PRINT = '.j_ajaxloader_print'\r\nconst J_AJAX_LOADER_GIF = '.j_loader_gif'\r\nconst C_ERROR_CLASS = 'error'\r\nconst C_HIDDEN = 'hidden'\r\n\r\n/*\r\n * Load une action d'un controlleur et insert le content dans la page web\r\n * Les paramètres à envoyer doivent-être de la forme { id: id }, etc.\r\n */\r\nfunction loadAndPrintContent(paramsToSend) {\r\n // On affiche le gif de chargement\r\n let $location = $(J_LOCATION_PRINT)\r\n const action = $location.data('action') // On récupère le controller visé\r\n const $gif = $(J_AJAX_LOADER_GIF)\r\n\r\n $location.removeClass(C_ERROR_CLASS)\r\n\r\n if ($gif !== undefined) {\r\n $gif.removeClass(C_HIDDEN)\r\n }\r\n\r\n const posting = $.ajax({\r\n // On appel l'action du controlleur en lui passant les paramètres désirés\r\n type: 'POST',\r\n url: action,\r\n data: paramsToSend\r\n })\r\n\r\n posting.done(function (content) {\r\n // En cas de réussite, on ajoute le résultat au html\r\n // On cache le gif de chargement\r\n const $gif = $(J_AJAX_LOADER_GIF)\r\n if ($gif !== undefined) {\r\n $gif.addClass(C_HIDDEN)\r\n }\r\n $(J_LOCATION_PRINT).empty().append(content)\r\n })\r\n\r\n posting.fail(function () {\r\n // En cas d'échec on affiche une erreur\r\n // On cache le gif de chargement\r\n const $gif = $(J_AJAX_LOADER_GIF)\r\n if ($gif !== undefined) {\r\n $gif.addClass(C_HIDDEN)\r\n }\r\n\r\n $location = $(J_LOCATION_PRINT)\r\n\r\n $location.addClass(C_ERROR_CLASS)\r\n $location.empty().append(AJAXLOADERINTERNALERROR)\r\n })\r\n}\r\n\r\n/*\r\n * Load une action d'un controller et execute une callback avec son content\r\n * Les paramètres à envoyer doivent-être de la forme { id: id }, etc.\r\n */\r\nfunction loadAndExecuteCallBack(\r\n requestType,\r\n paramsToSend,\r\n sucessCallback,\r\n failCallback,\r\n action\r\n) {\r\n // On affiche le gif de chargement\r\n const $gif = $(J_AJAX_LOADER_GIF)\r\n\r\n if ($gif !== undefined) {\r\n $gif.removeClass(C_HIDDEN)\r\n }\r\n\r\n const posting = $.ajax({\r\n // On appel l'action du controlleur en lui passant les paramètres désirés\r\n type: requestType,\r\n url: action,\r\n data: paramsToSend\r\n })\r\n\r\n posting.done(function (content) {\r\n // En cas de réussite, on ajoute le résultat au html\r\n // On cache le gif de chargement\r\n const $gif = $(J_AJAX_LOADER_GIF)\r\n if ($gif !== undefined) {\r\n $gif.addClass(C_HIDDEN)\r\n }\r\n if (content.TagScripts !== undefined && content.TagScripts != '') {\r\n try {\r\n eval(content.TagScripts)\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n }\r\n sucessCallback(content)\r\n })\r\n\r\n posting.fail(function (content) {\r\n // on cache le gif de chargement\r\n const $gif = $(J_AJAX_LOADER_GIF)\r\n if ($gif !== undefined) {\r\n $gif.addClass(C_HIDDEN)\r\n }\r\n\r\n failCallback(content)\r\n })\r\n}\r\n\r\nexport default {\r\n loadAndPrintContent: loadAndPrintContent,\r\n loadAndExecuteCallBack: loadAndExecuteCallBack\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * MODULE AJAX\r\n * Enregistre des appels AJAX à exécuté plus tard dans un workflow (ex: connexion utilisateur)\r\n */\r\n\r\n/**\r\n * Appel AJAX en fin de workflow\r\n * @param {function} a Callback\r\n */\r\nfunction CallLast(a) {\r\n $.ajax({\r\n url: window.LastCallurl,\r\n data: window.LastCalldata,\r\n success: function (data) {\r\n if (window.LastSuccess != null) {\r\n window.LastSuccess(data)\r\n }\r\n\r\n if (a != null) {\r\n a()\r\n }\r\n }\r\n })\r\n}\r\n\r\n/**\r\n * Enregistre l'url, le payload et une callback pour un appel AJAX en fin de workflow\r\n * @param {function} a Callback\r\n */\r\nfunction SaveLastCall(url, data, onSuccess) {\r\n window.LastCallurl = url\r\n window.LastCalldata = data\r\n window.LastSuccess = onSuccess\r\n}\r\n\r\nexport default {\r\n CallLast: CallLast,\r\n SaveLastCall: SaveLastCall\r\n}\r\n","'use strict'\r\n\r\n// Module qui gère les tooltips bootstrap\r\n\r\n/*\r\n * Fonction qui init le validator bootstrap sur des input.\r\n * Le premier paramètre représente la class de l'input sur lequel il faut init le validator\r\n */\r\nfunction initForm(classOfElementToInit, callback, callBackOnField) {\r\n $(classOfElementToInit)\r\n .bootstrapValidator({\r\n fields: {\r\n 'model.CP': {\r\n validators: {\r\n callback: {\r\n message:\r\n 'Veuillez vérifier le code postal et la ville',\r\n callback: function (value, validator, $field) {\r\n return $field.data('villecperror') == 0\r\n }\r\n }\r\n }\r\n },\r\n\r\n 'model.Ville': {\r\n validators: {\r\n callback: {\r\n message:\r\n 'Veuillez vérifier le code postal et la ville',\r\n callback: function (value, validator, $field) {\r\n return $field.data('villecperror') == 0\r\n }\r\n }\r\n }\r\n }\r\n }\r\n })\r\n .on('success.form.bv', callback) // sur la validation du form on execute la callback qui doit prendre un form en entrée\r\n .on('success.field.bv', callBackOnField)\r\n}\r\n\r\nfunction destroyForm(classOfElementToDestroy) {\r\n $(classOfElementToDestroy).bootstrapValidator('destroy')\r\n}\r\n\r\n/*\r\n * Fonction qui init le validator bootstrap sur des input.\r\n * Le premier paramètre représente la class de l'input sur lequel il faut init le validator\r\n */\r\nfunction initModalForm(classOfModal, classOfElementToInit, callback) {\r\n $(classOfModal)\r\n .on('shown.bs.modal', function () {\r\n $(classOfElementToInit).bootstrapValidator('resetForm', true)\r\n })\r\n .on('success.form.bv', callback) // sur la validation du form on execute la callback qui doit prendre un form en entrée\r\n}\r\n\r\n/*\r\n * Va déclarer un champ comme invalide avec le bootstrap validator\r\n * Premier paramètre : id du formulaire avec le #\r\n * Deuxieme paramètre : nom du champ\r\n * Troisième paramètre : nom du validator à utiliser pour invalider le champ\r\n */\r\nfunction setItemAsInvalid(formId, fieldName, validator) {\r\n if (existsField(formId, fieldName)) {\r\n $(formId).bootstrapValidator(\r\n 'updateStatus',\r\n fieldName,\r\n 'INVALID',\r\n validator\r\n )\r\n }\r\n}\r\n\r\n/*\r\n * Va déclarer un champ comme invalide avec le bootstrap validator\r\n * Premier paramètre : id du formulaire avec le #\r\n * Deuxieme paramètre : nom du champ\r\n * Troisième paramètre : nom du validator à utiliser pour invalider le champ\r\n */\r\nfunction setItemAsValid(formId, fieldName, validator) {\r\n if (existsField(formId, fieldName)) {\r\n $(formId).bootstrapValidator(\r\n 'updateStatus',\r\n fieldName,\r\n 'VALID',\r\n validator\r\n )\r\n }\r\n}\r\n\r\n/*\r\n * Fonction qui désactive une vérification sur un champ du formulaire dont l'id est passé en paramètre\r\n * Premier paramètre : id du formulaire avec le #\r\n * Deuxieme paramètre : nom du champ\r\n * Troisème paramètre : nom du validator à désactiver\r\n */\r\nfunction disableValidator(formId, fieldName, validator) {\r\n if (existsValidators(formId, fieldName, validator)) {\r\n $(formId).bootstrapValidator(\r\n 'enableFieldValidators',\r\n fieldName,\r\n false,\r\n validator\r\n )\r\n }\r\n}\r\n\r\n/*\r\n * Fonction qui active une vérification sur un champ du formulaire dont l'id est passé en paramètre\r\n * Premier paramètre : id du formulaire avec le #\r\n * Deuxieme paramètre : nom du champ\r\n * Troisème paramètre : nom du validator à activer\r\n */\r\nfunction enableValidator(formId, fieldName, validator) {\r\n if (existsValidators(formId, fieldName, validator)) {\r\n $(formId).bootstrapValidator(\r\n 'enableFieldValidators',\r\n fieldName,\r\n true,\r\n validator\r\n )\r\n }\r\n}\r\n\r\nfunction existsValidators(formId, fieldName, validator) {\r\n const bv = $(formId).data('bootstrapValidator')\r\n\r\n if (bv == null || bv.options == null) {\r\n return false\r\n }\r\n\r\n const field = bv.options.fields[fieldName]\r\n\r\n if (field == null) {\r\n return false\r\n }\r\n\r\n return field.validators[validator] != null\r\n}\r\n\r\nfunction existsField(formId, fieldName) {\r\n const bv = $(formId).data('bootstrapValidator')\r\n\r\n if (bv == null || bv.options == null) {\r\n return false\r\n }\r\n\r\n const field = bv.options.fields[fieldName]\r\n\r\n return field != null\r\n}\r\n\r\n/*\r\n * Check si l'input est valide ou non. Retourne true si tout les validateurs du field sont passés\r\n * Premier paramètre : id du formulaire avec le #\r\n * deuxième paramètre : champ à vérifier si valide ou non\r\n */\r\nfunction isValidField(formId, fieldNameOrElement) {\r\n return $(formId).data('bootstrapValidator').isValidField(fieldNameOrElement)\r\n}\r\n\r\n/*\r\n * Va valider un field passé en paramètre\r\n * Premier paramètre : id du formulaire avec le #\r\n * deuxième paramètre : champ à valider\r\n */\r\nfunction validateField(formId, fieldNameOrElement) {\r\n if (existsField(formId, fieldNameOrElement)) {\r\n $(formId).data('bootstrapValidator').validateField(fieldNameOrElement)\r\n }\r\n}\r\n\r\nfunction validate(formId, classtoSearch) {\r\n // Récupération de tous les champs a valider\r\n $(formId)\r\n .find(classtoSearch)\r\n .each(function (index) {\r\n validateField(formId, $(this).attr('name'))\r\n })\r\n}\r\n\r\nexport default {\r\n initForm: initForm,\r\n destroyForm: destroyForm,\r\n initModalForm: initModalForm,\r\n setItemAsInvalid: setItemAsInvalid,\r\n setItemAsValid: setItemAsValid,\r\n disableValidator: disableValidator,\r\n enableValidator: enableValidator,\r\n validateField: validateField,\r\n isValidField: isValidField,\r\n validate: validate\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Module qui gère le carousel a multiple image\r\n * Doc on http://kenwheeler.github.io/slick/\r\n */\r\n\r\n/**\r\n * Vérifie si l'élément est présent dans le DOM\r\n * @param {string} selector Selecteur CSS\r\n * @returns\r\n */\r\nfunction elementExistsInDOM(selector) {\r\n return $(selector).length !== 0\r\n}\r\n\r\n/**\r\n * HOME / MAISON SECONDE\r\n */\r\n\r\nconst J_INFLUENCEURS_SLIDER = '.j_influenceurs_slider' // INFLUENCEURS HOME / MAISON SECONDE\r\n\r\nfunction activerCarrouselInfluenceurs() {\r\n if (elementExistsInDOM(J_INFLUENCEURS_SLIDER)) {\r\n //nb of slides before slider is built, since slides are duplicated\r\n let nb_real_slides = $(\r\n J_INFLUENCEURS_SLIDER + ' .secondemain__influenceur'\r\n ).length\r\n let currentInfluenceur = 0\r\n let currentSlide = 0\r\n\r\n $(window).resize(function () {\r\n $(J_INFLUENCEURS_SLIDER)[0].slick.refresh()\r\n let current = $(\r\n J_INFLUENCEURS_SLIDER + ' .slick-slide.slick-current'\r\n ).attr('data-slick-index')\r\n let next = parseInt(current) + 1\r\n let prev = parseInt(current) - 1\r\n $(\r\n J_INFLUENCEURS_SLIDER +\r\n ' .slick-slide[data-slick-index=' +\r\n current +\r\n ']'\r\n )\r\n .addClass('influenceur-active')\r\n .addClass('no-transition')\r\n $(\r\n J_INFLUENCEURS_SLIDER +\r\n ' .slick-slide[data-slick-index=' +\r\n prev +\r\n ']'\r\n )\r\n .addClass('influenceur-prev')\r\n .addClass('no-transition')\r\n $(\r\n J_INFLUENCEURS_SLIDER +\r\n ' .slick-slide[data-slick-index=' +\r\n next +\r\n ']'\r\n )\r\n .addClass('influenceur-next')\r\n .addClass('no-transition')\r\n\r\n setTimeout(function () {\r\n $(J_INFLUENCEURS_SLIDER + ' .influenceur-active').removeClass(\r\n 'no-transition'\r\n )\r\n $(J_INFLUENCEURS_SLIDER + ' .influenceur-prev').removeClass(\r\n 'no-transition'\r\n )\r\n $(J_INFLUENCEURS_SLIDER + ' .influenceur-next').removeClass(\r\n 'no-transition'\r\n )\r\n }, 400)\r\n })\r\n\r\n $(J_INFLUENCEURS_SLIDER).slick({\r\n infinite: true,\r\n slidesToScroll: 1,\r\n variableWidth: true,\r\n arrows: true,\r\n centerMode: true,\r\n lazyLoad: 'progressive',\r\n autoplay: false,\r\n dots: false,\r\n responsive: [\r\n {\r\n breakpoint: 640,\r\n settings: {\r\n arrows: false\r\n }\r\n }\r\n ]\r\n })\r\n $(J_INFLUENCEURS_SLIDER + ' .slick-slide[data-slick-index=0]').addClass(\r\n 'influenceur-active'\r\n )\r\n $(\r\n J_INFLUENCEURS_SLIDER + ' .slick-slide[data-slick-index=-1]'\r\n ).addClass('influenceur-prev')\r\n $(J_INFLUENCEURS_SLIDER + ' .slick-slide[data-slick-index=1]').addClass(\r\n 'influenceur-next'\r\n )\r\n $(\r\n J_INFLUENCEURS_SLIDER +\r\n ' .slick-slide[data-slick-index=' +\r\n nb_real_slides +\r\n ']'\r\n ).addClass('influenceur-active')\r\n $(\r\n J_INFLUENCEURS_SLIDER +\r\n ' .slick-slide[data-slick-index=' +\r\n parseInt(nb_real_slides - 1) +\r\n ']'\r\n ).addClass('influenceur-prev')\r\n $(\r\n J_INFLUENCEURS_SLIDER +\r\n ' .slick-slide[data-slick-index=' +\r\n parseInt(nb_real_slides + 1) +\r\n ']'\r\n ).addClass('influenceur-next')\r\n\r\n $(J_INFLUENCEURS_SLIDER).on(\r\n 'beforeChange',\r\n function (event, slick, currentSlide, nextSlide) {\r\n if (currentSlide !== nextSlide) {\r\n let current = nextSlide\r\n let next = parseInt(current) + 1\r\n let prev = parseInt(current) - 1\r\n\r\n $('.influenceur-active')\r\n .addClass('transition-active')\r\n .removeClass('influenceur-active')\r\n $('.influenceur-prev')\r\n .addClass('transition-prev')\r\n .removeClass('influenceur-prev')\r\n $('.influenceur-next')\r\n .addClass('transition-next')\r\n .removeClass('influenceur-next')\r\n $(\r\n J_INFLUENCEURS_SLIDER +\r\n ' .slick-slide[data-slick-index=' +\r\n current +\r\n ']'\r\n ).addClass('influenceur-active')\r\n $(\r\n J_INFLUENCEURS_SLIDER +\r\n ' .slick-slide[data-slick-index=' +\r\n prev +\r\n ']'\r\n ).addClass('influenceur-prev')\r\n $(\r\n J_INFLUENCEURS_SLIDER +\r\n ' .slick-slide[data-slick-index=' +\r\n next +\r\n ']'\r\n ).addClass('influenceur-next')\r\n $(\r\n J_INFLUENCEURS_SLIDER +\r\n ' .slick-slide[data-slick-index=' +\r\n parseInt(current + nb_real_slides) +\r\n ']'\r\n ).addClass('influenceur-active')\r\n $(\r\n J_INFLUENCEURS_SLIDER +\r\n ' .slick-slide[data-slick-index=' +\r\n parseInt(current + nb_real_slides - 1) +\r\n ']'\r\n ).addClass('influenceur-prev')\r\n $(\r\n J_INFLUENCEURS_SLIDER +\r\n ' .slick-slide[data-slick-index=' +\r\n parseInt(current + nb_real_slides + 1) +\r\n ']'\r\n ).addClass('influenceur-next')\r\n $(\r\n J_INFLUENCEURS_SLIDER +\r\n ' .slick-slide[data-slick-index=' +\r\n parseInt(current - nb_real_slides) +\r\n ']'\r\n ).addClass('influenceur-active')\r\n $(\r\n J_INFLUENCEURS_SLIDER +\r\n ' .slick-slide[data-slick-index=' +\r\n parseInt(current - nb_real_slides - 1) +\r\n ']'\r\n ).addClass('influenceur-prev')\r\n $(\r\n J_INFLUENCEURS_SLIDER +\r\n ' .slick-slide[data-slick-index=' +\r\n parseInt(current - nb_real_slides + 1) +\r\n ']'\r\n ).addClass('influenceur-next')\r\n $('.transition-active').removeClass('transition-active')\r\n $('.transition-prev').removeClass('transition-prev')\r\n $('.transition-next').removeClass('transition-next')\r\n }\r\n currentInfluenceur = nextSlide\r\n }\r\n )\r\n }\r\n}\r\n\r\n/**\r\n * SHOPPING PERSO\r\n */\r\n\r\nconst J_SHOPPING_PERSO_HOME = '.j_shopping_perso'\r\n\r\nfunction activerCarrouselShoppingPerso() {\r\n if (elementExistsInDOM(J_SHOPPING_PERSO_HOME)) {\r\n $(J_SHOPPING_PERSO_HOME).slick({\r\n lazyLoad: 'progressive',\r\n infinite: true,\r\n slidesToShow: 6,\r\n slidesToScroll: 1,\r\n slide: 'div',\r\n centerMode: true,\r\n autoplay: false,\r\n dots: false,\r\n arrows: true,\r\n responsive: [\r\n {\r\n breakpoint: 1280,\r\n settings: {\r\n slidesToShow: 4,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 640,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n mobileFirst: true\r\n }\r\n }\r\n ]\r\n })\r\n\r\n $('.carouselSelecPerso .slick-prev')\r\n .empty()\r\n .append(\r\n ''\r\n )\r\n $('.carouselSelecPerso .slick-next')\r\n .empty()\r\n .append(\r\n ''\r\n )\r\n }\r\n}\r\n\r\n/**\r\n * FUSION 3M / PERSONNAL SHOPPING QUIZZ\r\n */\r\n\r\nconst J_PQ_LISTE_TAILLES = '.j_pq_liste_tailles'\r\nconst J_FUSION3M_TAILLES = '.j_fusion3m_tailles'\r\n\r\nfunction activerCarrouselTaille() {\r\n if (elementExistsInDOM(J_PQ_LISTE_TAILLES)) {\r\n $(J_PQ_LISTE_TAILLES).each(function (index, item) {\r\n $(item).slick({\r\n infinite: false,\r\n slidesToShow: 10,\r\n slidesToScroll: 4,\r\n arrows: true,\r\n slide: 'div',\r\n lazyLoad: 'ondemand',\r\n responsive: [\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n slidesToShow: 8,\r\n slidesToScroll: 4\r\n }\r\n },\r\n {\r\n breakpoint: 480,\r\n settings: {\r\n slidesToShow: 7,\r\n slidesToScroll: 3\r\n }\r\n }\r\n ]\r\n })\r\n })\r\n $('.pq_tailles .slick-prev')\r\n .empty()\r\n .append(\r\n ' '\r\n )\r\n $('.pq_tailles .slick-next')\r\n .empty()\r\n .append(\r\n ' '\r\n )\r\n }\r\n\r\n if (elementExistsInDOM(J_FUSION3M_TAILLES)) {\r\n $(J_FUSION3M_TAILLES).each(function (index, item) {\r\n if (item.slick != null) {\r\n return\r\n }\r\n\r\n $(item).slick({\r\n infinite: false,\r\n variableWidth: true,\r\n slidesToShow: 6,\r\n slidesToScroll: 2,\r\n arrows: true,\r\n waitForAnimate: false,\r\n slide: 'div',\r\n lazyLoad: 'ondemand',\r\n responsive: [\r\n {\r\n breakpoint: 480,\r\n settings: {\r\n slidesToShow: 4,\r\n slidesToScroll: 3\r\n }\r\n }\r\n ]\r\n })\r\n })\r\n $('.fusionStep2__sizes .slick-prev')\r\n .empty()\r\n .append(\r\n ' '\r\n )\r\n $('.fusionStep2__sizes .slick-next')\r\n .empty()\r\n .append(\r\n ' '\r\n )\r\n }\r\n}\r\n\r\n/**\r\n * PRODUIT / MODZLAB\r\n */\r\n\r\nconst J_MULTIPLE_CAROUSEL = '.j_multiple_carousel'\r\n\r\nfunction activerCarrouselProduitsSimilaires() {\r\n if (elementExistsInDOM(J_MULTIPLE_CAROUSEL)) {\r\n $(J_MULTIPLE_CAROUSEL).each(function (index, item) {\r\n $(item).slick({\r\n infinite: true,\r\n slidesToShow: 5,\r\n slidesToScroll: 1,\r\n arrows: true,\r\n slide: 'div',\r\n lazyLoad: 'ondemand',\r\n responsive: [\r\n {\r\n breakpoint: 1024,\r\n settings: {\r\n slidesToShow: 5,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 480,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 1\r\n }\r\n }\r\n ]\r\n })\r\n })\r\n\r\n $('.pdts-sim .slick-prev')\r\n .empty()\r\n .append(\r\n ' '\r\n )\r\n $('.pdts-sim .slick-next')\r\n .empty()\r\n .append(\r\n ' '\r\n )\r\n }\r\n}\r\n\r\nconst J_SINGLE_PRODUIT_CAROUSEL = '.j_single_produit_carousel'\r\n\r\nfunction activerCarrouselProduitMobile() {\r\n if (elementExistsInDOM(J_SINGLE_PRODUIT_CAROUSEL)) {\r\n $(J_SINGLE_PRODUIT_CAROUSEL).slick({\r\n infinite: true,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n slide: 'div',\r\n arrows: false,\r\n autoplay: false,\r\n autoplaySpeed: 2000,\r\n dots: true,\r\n lazyLoad: 'ondemand',\r\n responsive: [\r\n {\r\n breakpoint: 1024,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 640,\r\n settings: {\r\n slidesToShow: 1,\r\n arrows: false,\r\n slidesToScroll: 1\r\n }\r\n }\r\n ]\r\n })\r\n }\r\n}\r\n\r\n/**\r\n * CATALOGUE\r\n */\r\n\r\nconst J_SLIDER_FILTRETAILLE = '.j_slider_filtreTaille' // CATALOGUE\r\n\r\nfunction activerCarrouselFiltresTaille() {\r\n if (elementExistsInDOM(J_SLIDER_FILTRETAILLE)) {\r\n $(J_SLIDER_FILTRETAILLE).each(function (index, item) {\r\n if (item.slick) {\r\n return\r\n }\r\n\r\n $(item).slick({\r\n infinite: false,\r\n slidesToShow: 5,\r\n slidesToScroll: 3,\r\n arrows: true,\r\n autoplay: false,\r\n dots: false\r\n })\r\n })\r\n }\r\n}\r\n\r\n/**\r\n * MAISON SECONDE\r\n */\r\n\r\nconst J_SLIDER_AMBIANCE = '.j_slider_ambiance' // MAISON SECONDE\r\n\r\nfunction activerCarouselSecondeMain() {\r\n if (elementExistsInDOM(J_SLIDER_AMBIANCE)) {\r\n $(J_SLIDER_AMBIANCE).each(function (index, item) {\r\n $(item).slick({\r\n infinite: true,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: true,\r\n slide: 'div',\r\n lazyLoad: 'ondemand',\r\n autoplay: true, //ici\r\n autoplaySpeed: 5000,\r\n dots: true,\r\n pauseOnHover: false,\r\n pauseOnFocus: false\r\n })\r\n })\r\n }\r\n}\r\n\r\n/**\r\n * QUI SOMMES NOUS\r\n */\r\n\r\nconst J_CARDS_SLIDER = '.j_cards_slider'\r\n\r\nfunction activerCarrouselQuiSommesNous() {\r\n $(J_CARDS_SLIDER).slick({\r\n infinite: true,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: true,\r\n lazyLoad: 'ondemand',\r\n autoplay: true, //ici\r\n autoplaySpeed: 5000,\r\n dots: true,\r\n pauseOnHover: false,\r\n pauseOnFocus: false\r\n })\r\n}\r\n\r\n/**\r\n * BLOG INTERVIEWS\r\n */\r\n\r\nconst J_SINGLE_ITW_CAROUSEL_SALARIE_FOR = '.j_single_itw_carousel_salarie-for'\r\nconst J_SINGLE_ITW_CAROUSEL_SALARIE_NAV = '.j_single_itw_carousel_salarie-nav'\r\nconst J_SINGLE_ITW_CAROUSEL_CLIENT_FOR = '.j_single_itw_carousel_client-for'\r\nconst J_SINGLE_ITW_CAROUSEL_CLIENT_NAV = '.j_single_itw_carousel_client-nav'\r\nconst J_SINGLE_ITW_CAROUSEL_BOUTIQUE_FOR = '.j_single_itw_carousel_boutique-for'\r\nconst J_SINGLE_ITW_CAROUSEL_BOUTIQUE_NAV = '.j_single_itw_carousel_boutique-nav'\r\n\r\nfunction activerCarrouselBlogInterviews() {\r\n const config = {\r\n selectedVideo: (selector) => ({\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: false,\r\n fade: true,\r\n asNavFor: selector\r\n }),\r\n navVideo: (selector) => ({\r\n slidesToShow: 3,\r\n slidesToScroll: 1,\r\n asNavFor: selector,\r\n dots: true,\r\n centerMode: true,\r\n lazyLoad: 'progressive',\r\n focusOnSelect: true,\r\n responsive: [\r\n {\r\n breakpoint: 640,\r\n settings: {\r\n slidesToShow: 1,\r\n centerMode: true\r\n }\r\n }\r\n ]\r\n })\r\n }\r\n\r\n const carrousels = [\r\n {\r\n selected: J_SINGLE_ITW_CAROUSEL_SALARIE_FOR,\r\n nav: J_SINGLE_ITW_CAROUSEL_SALARIE_NAV\r\n },\r\n {\r\n selected: J_SINGLE_ITW_CAROUSEL_CLIENT_FOR,\r\n nav: J_SINGLE_ITW_CAROUSEL_CLIENT_NAV\r\n },\r\n {\r\n selected: J_SINGLE_ITW_CAROUSEL_BOUTIQUE_FOR,\r\n nav: J_SINGLE_ITW_CAROUSEL_BOUTIQUE_NAV\r\n }\r\n ]\r\n\r\n carrousels.forEach((x) => {\r\n if (!elementExistsInDOM(x.selected)) {\r\n return\r\n }\r\n\r\n $(x.selected).slick(config.selectedVideo(x.nav))\r\n\r\n $(x.nav).slick(config.navVideo(x.selected))\r\n })\r\n}\r\n\r\n//slick slider pour ambiance partial Vente flash\r\nfunction activerCarouselHomeAmbianceVentelash() {\r\n $(document).ready(function () {\r\n const VenteFlashSlider = '.slider-container'\r\n $(VenteFlashSlider).slick({\r\n centerMode: false,\r\n slidesToShow: 3,\r\n autoplay: true,\r\n speed: 8000,\r\n cssEase: 'linear',\r\n slidesToScroll: 1,\r\n autoplaySpeed: 0,\r\n vertical: true,\r\n infinite: true,\r\n arrows: false,\r\n buttons: false,\r\n responsive: [\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n vertical: false\r\n }\r\n }\r\n ]\r\n })\r\n })\r\n}\r\n//slick slider boutique de noel\r\n\r\nconst J_SLIDER_BDN = '.j_slider_bdn' // MAISON SECONDE\r\n\r\nfunction activerCarouselBdn() {\r\n if (elementExistsInDOM(J_SLIDER_BDN)) {\r\n $(J_SLIDER_BDN).each(function (index, item) {\r\n $(item).slick({\r\n infinite: true,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n arrows: true,\r\n slide: 'div',\r\n lazyLoad: 'ondemand',\r\n autoplay: true, //ici\r\n autoplaySpeed: 5000,\r\n dots: true,\r\n pauseOnHover: false,\r\n pauseOnFocus: false,\r\n responsive: [\r\n {\r\n breakpoint: 600,\r\n settings: {\r\n autoplaySpeed: 3000\r\n }\r\n }\r\n ]\r\n })\r\n })\r\n }\r\n}\r\nexport default {\r\n activerCarrouselShoppingPerso: activerCarrouselShoppingPerso,\r\n activerCarrouselTaille: activerCarrouselTaille,\r\n activerCarrouselQuiSommesNous: activerCarrouselQuiSommesNous,\r\n activerCarrouselBlogInterviews: activerCarrouselBlogInterviews,\r\n activerCarrouselProduitsSimilaires: activerCarrouselProduitsSimilaires,\r\n activerCarrouselFiltresTaille: activerCarrouselFiltresTaille,\r\n activerCarrouselProduitMobile: activerCarrouselProduitMobile,\r\n activerCarouselSecondeMain: activerCarouselSecondeMain,\r\n activerCarrouselInfluenceurs: activerCarrouselInfluenceurs,\r\n activerCarouselHomeAmbianceVentelash: activerCarouselHomeAmbianceVentelash,\r\n activerCarouselBdn: activerCarouselBdn\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Module qui gère l'effacement du texte dans les input quand on clique dessus (ex. Saisissez votre newsletter)\r\n */\r\n\r\nconst J_CLEANTEXTONFOCUS = '.j_cleanTextOnFocus'\r\nconst J_DATA_DEFAULTVALUE = 'defaultvalue'\r\n\r\n/*\r\n * Set des events pour détecter si c'est le message par défaut dans le champs, et si il faut le supprimer\r\n */\r\nfunction setEvent() {\r\n const $items = $(J_CLEANTEXTONFOCUS)\r\n\r\n $items.each(function (index, inputElement) {\r\n $(inputElement).on('blur', function (event) {\r\n setDefaultValueIfEmpty(event.currentTarget)\r\n })\r\n $(inputElement).on('focus', function (event) {\r\n eraseIfDefaultValue(event.currentTarget)\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * Vide le champ si il contient la valeur par défaut\r\n * @param {string} target Element HTML\r\n */\r\nfunction eraseIfDefaultValue(target) {\r\n const focusedInput = target\r\n const defaultValue = $(focusedInput).data(J_DATA_DEFAULTVALUE)\r\n\r\n if (focusedInput.value === defaultValue) {\r\n focusedInput.value = ''\r\n }\r\n}\r\n\r\n/**\r\n * Si le champ est vide, on met la valeur par défaut\r\n * @param {string} target Element HTML\r\n */\r\nfunction setDefaultValueIfEmpty(target) {\r\n const focusedInput = target\r\n const defaultValue = $(focusedInput).data(J_DATA_DEFAULTVALUE)\r\n\r\n if (focusedInput.value === '') {\r\n focusedInput.value = defaultValue\r\n }\r\n}\r\n\r\n/*\r\n * Set des events pour détecter si c'est le message qui doit être effacé au clique dans le champ. Le message est la valeur du champ au moment de l'appel du setEvent\r\n */\r\nfunction setEventOnCustomText(val) {\r\n const $items = $(J_CLEANTEXTONFOCUS)\r\n $items.off() // On désactive les autres events sur ces items si elles y sont\r\n\r\n $items.each(function (index, inputElement) {\r\n $(inputElement).on('blur', function (event) {\r\n setCustomValueIfEmpty(val, event.currentTarget)\r\n })\r\n $(inputElement).on('focus', function (event) {\r\n eraseIfCustomValue(val, event.currentTarget)\r\n })\r\n })\r\n}\r\n\r\n/**\r\n * Vide le champ si il contient la valeur par défaut passée en paramètre\r\n * @param {string} defaultValue Valeur pas défaut\r\n * @param {string} target Element HTML\r\n */\r\nfunction eraseIfCustomValue(defaultValue, target) {\r\n const focusedInput = target\r\n\r\n if (focusedInput.value === defaultValue) {\r\n focusedInput.value = ''\r\n }\r\n}\r\n\r\n/**\r\n * Si le champ est vide, on met la valeur par défaut passée en paramètre\r\n * @param {string} defaultValue Valeur pas défaut\r\n * @param {string} target Element HTML\r\n */\r\nfunction setCustomValueIfEmpty(defaultValue, target) {\r\n const focusedInput = target\r\n\r\n if (focusedInput.value === '') {\r\n focusedInput.value = defaultValue\r\n }\r\n}\r\n\r\nexport default {\r\n setEvent: setEvent,\r\n setEventOnCustomText: setEventOnCustomText\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * 3M FUSION\r\n */\r\n\r\nimport {\r\n SUIVANT,\r\n NAVIGATION_PRECEDENT,\r\n SESAME_OUVRE_TOI\r\n} from 'Modules/Resources/Label'\r\nimport carousel from 'Modules/carousel'\r\nimport profileCookie from 'Modules/profileCookie'\r\nimport modal from 'Modules/modal'\r\n\r\nlet _app\r\nlet validator\r\n\r\n/**\r\n * Builder PopIn3M.\r\n *\r\n * Permet l'ajout de la pop in 3M à l'affichage d'une page ou suite à un événement\r\n *\r\n * @constructor\r\n * @param {string} popInSelector - Sélecteur CSS du container de la pop in\r\n *\r\n * Par défaut, la pop in s'ouvrira automatiquement et ne forcera pas l'utilisateur à faire le process complet\r\n */\r\nexport class PopIn3M {\r\n _popInSelector\r\n _event\r\n _eventElementSelector\r\n _openingMode\r\n _isOpenAuto\r\n _locationHash\r\n _showModal\r\n _redirectUrl\r\n _showStyleOptions\r\n _containerClass\r\n\r\n constructor(popInSelector) {\r\n if (popInSelector == null || popInSelector === '') {\r\n throw new Error(\"La pop in 3m n'a pas de sélecteur CSS.\")\r\n }\r\n\r\n this._popInSelector = popInSelector\r\n this._openingMode = 'AUTO'\r\n this._isOpenAuto = false\r\n this._locationHash = ''\r\n this._showModal = true\r\n this._redirectUrl = ''\r\n this._showStyleOptions = true\r\n this._containerClass = 'jsModalFusion3m'\r\n }\r\n\r\n /**\r\n * Définis le type d'événement Javascript\r\n *\r\n * Le mode d'ouverture passe à EVENT\r\n * @param {string} event - Évenement Javascript\r\n * @returns\r\n */\r\n setEvent(event) {\r\n this._event = event\r\n this._openingMode = 'EVENT'\r\n\r\n return this\r\n }\r\n\r\n /**\r\n * Définis l'élément par son sélecteur CSS sur lequel on attache l'événement\r\n * @param {string} selector Sélecteur CSS\r\n * @returns\r\n */\r\n setEventElement(selector) {\r\n this._eventElementSelector = selector\r\n\r\n return this\r\n }\r\n\r\n /**\r\n * Définis si la pop in a un process complet (tailles, styles, etc) ou non\r\n * @param {boolean} isOpenAuto\r\n * @returns\r\n */\r\n setIsOpenAuto(isOpenAuto) {\r\n this._isOpenAuto = isOpenAuto\r\n\r\n return this\r\n }\r\n\r\n /**\r\n * Définis le hash de la page ()\r\n *\r\n * Le mode d'ouverture passe à AUTO\r\n * @param {string} hash\r\n * @returns\r\n */\r\n setLocationHash(hash) {\r\n this._locationHash = hash\r\n this._openingMode = 'AUTO'\r\n\r\n return this\r\n }\r\n\r\n /**\r\n * Définis si la modal doit s'ouvrir directement\r\n *\r\n * @param {boolean} showModal\r\n * @returns\r\n */\r\n setShowModal(showModal) {\r\n this._showModal = showModal\r\n\r\n return this\r\n }\r\n\r\n /**\r\n * Définis si l'url de redirection de la modal\r\n *\r\n * @param {string} url\r\n * @returns\r\n */\r\n setRedirectUrl(url) {\r\n this._redirectUrl = url\r\n\r\n return this\r\n }\r\n\r\n /**\r\n * Définis si on affiche le bouton pour plus de style\r\n *\r\n * Valeur par défaut : `true`\r\n *\r\n * @param {boolean} value\r\n * @returns\r\n */\r\n setShowStyleOptions(value) {\r\n this._showStyleOptions = value\r\n\r\n return this\r\n }\r\n\r\n /**\r\n * Définis si la class Css du container\r\n *\r\n * Valeur par défaut : `jsModalFusion3m`\r\n *\r\n * @param {boolean} value\r\n * @returns\r\n */\r\n setContainerClass(value) {\r\n this._containerClass = value\r\n\r\n return this\r\n }\r\n\r\n /**\r\n * Build la pop in\r\n */\r\n build() {\r\n // Ouverture automatique\r\n if (\r\n (this._openingMode == 'AUTO' && this._locationHash === '') ||\r\n (this._openingMode == 'AUTO' &&\r\n this._locationHash === window.location.hash)\r\n ) {\r\n if (this.isAppAlreadyMounted()) {\r\n window.dispatchEvent(new Event('tutorial_begin'))\r\n $(this._popInSelector).modal()\r\n return\r\n }\r\n\r\n if (this.isModalContentAlreayLoaded()) {\r\n this.init()\r\n return\r\n }\r\n\r\n const _self = this\r\n\r\n modal.miseAjourParClassCss(\r\n _self._containerClass,\r\n window.location.origin + '/home/LoadModalQuizz',\r\n function () {\r\n _self.init()\r\n }\r\n )\r\n }\r\n\r\n // Ouverture par événément\r\n if (this._event != null && this._openingMode === 'EVENT') {\r\n const _self = this\r\n\r\n if ($(_self._eventElementSelector).hasClass('prevent-click')) {\r\n return\r\n }\r\n\r\n $(_self._eventElementSelector).on(_self._event, function () {\r\n if (\r\n _self.isAppAlreadyMounted() ||\r\n _self.isModalContentAlreayLoaded()\r\n ) {\r\n window.dispatchEvent(new Event('tutorial_begin'))\r\n $(_self._popInSelector).modal()\r\n return\r\n }\r\n\r\n modal.miseAjourParClassCss(\r\n _self._containerClass,\r\n window.location.origin + '/home/LoadModalQuizz',\r\n function () {\r\n _self.init()\r\n window.dispatchEvent(new Event('tutorial_begin'))\r\n $(_self._popInSelector).modal()\r\n }\r\n )\r\n })\r\n }\r\n }\r\n\r\n isAppAlreadyMounted() {\r\n if ($(this._popInSelector).get(0) == null) {\r\n return false\r\n }\r\n\r\n return $(this._popInSelector).get(0).__vue__ != null\r\n }\r\n\r\n isModalContentAlreayLoaded() {\r\n return $(this._popInSelector + ' #formProfilFusion3m').get(0) != null\r\n }\r\n\r\n init() {\r\n LaunchApp(this._popInSelector, this._redirectUrl)\r\n _app.InitData()\r\n _app.ChargerInformations()\r\n _app.openAuto = this._isOpenAuto\r\n _app.SetShowStyleOptions(this._showStyleOptions)\r\n\r\n $(this._popInSelector).on('show.bs.modal', function () {\r\n window.dispatchEvent(new Event('tutorial_begin'))\r\n _app.SetIsModalOpen()\r\n })\r\n\r\n $(this._popInSelector).on('hide.bs.modal', function () {\r\n _app.ResetModal()\r\n })\r\n\r\n const self = this\r\n\r\n // AB TASTY\r\n if (!this._showModal) {\r\n $(this._popInSelector).on('hide.bs.modal', function () {\r\n // Suppression des carousel Slick\r\n $('.j_pq_liste_tailles').each(function (index, item) {\r\n $(item).slick('unslick')\r\n })\r\n $('.j_fusion3m_tailles').each(function (index, item) {\r\n $(item).slick('unslick')\r\n })\r\n // Suppression du contenu de la modal\r\n $(self._popInSelector).remove()\r\n })\r\n }\r\n\r\n if (this._showModal) {\r\n $(this._popInSelector).modal()\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Méthode qui initialise le composant Vue\r\n * @param {string} appId Id du composant Vue\r\n * @param {string} redirectUrl Url de redirection\r\n */\r\nfunction LaunchApp(appId, redirectUrl = null) {\r\n const myHeaders = new Headers()\r\n myHeaders.append('Content-Type', 'application/json')\r\n\r\n const urlAPP = window.location.origin\r\n\r\n function onMouseDown(evt) {\r\n const myinput = $(evt.target)\r\n .parent('label')\r\n .siblings('input')\r\n .attr('id')\r\n const element = $(evt.target).parent().children('svg')\r\n\r\n if ($('#' + myinput).is(':checked')) {\r\n element[0].classList.remove('noscale-nocheck')\r\n element[0].classList.add('scale-check')\r\n element[0].classList.remove('noscale-check')\r\n } else {\r\n element[0].classList.remove('noscale-check')\r\n element[0].style.opacity = '1'\r\n element[0].classList.add('scale-nockeck')\r\n element[0].classList.remove('noscale-nocheck')\r\n }\r\n }\r\n\r\n function onMouseUp(evt) {\r\n const myinput = $(evt.target)\r\n .parent('label')\r\n .siblings('input')\r\n .attr('id')\r\n const element = $(evt.target).parent().children('svg')\r\n if ($('#' + myinput).is(':checked')) {\r\n element[0].classList.add('noscale-check')\r\n element[0].classList.remove('scale-check')\r\n } else {\r\n element[0].classList.add('noscale-nocheck')\r\n element[0].classList.remove('scale-nockeck')\r\n }\r\n element[0].style = ''\r\n }\r\n\r\n Vue.directive('mouseclass', {\r\n bind: function (el) {\r\n el.addEventListener('mousedown', onMouseDown)\r\n el.addEventListener('mouseup', onMouseUp)\r\n },\r\n unbind: function (el) {\r\n // remove the event handlers\r\n el.removeEventListener('mousedown', onMouseDown)\r\n el.removeEventListener('mouseup', onMouseUp)\r\n }\r\n })\r\n\r\n _app = new Vue({\r\n el: appId,\r\n data: function () {\r\n return {\r\n appId: appId.replace('#', ''),\r\n openAuto: true,\r\n isActiveCarrouselTaille: false,\r\n step: 1,\r\n subStep: 0,\r\n informations: null,\r\n informationsStep: null,\r\n isActiveSubStep: false,\r\n form: this.InitForm(),\r\n erreur: null,\r\n isActiveBtnPrecedent: false,\r\n isActiveBtnSuivant: true,\r\n libelleEtapeSuivante: SUIVANT,\r\n classEtapeSuivante: '',\r\n libelleEtapePrecedente: NAVIGATION_PRECEDENT,\r\n univers_marketing: '',\r\n marques_marketing: '',\r\n erreurTaille: false,\r\n isSizeonly: false,\r\n isLoading: false,\r\n messageErreur: '',\r\n redirect: true,\r\n showSizes: false,\r\n showStyleOptions: true,\r\n redirectUrl,\r\n isModalOpen: false\r\n }\r\n },\r\n updated: function () {\r\n this.$nextTick(function () {\r\n // Réinitialise l'affichage des tailles\r\n if (this.step === 1) {\r\n this.showSizes = false\r\n }\r\n\r\n if (this.openAuto && !this.isModalOpen) {\r\n return\r\n }\r\n\r\n if (this.step !== 2 || this.showSizes) {\r\n return\r\n }\r\n\r\n this.SetTaillesParDefaut()\r\n })\r\n },\r\n methods: {\r\n InitData: function () {\r\n this.openAuto = true\r\n this.isActiveCarrouselTaille = false\r\n this.step = 1\r\n this.subStep = 0\r\n this.informations = null\r\n this.informationsStep = null\r\n this.isActiveSubStep = false\r\n this.form = this.InitForm()\r\n this.erreur = null\r\n this.isActiveBtnPrecedent = false\r\n this.isActiveBtnSuivant = true\r\n this.libelleEtapeSuivante = SUIVANT\r\n this.libelleEtapePrecedente = NAVIGATION_PRECEDENT\r\n this.univers_marketing = ''\r\n this.marques_marketing = ''\r\n this.erreurTaille = false\r\n this.isSizeonly = false\r\n this.redirect = true\r\n },\r\n InitForm: function () {\r\n const data = {\r\n genre: null,\r\n categories: [],\r\n univers: [],\r\n tailles: [],\r\n email: null\r\n }\r\n\r\n return data\r\n },\r\n SelectionnerGenre(genre) {\r\n this.form.genre = genre\r\n this.GetGenreSizesFromCookie()\r\n this.EtapeSuivante()\r\n },\r\n ChangerStep(step, isBack) {\r\n const _self = this\r\n const isABTasty = !isBack && _self.openAuto\r\n\r\n if (_self.informations == null) {\r\n return\r\n }\r\n switch (step) {\r\n case 1:\r\n if (_self.form.genre && isABTasty) {\r\n _self.EtapeSuivante()\r\n return\r\n }\r\n break\r\n case 2:\r\n if (isABTasty) {\r\n this.LoadInformationsStep()\r\n return\r\n }\r\n\r\n if (_self.VerifyTaille()) {\r\n _self.EtapeSuivante()\r\n return\r\n }\r\n\r\n this.LoadInformationsStep()\r\n\r\n break\r\n case 3:\r\n if (_self.VerifyCategorie() && !isBack) {\r\n _self.isActiveSubStep = false\r\n _self.EtapeSuivante()\r\n return\r\n }\r\n _self.informationsStep = _self.informations.LG.find(\r\n function (g) {\r\n if (g.R == _self.form.genre) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n ).LF\r\n\r\n break\r\n\r\n case 4:\r\n _self.informationsStep = _self.informations.LG.find(\r\n function (g) {\r\n if (g.R == _self.form.genre) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }\r\n ).LU\r\n\r\n if (_self.form.genre == 'FEMME') {\r\n for (\r\n let i = 0;\r\n i < _self.informationsStep.length;\r\n i++\r\n ) {\r\n if (\r\n _self.informationsStep[i].R ==\r\n 'INTEMPORELLE'\r\n ) {\r\n _self.informationsStep[i].L =\r\n 'Intemporel et classique chic'\r\n _self.informationsStep[i].LM[0].L = 'Esprit'\r\n _self.informationsStep[i].LM[1].L =\r\n 'Gérard Darel ...'\r\n }\r\n if (_self.informationsStep[i].R == 'LUXE') {\r\n _self.informationsStep[i].L =\r\n 'Fan de luxe et créateurs'\r\n _self.informationsStep[i].LM[0].L = 'Armani'\r\n _self.informationsStep[i].LM[1].L =\r\n 'Maxmara ...'\r\n }\r\n if (_self.informationsStep[i].R == 'TENDANCE') {\r\n _self.informationsStep[i].L =\r\n 'Fan de marques tendances'\r\n _self.informationsStep[i].LM[0].L =\r\n 'Grace & Mila'\r\n _self.informationsStep[i].LM[1].L =\r\n 'Vila ...'\r\n }\r\n if (_self.informationsStep[i].R == 'ELEGANTE') {\r\n _self.informationsStep[i].L =\r\n 'Élégante à tout âge'\r\n _self.informationsStep[i].LM[0].L =\r\n 'Christine Laure'\r\n _self.informationsStep[i].LM[1].L =\r\n 'Armand Thierry ...'\r\n }\r\n if (_self.informationsStep[i].R == 'ORIGINAL') {\r\n _self.informationsStep[i].L =\r\n 'Original et coloré'\r\n _self.informationsStep[i].LM[0].L =\r\n 'Desigual'\r\n _self.informationsStep[i].LM[1].L =\r\n 'Cop Copine ...'\r\n }\r\n if (\r\n _self.informationsStep[i].R == 'SPORTSWEAR'\r\n ) {\r\n _self.informationsStep[i].LM[0].L = 'Adidas'\r\n _self.informationsStep[i].LM[1].L =\r\n 'Ralph Lauren ...'\r\n }\r\n if (_self.informationsStep[i].R == 'ROCK') {\r\n _self.informationsStep[i].L =\r\n 'Rock et fan de denim'\r\n _self.informationsStep[i].LM[0].L = 'IKKS'\r\n _self.informationsStep[i].LM[1].L =\r\n 'Diesel ...'\r\n }\r\n if (_self.informationsStep[i].R == 'BOHEME') {\r\n _self.informationsStep[i].L =\r\n 'Bohème chic et romantique'\r\n _self.informationsStep[i].LM[0].L =\r\n 'La Fée Maraboutée'\r\n _self.informationsStep[i].LM[1].L =\r\n 'One Step ...'\r\n }\r\n }\r\n } else {\r\n for (\r\n let j = 0;\r\n j < _self.informationsStep.length;\r\n j++\r\n ) {\r\n if (_self.informationsStep[j].R == 'LUXE') {\r\n _self.informationsStep[j].L =\r\n 'Fan de luxe et créateurs'\r\n _self.informationsStep[j].LM[0].L = 'Armani'\r\n _self.informationsStep[j].LM[1].L =\r\n 'Hugo Boss ...'\r\n }\r\n if (_self.informationsStep[j].R == 'TENDANCE') {\r\n _self.informationsStep[j].L =\r\n 'Fan de marques tendances'\r\n _self.informationsStep[j].LM[0].L =\r\n 'Jack&Jones'\r\n _self.informationsStep[j].LM[1].L =\r\n 'Scotch&Soda ...'\r\n }\r\n if (_self.informationsStep[j].R == 'ROCK') {\r\n _self.informationsStep[j].L =\r\n 'Rock et fan de denim'\r\n _self.informationsStep[j].LM[0].L =\r\n 'Teddy Smith'\r\n _self.informationsStep[j].LM[1].L =\r\n 'Diesel ...'\r\n }\r\n if (\r\n _self.informationsStep[j].R == 'SPORTSWEAR'\r\n ) {\r\n _self.informationsStep[j].LM[0].L =\r\n 'Tommy Hilfiger'\r\n _self.informationsStep[j].LM[1].L =\r\n 'Ralph Lauren ...'\r\n }\r\n if (\r\n _self.informationsStep[j].R ==\r\n 'INTEMPORELLE'\r\n ) {\r\n _self.informationsStep[j].L =\r\n 'Intemporel et classique chic'\r\n _self.informationsStep[j].LM[0].L = 'Esprit'\r\n _self.informationsStep[j].LM[1].L =\r\n 'Gant ...'\r\n }\r\n }\r\n }\r\n break\r\n }\r\n },\r\n VerifyTaille: function () {\r\n const _self = this\r\n\r\n const infos = _self.informations.LG.find(function (g) {\r\n return g.R == _self.form.genre\r\n })\r\n\r\n const taillesNature = infos?.LT\r\n const tailles = _self.form.tailles\r\n\r\n if (!taillesNature) {\r\n return false\r\n }\r\n\r\n let test = true\r\n\r\n taillesNature.forEach((tailleNature) => {\r\n test &= tailleNature.LT.map((x) => x.R).some((e) =>\r\n tailles.includes(e)\r\n )\r\n })\r\n\r\n return Boolean(test)\r\n },\r\n\r\n VerifyCategorie: function () {\r\n const _self = this\r\n\r\n if (!_self.openAuto) {\r\n return false\r\n }\r\n\r\n const infos = _self.informations.LG.find(function (g) {\r\n return g.R == _self.form.genre\r\n })\r\n\r\n if (infos && infos.Profile.categories.length > 0) {\r\n return true\r\n }\r\n\r\n return false\r\n },\r\n ChargerInformations: function () {\r\n const _self = this\r\n\r\n _self.form.genre = document.getElementById(\r\n _self.appId\r\n ).dataset.genre\r\n\r\n _self.redirect = document.getElementById(\r\n _self.appId\r\n ).dataset.redirect\r\n\r\n fetch(urlAPP + '/PersonnalShopping/GetQuizzFusion3M/', {\r\n method: 'GET'\r\n })\r\n .then(function (response) {\r\n return response.json()\r\n })\r\n .then(function (data) {\r\n _self.informations = data\r\n\r\n const profile = _self.informations.LG.find(function (\r\n g\r\n ) {\r\n return g.R == _self.form.genre\r\n })?.Profile\r\n\r\n if (profile) {\r\n _self.form.categories = profile.categories\r\n _self.form.univers = profile.univers\r\n _self.form.tailles = profile.tailles\r\n }\r\n\r\n _self.ChangerStep(_self.step, false)\r\n })\r\n },\r\n EtapePrecedente: function () {\r\n this.erreurTaille = false\r\n\r\n if (this.isActiveSubStep && this.subStep > 0) {\r\n this.subStep--\r\n } else {\r\n this.step--\r\n }\r\n },\r\n EtapeSuivante: function () {\r\n const _self = this\r\n this.erreurTaille = false\r\n\r\n switch (this.step) {\r\n case 1:\r\n if (\r\n this.form.genre == null ||\r\n this.form.genre == 'null'\r\n ) {\r\n return\r\n }\r\n break\r\n\r\n case 2:\r\n if (!this.VerifyTaille()) {\r\n this.erreurTaille = true\r\n return\r\n }\r\n break\r\n\r\n case 4:\r\n if (this.informations.IsConnected) {\r\n this.Enregistrer()\r\n return\r\n }\r\n break\r\n case 5:\r\n if (!this.informations.IsConnected) {\r\n this.Enregistrer()\r\n return\r\n }\r\n break\r\n }\r\n\r\n var info = this.informations.LG.find(function (g) {\r\n if (g.R == _self.form.genre) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n })\r\n\r\n if (\r\n this.isActiveSubStep &&\r\n this.subStep < info.LF[this.subStep].LC.length\r\n ) {\r\n this.subStep++\r\n } else {\r\n this.step++\r\n }\r\n },\r\n SaveSize: function () {\r\n const _self = this\r\n\r\n _self.isSizeonly = true\r\n\r\n if (!this.VerifyTaille()) {\r\n this.erreurTaille = true\r\n return\r\n }\r\n\r\n if (!_self.informations.IsConnected) {\r\n _self.step = 5\r\n } else {\r\n _self.EnregistrerPartiel()\r\n _self.ReloadPage()\r\n $(`.${_self.appId}`).modal('hide')\r\n }\r\n },\r\n ChangeSize(value) {\r\n var infoValue = value.split('|')\r\n\r\n var _tailles = {}\r\n\r\n this.form.tailles.forEach((taille) => {\r\n var infos = taille.split('|')\r\n\r\n if (!_tailles.hasOwnProperty(infos[1])) {\r\n _tailles[infos[1]] = [taille]\r\n } else {\r\n _tailles[infos[1]].push(taille)\r\n }\r\n })\r\n profileCookie.deleteCookie()\r\n profileCookie.saveDataAsCookie(\r\n this.form.genre,\r\n this.form.genre,\r\n _tailles,\r\n infoValue[1]\r\n )\r\n },\r\n EnregistrerPartiel: function () {\r\n const _self = this\r\n\r\n if (!_self.informations.IsConnected) {\r\n return\r\n }\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: myHeaders,\r\n body: JSON.stringify(this.form)\r\n }\r\n\r\n fetch(\r\n urlAPP + '/PersonnalShopping/EnregistrerFusion3M/',\r\n requestOptions\r\n )\r\n .then(function (response) {\r\n if (!response.ok) {\r\n throw Error(response.statusText)\r\n }\r\n return response.json()\r\n })\r\n .catch(function (error) {\r\n _self.erreur = error\r\n })\r\n },\r\n Enregistrer: function () {\r\n const _self = this\r\n\r\n let sendForm = true\r\n\r\n if (!_self.informations.IsConnected) {\r\n if (!validator) {\r\n $('#formProfilFusion3m').bootstrapValidator()\r\n validator = $('#formProfilFusion3m').data(\r\n 'bootstrapValidator'\r\n )\r\n }\r\n\r\n if (_self.messageErreur != '') {\r\n validator.updateStatus(\r\n $('#formEmailProfil3M'),\r\n 'NOT_VALIDATED',\r\n 'emailAddress'\r\n )\r\n validator.updateMessage(\r\n $('#formEmailProfil3M'),\r\n 'emailAddress',\r\n _self.messageErreur\r\n )\r\n }\r\n\r\n sendForm = false\r\n validator.validate()\r\n if (validator.isValid()) {\r\n sendForm = true\r\n }\r\n }\r\n\r\n if (!sendForm) {\r\n return\r\n }\r\n\r\n _self.isActiveBtnSuivant = false\r\n _self.isLoading = true\r\n window.dispatchEvent(new Event('tutorial_email'))\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: myHeaders,\r\n body: JSON.stringify(this.form)\r\n }\r\n\r\n fetch(\r\n urlAPP + '/PersonnalShopping/Enregistrer/',\r\n requestOptions\r\n )\r\n .then(function (response) {\r\n if (!response.ok) {\r\n throw Error(response.statusText)\r\n }\r\n return response.json()\r\n })\r\n .then(function (r) {\r\n if (r.isOK) {\r\n if (\r\n r.TagScripts !== undefined &&\r\n r.TagScripts != ''\r\n ) {\r\n try {\r\n eval(r.TagScripts)\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n }\r\n _self.ReloadPage()\r\n } else {\r\n throw Error(r.message)\r\n }\r\n })\r\n .catch(function (error) {\r\n _self.isLoading = false\r\n _self.isActiveBtnSuivant = true\r\n\r\n _self.erreur = error\r\n if (validator && !_self.informations.IsConnected) {\r\n validator.updateStatus(\r\n $('#formEmailProfil3M'),\r\n 'INVALID',\r\n 'emailAddress'\r\n )\r\n _self.messageErreur = validator.getMessages(\r\n $('#formEmailProfil3M'),\r\n 'emailAddress'\r\n )[0]\r\n\r\n validator.updateMessage(\r\n $('#formEmailProfil3M'),\r\n 'emailAddress',\r\n error.message\r\n )\r\n }\r\n })\r\n },\r\n ReloadPage() {\r\n const _self = this\r\n\r\n if (_self.redirectUrl) {\r\n window.location.href = _self.redirectUrl\r\n return\r\n }\r\n\r\n if (!_self.redirect) {\r\n location.reload()\r\n return\r\n }\r\n\r\n if (!_self.form.genre) {\r\n return\r\n }\r\n\r\n let url = ''\r\n\r\n switch (_self.form.genre) {\r\n case 'HOMME':\r\n url = '/articles/homme/'\r\n break\r\n\r\n case 'FEMME':\r\n url = '/articles/femme/'\r\n break\r\n\r\n case 'GARCON':\r\n url = '/articles/garcon/'\r\n break\r\n\r\n case 'FILLE':\r\n url = '/articles/fille/'\r\n break\r\n }\r\n\r\n if (!this.openAuto) {\r\n url += '?sp=1'\r\n }\r\n\r\n window.location.href = urlAPP + url\r\n },\r\n ResetModal() {\r\n if (this.openAuto) {\r\n return\r\n }\r\n this.step = 1\r\n this.form.tailles = []\r\n },\r\n GetGenreSizesFromCookie() {\r\n const profilesCookie = profileCookie.getProfiles()\r\n\r\n const genreProfileCookie = profilesCookie[this.form.genre]\r\n\r\n // Genre différent ou pas de tailles enregistré\r\n if (\r\n genreProfileCookie == null ||\r\n Object.keys(genreProfileCookie.sizes).length !== 0\r\n ) {\r\n return\r\n }\r\n\r\n // Reduce en un tableau de tailles\r\n this.form.tailles = Object.values(\r\n genreProfileCookie.sizes\r\n ).reduce((acc, elem) => (acc = [...acc, ...elem]), [])\r\n },\r\n SetShowStyleOptions(value) {\r\n this.showStyleOptions = value\r\n },\r\n SetIsModalOpen() {\r\n if (this.isModalOpen) {\r\n return\r\n }\r\n\r\n this.isModalOpen = true\r\n\r\n if (this.openAuto) {\r\n this.SetTaillesParDefaut()\r\n }\r\n },\r\n SetTaillesParDefaut() {\r\n const genre = this.form.genre.toLowerCase()\r\n\r\n const clickNTimesOnElement = (el, n) => {\r\n for (let i = 1; i <= n; i++) {\r\n el.slick.slickNext()\r\n }\r\n }\r\n\r\n document\r\n .querySelectorAll(`#${this.appId} .slick-slider`)\r\n .forEach((el, index) => {\r\n switch (genre) {\r\n case 'femme': {\r\n // TAILLES LINGERIE\r\n if (index === 3) {\r\n clickNTimesOnElement(el, 5)\r\n return\r\n }\r\n\r\n clickNTimesOnElement(el, 1)\r\n break\r\n }\r\n case 'homme': {\r\n // POINTURE\r\n if (index === 2) {\r\n clickNTimesOnElement(el, 2)\r\n return\r\n }\r\n\r\n clickNTimesOnElement(el, 1)\r\n break\r\n }\r\n case 'fille':\r\n case 'garcon':\r\n // AGE\r\n if (index === 0) {\r\n clickNTimesOnElement(el, 3)\r\n if (genre === 'garcon') {\r\n clickNTimesOnElement(el, 1)\r\n }\r\n return\r\n }\r\n\r\n // POINTURE\r\n if (index === 1) {\r\n clickNTimesOnElement(el, 5)\r\n }\r\n break\r\n default:\r\n break\r\n }\r\n })\r\n\r\n setTimeout(() => {\r\n this.showSizes = true\r\n }, 400)\r\n },\r\n LoadInformationsStep() {\r\n const _self = this\r\n\r\n _self.informationsStep = _self.informations.LG.find(function (\r\n g\r\n ) {\r\n if (g.R === _self.form.genre) {\r\n return true\r\n } else {\r\n return false\r\n }\r\n }).LT\r\n\r\n _self.$nextTick(function () {\r\n _self.isActiveCarrouselTaille = true\r\n carousel.activerCarrouselTaille()\r\n })\r\n }\r\n },\r\n watch: {\r\n step: function (newValue, oldValue) {\r\n this.informationsStep = null\r\n this.IsConnected = false\r\n this.isActiveBtnPrecedent = true\r\n this.isActiveBtnSuivant = true\r\n this.isActiveSubStep = false\r\n this.libelleEtapeSuivante = SUIVANT\r\n this.classEtapeSuivante = 'abtEtape' + newValue\r\n switch (newValue) {\r\n case 1:\r\n this.isActiveBtnPrecedent = false\r\n this.isActiveBtnSuivant = true\r\n break\r\n\r\n case 3:\r\n this.isActiveSubStep = true\r\n break\r\n\r\n case 4:\r\n if (this.informations.IsConnected) {\r\n this.IsConnected = true\r\n this.libelleEtapeSuivante = SESAME_OUVRE_TOI\r\n }\r\n break\r\n\r\n case 5:\r\n if (!this.informations.IsConnected) {\r\n if (this.libelleEtapeSuivante != SESAME_OUVRE_TOI) {\r\n if (this.isSizeonly) {\r\n window.dispatchEvent(\r\n new Event('tutorial_complete')\r\n )\r\n } else {\r\n window.dispatchEvent(\r\n new Event('tutorial_full')\r\n )\r\n }\r\n }\r\n this.IsConnected = true\r\n this.libelleEtapeSuivante = SESAME_OUVRE_TOI\r\n }\r\n break\r\n }\r\n if (this.step > 2) {\r\n this.EnregistrerPartiel()\r\n }\r\n\r\n this.ChangerStep(newValue, newValue <= oldValue)\r\n }\r\n }\r\n })\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Module LocalStorage pour la wishlist\r\n */\r\n\r\nconst ARTICLE_WISHLIST = 'articleswishlist'\r\n\r\n/**\r\n * Initialise la wishlist dans le localStorage\r\n * @param {boolean} force Force l'appel api pour la récupération de la wishlist\r\n */\r\nexport function InitialiserWishlistInLocalStorage(force) {\r\n if (\r\n window.location.search.indexOf('id') != -1 &&\r\n window.location.search.indexOf('key') != -1\r\n ) {\r\n force = true\r\n }\r\n\r\n if ($('.j_user_notconnected').length != 0) {\r\n nettoyer()\r\n } else {\r\n const data = localStorage.getItem(ARTICLE_WISHLIST)\r\n\r\n if (force === true || data === null) {\r\n $.ajax({\r\n url: '/WishList/GetArticles',\r\n success: function (data) {\r\n try {\r\n if (data != null && data.length > 0) {\r\n localStorage.setItem(\r\n ARTICLE_WISHLIST,\r\n JSON.stringify(data)\r\n )\r\n\r\n afficheWishlistCatalogue()\r\n } else {\r\n localStorage.setItem(\r\n ARTICLE_WISHLIST,\r\n JSON.stringify([])\r\n )\r\n }\r\n } catch (QuotaExceededError) {\r\n //TODO Gestion du LocalStorage plein\r\n }\r\n }\r\n })\r\n } else {\r\n afficheWishlistCatalogue()\r\n }\r\n }\r\n}\r\n\r\nfunction afficheWishlistCatalogue() {\r\n const listeArticle = JSON.parse(localStorage.getItem(ARTICLE_WISHLIST))\r\n\r\n if (listeArticle !== null) {\r\n listeArticle.forEach(function (article, index) {\r\n let item = $(\r\n \".wishListItem[data-refmodele='\" +\r\n article.RefModele +\r\n \"'][data-couleur='\" +\r\n article.CodeCouleur +\r\n \"']\"\r\n )\r\n if (item !== undefined && item.length > 0) {\r\n item.data('id', article.Id)\r\n item.attr('data-id', article.Id)\r\n item.addClass('is-wishlist')\r\n }\r\n\r\n item = $(\r\n \".wishListItem-sim[data-refmodele='\" +\r\n article.RefModele +\r\n \"'][data-couleur='\" +\r\n article.CodeCouleur +\r\n \"']\"\r\n )\r\n if (item !== undefined && item.length > 0) {\r\n item.data('id', article.Id)\r\n item.attr('data-id', article.Id)\r\n item.addClass('is-wishlist')\r\n }\r\n })\r\n }\r\n}\r\n\r\nfunction ajouterArticleWishList(article) {\r\n if (article.Id !== 0) {\r\n const liste = JSON.parse(localStorage.getItem(ARTICLE_WISHLIST))\r\n\r\n if (liste == null) {\r\n InitialiserWishlistInLocalStorage(true)\r\n } else {\r\n liste.push(article)\r\n localStorage.setItem(ARTICLE_WISHLIST, JSON.stringify(liste))\r\n afficheWishlistCatalogue()\r\n }\r\n } else {\r\n InitialiserWishlistInLocalStorage(true)\r\n }\r\n}\r\n\r\n/**\r\n * Supprime un élément dans la wishlist et réaffiche la wishlist catalogue\r\n * @param {string} articleId Id de l'article\r\n */\r\nexport function SupprimerArticleWishListInLocalStorage(articleId) {\r\n if (articleId === 0) {\r\n return\r\n }\r\n const wishlist = JSON.parse(localStorage.getItem(ARTICLE_WISHLIST))\r\n\r\n if (wishlist == null) {\r\n return\r\n }\r\n\r\n wishlist.forEach(function (element, index) {\r\n if (element.Id === articleId) {\r\n wishlist.splice(index, 1)\r\n localStorage.setItem(ARTICLE_WISHLIST, JSON.stringify(wishlist))\r\n return\r\n }\r\n })\r\n\r\n afficheWishlistCatalogue()\r\n}\r\n\r\nfunction nettoyer() {\r\n localStorage.removeItem(ARTICLE_WISHLIST)\r\n}\r\n\r\nexport default {\r\n ajouterArticleWishList: ajouterArticleWishList\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Module qui gère les transitions entre les deux formulaires connexion / inscription\r\n */\r\n\r\nimport tooltips from 'Modules/tooltips'\r\nimport ajaxLoader from 'Modules/ajaxLoader'\r\nimport { EN_RENSEIGNANT_DATE_ANNIVERSAIRE } from 'Modules/Resources/Label'\r\nimport { _500 } from 'Modules/Resources/Error'\r\n\r\nconst J_SUBMIT_FORGOTTEN_PASSWORD = '.j_submit_forgottenPassword'\r\nconst J_DATA_ACTION_RECOVER_PASSWORD = 'action'\r\nconst J_FORGOTTEN_PASSWORD_RESULT_LOCATION = '.j_forgottenPassword_result'\r\nconst C_HIDDEN = 'hidden'\r\nconst C_ERROR = 'has-error'\r\nconst C_SUCCESS = 'has-success'\r\nconst C_GREEN_CHECKED_ICON = 'icon-checkform-ok'\r\nconst J_BIRTHDAY_TOOLTIP = '.j_birthDay_tooltip'\r\nconst J_BIRTHDAY_TOOLTIP_PLACEMENT = 'placement'\r\nconst J_FORGOTTEN_PASSWORD_DIV_TO_HIDE = '.j_forgottenpassword_divToHide'\r\n\r\n/*\r\n * Fonction AJAX de récupération du mot de passe. Utiliser dans la modal de récupération du mdp\r\n */\r\nfunction recoverPassword(event) {\r\n const $form = $(event.target)\r\n const button = $form\r\n .find(J_SUBMIT_FORGOTTEN_PASSWORD + ':submit')\r\n .not(':hidden')\r\n const action = $(button).data(J_DATA_ACTION_RECOVER_PASSWORD)\r\n const parameters = $form.find(':input').not(':hidden').serializeArray()\r\n\r\n ajaxLoader.loadAndExecuteCallBack(\r\n 'POST',\r\n parameters,\r\n function (content) {\r\n const $location = $(J_FORGOTTEN_PASSWORD_RESULT_LOCATION)\r\n if (content.Result === false) {\r\n $location.empty().append(content.Message)\r\n $location.removeClass(C_HIDDEN)\r\n $location.removeClass(C_SUCCESS)\r\n $location.removeClass(C_GREEN_CHECKED_ICON)\r\n $location.addClass(C_ERROR)\r\n } else {\r\n $location.append(content.Message)\r\n $location.removeClass(C_HIDDEN)\r\n $location.removeClass(C_ERROR)\r\n $(J_FORGOTTEN_PASSWORD_DIV_TO_HIDE).addClass(C_HIDDEN)\r\n $location.find('i').addClass(C_GREEN_CHECKED_ICON)\r\n }\r\n },\r\n function () {\r\n // En cas d'échec on affiche une erreur\r\n const $location = $(J_FORGOTTEN_PASSWORD_RESULT_LOCATION)\r\n $location.removeClass(C_HIDDEN)\r\n $location.removeClass(C_SUCCESS)\r\n $location.addClass(C_ERROR)\r\n $location.empty().append(_500)\r\n },\r\n action\r\n )\r\n\r\n return false\r\n}\r\n\r\n/*\r\n * Gestion de la tooltip sur le champ birthday\r\n */\r\nfunction setEventToolTipsOnBirthDay() {\r\n const $location = $(J_BIRTHDAY_TOOLTIP)\r\n\r\n $location.on('mouseenter', function (event) {\r\n if ($(event.currentTarget) !== undefined) {\r\n tooltips.setEventOnItem(\r\n $(event.currentTarget),\r\n $(event.currentTarget).data(J_BIRTHDAY_TOOLTIP_PLACEMENT),\r\n EN_RENSEIGNANT_DATE_ANNIVERSAIRE\r\n )\r\n }\r\n })\r\n $location.on('mouseleave', function (event) {\r\n if ($(event.currentTarget) !== undefined) {\r\n tooltips.hideToolTip($(event.currentTarget))\r\n }\r\n })\r\n}\r\n\r\nexport default {\r\n recoverPassword: recoverPassword,\r\n setEventToolTipsOnBirthDay: setEventToolTipsOnBirthDay\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * MODULE API GOOGLE\r\n * Recherche une adresse\r\n */\r\n\r\nimport mustache from 'mustache'\r\n\r\nlet inputRecherche\r\nlet formGroupRecherche\r\nlet formGroupAutocomplete\r\n\r\nfunction gererPays(codpaystri) {\r\n // gestion indicatif téléphone\r\n $('.j_select_indicatifTel').val(\r\n $('.j_select_indicatifTel')\r\n .find('[data-codepays=\"' + codpaystri + '\"]')\r\n .val()\r\n )\r\n\r\n // on cherche le codepays\r\n let codpays = ''\r\n const itemPays = $('.j_select_autresPays').find(\r\n '[data-trigramme=\"' + codpaystri + '\"]'\r\n )\r\n if (itemPays != undefined) {\r\n codpays = itemPays.data('value')\r\n }\r\n // DOM-TOM\r\n if (\r\n codpays == '' ||\r\n codpays == 'GP' ||\r\n codpays == 'GF' ||\r\n codpays == 'RE' ||\r\n codpays == 'MQ' ||\r\n codpays == 'YT' ||\r\n codpays == 'NC' ||\r\n codpays == 'PF' ||\r\n codpays == 'WF' ||\r\n codpays == 'PM'\r\n ) {\r\n codpays = 'FR'\r\n }\r\n\r\n $(\"[name='codePays']\").val(codpays)\r\n}\r\n\r\nfunction hideGoogleShowAdress() {\r\n if (formGroupRecherche.length > 0) {\r\n formGroupAutocomplete.hide()\r\n formGroupRecherche.show()\r\n\r\n afficherSaisieManuelAdresse()\r\n } else {\r\n formGroupAutocomplete.show()\r\n }\r\n}\r\n\r\nfunction afficherSaisieManuelAdresse() {\r\n $('.j-adress_manuel').unbind('click')\r\n $('.j-adress_manuel').click(function () {\r\n formGroupAutocomplete.show()\r\n formGroupRecherche.hide()\r\n const adresse = $(\"[name='adresse']\").val()\r\n const adresseAutoComplete = $(\"[name='adresseG']\").val()\r\n\r\n if (adresseAutoComplete != '' && adresse == '') {\r\n $(\"[name='adresse']\").val(adresseAutoComplete)\r\n $(\"[name='adresseG']\").val('')\r\n }\r\n\r\n $(\"[name='adresse']\").focus()\r\n })\r\n}\r\n\r\n// Liste des pays=developers.arcgis.com/rest/geocode/api-reference/geocode-coverage.htm\r\nfunction ListeAdresseAjax(recherche) {\r\n const parametres = {\r\n text: recherche,\r\n maxSuggestions: 5,\r\n countryCode:\r\n 'FRA, BEL, DEU, ITA, LUX, REU, ESP, CHE, GUF, MCO, PYF, BLM, MTQ, GLP, NCL, PRT, NLD',\r\n f: 'json'\r\n }\r\n\r\n $.ajax({\r\n type: 'GET',\r\n url: 'https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/suggest',\r\n data: parametres,\r\n success: function (reponse) {\r\n const template = $('#template').html()\r\n\r\n if (\r\n reponse.suggestions !== undefined &&\r\n reponse.suggestions !== null\r\n ) {\r\n const rendered = mustache.render(template, reponse)\r\n $('.autocomplete-adress').html(rendered)\r\n\r\n afficherSaisieManuelAdresse()\r\n\r\n $('.adress-item').click(function () {\r\n const magickey = $(this).data('key')\r\n if (magickey !== undefined) {\r\n infoAdresseAjax(magickey)\r\n }\r\n })\r\n }\r\n },\r\n failure: function (response) {}\r\n })\r\n}\r\n\r\nfunction infoAdresseAjax(key) {\r\n $('.autocomplete-adress').hide()\r\n\r\n const parametres = {\r\n outFields: '*',\r\n magicKey: key,\r\n f: 'json'\r\n }\r\n\r\n $.ajax({\r\n type: 'GET',\r\n url: 'https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/findAddressCandidates',\r\n data: parametres,\r\n success: function (reponse) {\r\n if (\r\n reponse.candidates !== undefined &&\r\n reponse.candidates[0] !== undefined\r\n ) {\r\n const data = reponse.candidates[0].attributes\r\n const codepostal = data.Postal\r\n const adresse = data.StAddr\r\n const ville = data.City\r\n const pays = data.Country\r\n\r\n $(\"[name='adresseG']\").val(reponse.candidates[0].address)\r\n $(\"[name='cp']\").val(codepostal)\r\n $(\"[name='ville']\").val(ville)\r\n $(\"[name='adresse']\").val(adresse)\r\n\r\n gererPays(pays)\r\n\r\n if (pays == 'FRA') {\r\n verifierCodepostalVille(codepostal, ville)\r\n }\r\n\r\n $('.j-adress_manuel').click()\r\n }\r\n },\r\n failure: function (response) {}\r\n })\r\n}\r\n\r\nfunction Process($formGroupRecherche, $inputRecherche, $formGroupAutocomplete) {\r\n formGroupRecherche = $formGroupRecherche\r\n inputRecherche = $inputRecherche\r\n formGroupAutocomplete = $formGroupAutocomplete\r\n\r\n $(document).ready(function () {\r\n hideGoogleShowAdress()\r\n\r\n inputRecherche.keydown(function () {\r\n if (inputRecherche.val().length < 3) {\r\n $('.autocomplete-adress').hide()\r\n return\r\n }\r\n\r\n $('.autocomplete-adress').show()\r\n\r\n ListeAdresseAjax(inputRecherche.val())\r\n })\r\n\r\n inputRecherche.blur(function () {\r\n setTimeout(function () {\r\n $('.autocomplete-adress').hide()\r\n }, 500)\r\n })\r\n })\r\n}\r\n\r\nfunction verifierCodepostalVille(codepostal, ville) {\r\n const data = {\r\n cp: codepostal\r\n }\r\n\r\n $.ajax({\r\n type: 'POST',\r\n url: '/Inscription/GetListOfVilleByCodePostal',\r\n data: data,\r\n success: function (data) {\r\n if (\r\n data === null ||\r\n data.ListVilles === null ||\r\n data.ListVilles === undefined ||\r\n data.ListVilles.length === 0\r\n ) {\r\n $('.j-adress_manuel').click()\r\n $(\"[name='ville']\").val('')\r\n $(\"[name='cp']\").change()\r\n } else {\r\n const villetrouve = data.ListVilles.find(function (element) {\r\n return (\r\n element.NomVille.toUpperCase() === ville.toUpperCase()\r\n )\r\n })\r\n\r\n if (villetrouve == undefined || villetrouve == null) {\r\n $('.j-adress_manuel').click()\r\n $(\"[name='ville']\").val('')\r\n $(\"[name='cp']\").change()\r\n }\r\n }\r\n },\r\n failure: function (response) {\r\n $('.j-adress_manuel').click()\r\n $(\"[name='ville']\").val('')\r\n $(\"[name='cp']\").change()\r\n $(\"[name='ville']\").focus()\r\n }\r\n })\r\n}\r\n\r\nexport default {\r\n Process: Process\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * MODULE INSCRIPTION\r\n */\r\n\r\nimport inscriptionGoogleAPI from 'Modules/inscriptionGoogleAPI'\r\nimport password from 'Modules/password'\r\nimport inscriptionConnexionCustomAction from 'Modules/inscriptionConnexionCustomAction'\r\nimport ajaxLoader from 'Modules/ajaxLoader'\r\nimport adresseForm from 'Modules/adresseForm'\r\nimport ajaxManagement from 'Modules/ajaxManagement'\r\nimport ads from 'Modules/ads'\r\nimport urlModule from 'Modules/url'\r\nimport { _500 } from 'Modules/Resources/Error'\r\nimport master from 'Modules/master'\r\n\r\nconst FORM_VALIDATION_EMAIL = '.j-verification-email'\r\nconst FORM_VERIFICATION_PASSWORD = '.j-verification-password'\r\nconst FORM_INSCRIPTION = '.j-inscription'\r\nconst FORM_CONNEXION = '.j-connexion'\r\nconst INPUT_EMAILLOGIN = '.j_bsForm_email'\r\nconst INPUT_PASSWORD = '.j_password'\r\nconst INPUT_TELEPHONE = '.j-telephone'\r\nconst INPUT_USEADBLOCK = '.j-useAdBlock'\r\nconst J_INSCRIPTION_ERROR = '.j_inscription_error'\r\nconst J_DATA_REFERER = 'referer'\r\nconst J_DATA_RELOAD = 'reload'\r\nconst J_MODAL = '.j_modal_wishlist_catalogue'\r\nconst SUBMIT_INSCRITION_CONNEXION = '.j_submit_inscription'\r\nconst SUBMIT_CONNEXION = '.j_submit_connexion'\r\nconst J_SELECT_PAYS = '.j_select_autresPays'\r\nconst J_DATE_JOUR = '.j_dateJour'\r\nconst J_DATE_MOIS = '.j_dateMois'\r\nconst J_DATE_ANNEE = '.j_dateAnnee'\r\nconst J_DATE_NAISSANCE = '.j_date_naissance'\r\nconst J_DATE_NAISSANCEPART = '.j_date_naissance_part'\r\n\r\nlet validatorInscription = ''\r\n\r\nfunction Process() {\r\n password.setEventForPrintingPassword() // afficher/masquer le mot de passe\r\n\r\n inscriptionConnexionCustomAction.setEventToolTipsOnBirthDay()\r\n\r\n inscriptionGoogleAPI.Process(\r\n $('.js-group-google'),\r\n $('.js-input-google'),\r\n $('.group-autocomplete'),\r\n $('.autocomplete'),\r\n $('.j-inscription')\r\n )\r\n\r\n $(J_MODAL).on('hide.bs.modal', function (e) {\r\n $(FORM_VALIDATION_EMAIL).show()\r\n $(FORM_VERIFICATION_PASSWORD).hide()\r\n $(FORM_INSCRIPTION).hide()\r\n })\r\n\r\n if ($('#isInscription').val() == 0) {\r\n ProcessInscription()\r\n }\r\n $('form').filter(FORM_VALIDATION_EMAIL).bootstrapValidator()\r\n\r\n const validatorEmail = $('form')\r\n .filter(FORM_VALIDATION_EMAIL)\r\n .data('bootstrapValidator')\r\n\r\n $(FORM_VALIDATION_EMAIL).on('success.form.bv', function (event) {\r\n event.preventDefault()\r\n\r\n if (validatorEmail.isValid()) {\r\n ajaxLoader.loadAndExecuteCallBack(\r\n 'POST',\r\n $(this).serialize(),\r\n function (reponse) {\r\n // si l'email est invalidé par le serveur\r\n if (reponse.EmailValid === false) {\r\n validatorEmail.updateStatus(\r\n 'email',\r\n 'INVALID',\r\n 'emailAddress'\r\n )\r\n }\r\n // si l'email existe on demande le mot de passe\r\n else if (\r\n reponse.EmailExist === true &&\r\n reponse.IsInscription3M === false\r\n ) {\r\n // on cache le formulaire contenant l'email\r\n $(FORM_VALIDATION_EMAIL).hide()\r\n // on affiche le formulaire contenant le mdp\r\n $(FORM_VERIFICATION_PASSWORD).show()\r\n\r\n // on copie l'email\r\n const email = $(\r\n FORM_VALIDATION_EMAIL + ' ' + INPUT_EMAILLOGIN\r\n ).val()\r\n $(\r\n FORM_VERIFICATION_PASSWORD + ' ' + INPUT_EMAILLOGIN\r\n ).val(email)\r\n $(INPUT_PASSWORD).focus()\r\n $(\r\n FORM_VERIFICATION_PASSWORD + ' ' + INPUT_EMAILLOGIN\r\n ).attr('name', 'email')\r\n ProcessVerificationPassword()\r\n\r\n validatorEmail.resetForm()\r\n } else {\r\n // sinon on affiche le formulaire d'inscription\r\n // on cache le formulaire contenant l'email\r\n $(FORM_VALIDATION_EMAIL).hide()\r\n\r\n // on affiche le formulaire d'inscription\r\n $(FORM_INSCRIPTION).show()\r\n\r\n // on copie l'email dans l'input d'inscription\r\n const email = $(FORM_VALIDATION_EMAIL)\r\n .find(INPUT_EMAILLOGIN)\r\n .val()\r\n $(FORM_INSCRIPTION).find(INPUT_EMAILLOGIN).val(email)\r\n ProcessInscription()\r\n\r\n validatorEmail.resetForm()\r\n }\r\n },\r\n function () {\r\n const $location = $(J_INSCRIPTION_ERROR)\r\n $location.empty().append(_500)\r\n },\r\n $(this).attr('action')\r\n )\r\n }\r\n })\r\n\r\n// gestion de la page de connexion\r\n if ($(FORM_CONNEXION)[0]) {\r\n \r\n ProcessConnexion()\r\n }\r\n\r\n}\r\n\r\nfunction ProcessConnexion() {\r\n $('form').filter(FORM_CONNEXION).bootstrapValidator()\r\n const validatorConnexion = $('form')\r\n .filter(FORM_CONNEXION)\r\n .data('bootstrapValidator')\r\n $(SUBMIT_CONNEXION).click(function (event) {\r\n event.preventDefault()\r\n ajaxLoader.loadAndExecuteCallBack(\r\n 'POST',\r\n $(FORM_CONNEXION).serialize(),\r\n function (reponse) {\r\n // si le mdp est correct\r\n if (reponse.Result === true) {\r\n window.location = reponse.Redirect\r\n } else {\r\n validatorConnexion.updateStatus($(INPUT_PASSWORD), 'INVALID')\r\n validatorConnexion.updateMessage(\r\n $(INPUT_PASSWORD),\r\n 'notEmpty',\r\n $('#error-message').val()\r\n )\r\n }\r\n },\r\n function () {\r\n const $location = $(J_INSCRIPTION_ERROR)\r\n $location.empty().append(_500)\r\n },\r\n $(FORM_CONNEXION).attr('action')\r\n )\r\n\r\n\r\n \r\n })\r\n}\r\n\r\nfunction ProcessVerificationPassword() {\r\n $('form').filter(FORM_VERIFICATION_PASSWORD).bootstrapValidator()\r\n const validatorPassword = $('form')\r\n .filter(FORM_VERIFICATION_PASSWORD)\r\n .data('bootstrapValidator')\r\n\r\n $(FORM_VERIFICATION_PASSWORD).on('success.form.bv', function (event) {\r\n $(INPUT_USEADBLOCK).val(ads.useAdBlocker())\r\n event.preventDefault()\r\n const form = $(this)\r\n\r\n ajaxLoader.loadAndExecuteCallBack(\r\n 'POST',\r\n $(this).serialize(),\r\n function (reponse) {\r\n // si le mdp est correct\r\n if (reponse.Result === true) {\r\n \r\n closeOrReload(form, 'connexion')\r\n } else {\r\n validatorPassword.updateStatus($(INPUT_PASSWORD), 'INVALID')\r\n validatorPassword.updateMessage(\r\n $(INPUT_PASSWORD),\r\n 'notEmpty',\r\n reponse.Message\r\n )\r\n }\r\n },\r\n function () {\r\n const $location = $(J_INSCRIPTION_ERROR)\r\n $location.empty().append(_500)\r\n },\r\n $(this).attr('action')\r\n )\r\n })\r\n\r\n $(INPUT_PASSWORD).blur(function () {\r\n if ($(this).val() == '') {\r\n validatorPassword\r\n .updateStatus($(INPUT_PASSWORD), 'INVALID')\r\n .updateMessage(\r\n $(INPUT_PASSWORD),\r\n 'notEmpty',\r\n $('#notempty-message').val()\r\n )\r\n }\r\n })\r\n}\r\n\r\nfunction ProcessInscription() {\r\n adresseForm.setEventOnComplementAdresseLink() // gestion du lien Complement d'adresse\r\n adresseForm.setEventForGettingVillesByCodePostal() // Gestion de l'affichage des villes via le code postal\r\n adresseForm.manageValidIconTelephone() // On efface les icones valides des cases téléphone sauf si c'est la derniere\r\n adresseForm.changeSettingsByPays()\r\n adresseForm.setEventForPrintingOtherPays()\r\n adresseForm.showVilleFieldWhenSelectingAutresVilles()\r\n\r\n $('form').filter(FORM_INSCRIPTION).bootstrapValidator()\r\n validatorInscription = $('form')\r\n .filter(FORM_INSCRIPTION)\r\n .data('bootstrapValidator')\r\n\r\n $(\"[name='passwordInscr']\").focus()\r\n\r\n $('.j_select_indicatifTel')\r\n .find('option')\r\n .each(function () {\r\n const data = '+' + $(this).val()\r\n const tel = $(INPUT_TELEPHONE).val()\r\n const indicatif = tel.substring(0, 3)\r\n\r\n if (data == indicatif) {\r\n $('.j_select_indicatifTel').val($(this).val())\r\n $(INPUT_TELEPHONE).val(\r\n $(INPUT_TELEPHONE)\r\n .val()\r\n .substring(data.length, $(INPUT_TELEPHONE).val())\r\n )\r\n $(INPUT_TELEPHONE).blur()\r\n }\r\n })\r\n\r\n $('.j_submit_inscription').click(function () {\r\n validatorInscription.validate()\r\n })\r\n\r\n $(INPUT_TELEPHONE).keyup(function () {\r\n let telephone = $(this).val()\r\n\r\n if (\r\n $(\"[name='codePays']\").val() == 'FR' &&\r\n $(this).val().length == 10 &&\r\n $(this).val().substring(0, 1) == '0'\r\n ) {\r\n telephone = telephone.substring(1, 10)\r\n // $(this).val($(this).val().substring(1, 10));\r\n }\r\n\r\n const pattern = $('.js-regex-telephone')\r\n .filter(\r\n '[data-indicatiftel=\"' +\r\n $('.j_select_indicatifTel :selected').val() +\r\n '\"]'\r\n )\r\n .val()\r\n\r\n telephone =\r\n '+' + $('.j_select_indicatifTel :selected').val() + telephone\r\n\r\n $('#hiddentel').val(telephone)\r\n\r\n if (pattern !== '') {\r\n const regex = new RegExp(pattern)\r\n\r\n if (!regex.test(telephone)) {\r\n validatorInscription.updateStatus(\r\n $(INPUT_TELEPHONE),\r\n 'INVALID',\r\n 'regexp'\r\n )\r\n } else {\r\n validatorInscription.updateStatus(\r\n $(INPUT_TELEPHONE),\r\n 'VALID',\r\n 'regexp'\r\n )\r\n }\r\n } else {\r\n if ($(this).val() !== '') {\r\n validatorInscription.updateStatus($(INPUT_TELEPHONE), 'VALID')\r\n }\r\n }\r\n })\r\n\r\n $(J_SELECT_PAYS).change(function () {\r\n $('.j_select_indicatifTel').val(\r\n $('.j_select_indicatifTel')\r\n .find('[data-codepays=\"' + $(this).val() + '\"]')\r\n .val()\r\n )\r\n $('.j_select_indicatifTel').change()\r\n })\r\n\r\n $('.j_select_indicatifTel').change(function () {\r\n $(INPUT_TELEPHONE).blur()\r\n })\r\n\r\n $(FORM_INSCRIPTION).on('success.form.bv', function (event) {\r\n event.preventDefault()\r\n\r\n $(INPUT_USEADBLOCK).val(ads.useAdBlocker())\r\n const form = $(this)\r\n\r\n ajaxLoader.loadAndExecuteCallBack(\r\n 'POST',\r\n $(this).serialize(),\r\n function (reponse) {\r\n // si le mdp est correct\r\n if (reponse.Result === true) {\r\n closeOrReload(form, 'inscription')\r\n } else {\r\n $(J_INSCRIPTION_ERROR).empty().append(reponse.Message)\r\n $('.j-adress_manuel').click()\r\n $(SUBMIT_INSCRITION_CONNEXION).removeAttr('disabled')\r\n }\r\n },\r\n function () {\r\n // En cas d'échec on affiche une erreur\r\n\r\n $(J_INSCRIPTION_ERROR).empty().append(_500)\r\n $('.j-adress_manuel').click()\r\n $(SUBMIT_INSCRITION_CONNEXION).removeAttr('disabled')\r\n },\r\n $(this).attr('action')\r\n )\r\n })\r\n\r\n $(J_DATE_NAISSANCEPART).on('keyup', function () {\r\n const jour = $(J_DATE_JOUR).val()\r\n const mois = $(J_DATE_MOIS).val()\r\n const annee = $(J_DATE_ANNEE).val()\r\n\r\n if (jour != '' && mois != '' && annee != '') {\r\n const datefinal = jour + '/' + mois + '/' + annee\r\n\r\n $(J_DATE_NAISSANCE).val(datefinal)\r\n } else {\r\n $(J_DATE_NAISSANCE).val('')\r\n }\r\n })\r\n\r\n $(J_DATE_JOUR).on('keyup', function () {\r\n if ($(this).val() == '') {\r\n $(this).removeClass('has-success')\r\n $(this).removeClass('has-error')\r\n $('.error-jour').hide()\r\n return\r\n }\r\n\r\n const reg = /^[0-9]*$/\r\n if (reg.test($(this).val()) && $(this).val() < 32 && $(this).val() > 0) {\r\n $(this).addClass('has-success')\r\n $(this).removeClass('has-error')\r\n $('.error-jour').hide()\r\n } else {\r\n $(this).addClass('has-error')\r\n $(this).removeClass('has-success')\r\n $('.error-jour').show()\r\n }\r\n })\r\n $(J_DATE_MOIS).on('keyup', function () {\r\n if ($(this).val() == '') {\r\n $(this).removeClass('has-success')\r\n $(this).removeClass('has-error')\r\n $('.error-mois').hide()\r\n return\r\n }\r\n\r\n const reg = /^[0-9]*$/\r\n if (\r\n reg.test($(J_DATE_MOIS).val()) &&\r\n $(J_DATE_MOIS).val() < 13 &&\r\n $(J_DATE_MOIS).val() > 0\r\n ) {\r\n $(J_DATE_MOIS).addClass('has-success')\r\n $(J_DATE_MOIS).removeClass('has-error')\r\n $('.error-mois').hide()\r\n } else {\r\n $(J_DATE_MOIS).addClass('has-error')\r\n $(J_DATE_MOIS).removeClass('has-success')\r\n $('.error-mois').show()\r\n }\r\n })\r\n $(J_DATE_ANNEE).on('keyup', function () {\r\n if ($(this).val() == '') {\r\n $(this).removeClass('has-success')\r\n $(this).removeClass('has-error')\r\n $('.error-annee').hide()\r\n return\r\n }\r\n\r\n const reg = /^[0-9]*$/\r\n const ladate = new Date()\r\n const anneemajorite = ladate.getFullYear() - 16 // Gère l'année de naissance pour les personnes \"majeures\"\r\n if (\r\n reg.test($(J_DATE_ANNEE).val()) &&\r\n $(J_DATE_ANNEE).val() < anneemajorite &&\r\n $(J_DATE_ANNEE).val() > 1900\r\n ) {\r\n $(J_DATE_ANNEE).addClass('has-success')\r\n $(J_DATE_ANNEE).removeClass('has-error')\r\n $('.error-annee').hide()\r\n } else {\r\n $(J_DATE_ANNEE).addClass('has-error')\r\n $(J_DATE_ANNEE).removeClass('has-success')\r\n $('.error-annee').show()\r\n }\r\n })\r\n}\r\n\r\nfunction closeOrReload(form, eventname) {\r\n const reload = $(SUBMIT_INSCRITION_CONNEXION).data(J_DATA_RELOAD)\r\n const referer = $(SUBMIT_INSCRITION_CONNEXION).data(J_DATA_REFERER)\r\n let loginaction = 'default'\r\n let relocateUrl = ''\r\n const redirectionUrl = urlModule.parseRedirectionParameter()\r\n\r\n if (redirectionUrl !== undefined && redirectionUrl !== '') {\r\n relocateUrl = redirectionUrl\r\n loginaction = 'panier'\r\n } else {\r\n if (referer !== undefined) {\r\n relocateUrl = referer\r\n loginaction = 'referer'\r\n } else {\r\n relocateUrl = '/'\r\n loginaction = 'home'\r\n }\r\n }\r\n\r\n // Remontée de l'information vers analytics\r\n relocateUrl = decodeURIComponent(relocateUrl)\r\n if (window.google_tag_manager && window.ga && window.ga.create) {\r\n window.dataLayer.push({\r\n event: eventname,\r\n event_action: loginaction,\r\n event_label: 'form'\r\n })\r\n }\r\n\r\n if (reload == 1) {\r\n window.location.replace(relocateUrl)\r\n } else {\r\n $(J_MODAL).modal('hide')\r\n\r\n ajaxManagement.CallLast(function () {\r\n $.ajax({\r\n type: 'GET',\r\n url: '/Layout/GetInfoConnexion',\r\n success: function (jsReturnArgs) {\r\n $('.zone-header').replaceWith(jsReturnArgs)\r\n\r\n master.process()\r\n\r\n $('.manage_profil').attr('href', '/club/profils/')\r\n }\r\n })\r\n })\r\n }\r\n}\r\n\r\nexport default {\r\n Process: Process\r\n}\r\n","// Module de gestion du menu (touch screen).\r\n\r\nimport modal from 'Modules/modal'\r\nimport cleanTextOnFocus from 'Modules/cleanTextOnFocus'\r\nimport _3MPlus from 'Modules/_3MPlus'\r\nimport miniPanier from 'Modules/miniPanier'\r\nimport { InitialiserWishlistInLocalStorage } from 'Modules/gestionLocalStorage'\r\nimport inscriptionModule from 'Modules/inscriptionModule'\r\n\r\nfunction process() {\r\n const position = $(window).scrollTop()\r\n $(document).ready(function () {\r\n import('Modules/ads').then(\r\n ({ default: { initAdBlockerDetection } }) => {\r\n initAdBlockerDetection()\r\n }\r\n )\r\n\r\n $(function () {\r\n const $els = $('div[id^=supp]')\r\n let i = 0\r\n const len = $els.length\r\n $els.slice(1).hide()\r\n setInterval(function () {\r\n $els.eq(i).fadeOut(function () {\r\n i = (i + 1) % len\r\n $els.eq(i).fadeIn()\r\n })\r\n }, 3500)\r\n })\r\n })\r\n\r\n if ($('#modaltest3m10:visible').length > 0) {\r\n const genre = $(this).data('genre')\r\n modal.miseAjourParClassCss(\r\n 'modal3M',\r\n window.location.origin + '/_3MPlus/Modal/?gender=' + genre,\r\n _3MPlus.process\r\n )\r\n } else {\r\n $(document).on('show.bs.modal', '#modaltest3m10', function () {\r\n const genre = $(this).data('genre')\r\n modal.miseAjourParClassCss(\r\n 'modal3M',\r\n window.location.origin + '/_3MPlus/Modal/?gender=' + genre,\r\n _3MPlus.process\r\n )\r\n })\r\n }\r\n\r\n if ($('#modal3mlight:visible').length > 0) {\r\n modal.miseAjourParClassCss(\r\n 'modal3MLight',\r\n window.location.origin + '/_3MPlus/ModalLight/',\r\n _3MPlus.processLight\r\n )\r\n } else {\r\n $(document).on('show.bs.modal', '#modal3mlight', function () {\r\n modal.miseAjourParClassCss(\r\n 'modal3MLight',\r\n window.location.origin + '/_3MPlus/ModalLight/',\r\n _3MPlus.processLight\r\n )\r\n })\r\n }\r\n\r\n setDataLinks()\r\n\r\n // blocage d'un lien pour l'utilisateur\r\n $('.linkBlocked').click(function (e) {\r\n e.preventDefault()\r\n })\r\n\r\n cleanTextOnFocus.setEvent() // Gestion du texte par défaut à supprimer lors du clique sur un champ texte\r\n\r\n _3MPlus.process() // Mise en place du 3mPlus\r\n\r\n miniPanier.setEvent() // Gestion du rollover du minipanier\r\n\r\n miniPanier.process()\r\n\r\n InitialiserWishlistInLocalStorage()\r\n\r\n inscriptionModule.Process()\r\n}\r\n\r\nfunction setDataLinks() {\r\n // initialisation de l'offuscation des liens\r\n $('.lienCache').on('click', function () {\r\n window.location.href = $(this).data('link')\r\n })\r\n\r\n $('.linkAjaxReload').unbind('click')\r\n $('.linkAjaxReload').on('click', function () {\r\n window.location = $(this).attr('data')\r\n })\r\n}\r\n\r\nexport default {\r\n process: process,\r\n setDataLinks: setDataLinks\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Module de gestion du mini panier dans le header\r\n */\r\n\r\nconst J_MINIPANIER_MODAL = '#modal-resume-panier'\r\nconst J_MINIPANIER_MODAL_CONTENT = '#modal-resume-panier'\r\nconst J_MINIPANIER_HOVER_CLASS = '.panierjs'\r\nconst J_TOOPENLOGINFORM = '.j_to_open_loginForm'\r\nconst C_OPEN = 'open'\r\nlet timeOut\r\nlet isPanierCharger = false\r\n\r\n/**\r\n * Initialise les events du mini panier\r\n */\r\nfunction setEvent() {\r\n $(J_MINIPANIER_HOVER_CLASS).tooltip()\r\n\r\n $(J_MINIPANIER_MODAL).hide()\r\n\r\n $(J_MINIPANIER_HOVER_CLASS).hover(\r\n function () {\r\n // affichage en ajax du contenu du mini panier\r\n showMiniPanier()\r\n $(J_TOOPENLOGINFORM).removeClass(C_OPEN)\r\n /* supprimer la.menu-user si newheader */\r\n $('.menu-user-loggedin').removeClass('d-block')\r\n $('.j_to_open_personalshop').removeClass('open')\r\n },\r\n function () {\r\n // affichage en ajax du contenu du mini panier\r\n timeOut = setTimeout(function () {\r\n hideMiniPanier()\r\n }, 150)\r\n }\r\n )\r\n\r\n $(J_MINIPANIER_MODAL_CONTENT).hover(\r\n function () {\r\n // affichage en ajax du contenu du mini panier\r\n clearTimeout(timeOut)\r\n },\r\n function () {\r\n hideMiniPanier()\r\n }\r\n )\r\n}\r\n\r\nfunction process() {\r\n let isMobile = false // initiate as false\r\n // device detection\r\n if (\r\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(\r\n navigator.userAgent\r\n ) ||\r\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(\r\n navigator.userAgent.substr(0, 4)\r\n )\r\n ) {\r\n isMobile = true\r\n }\r\n\r\n $(J_MINIPANIER_HOVER_CLASS).mouseenter(function () {\r\n if (isPanierCharger === false && isMobile === false) {\r\n isPanierCharger = true\r\n UpdateMiniPanier(showMiniPanier, true)\r\n }\r\n })\r\n}\r\n\r\n/**\r\n * Mets à jour le panier\r\n * @param {Function} callback\r\n * @param {boolean} disableHideMinipanier\r\n */\r\nexport function UpdateMiniPanier(callback, disableHideMinipanier) {\r\n $.ajax({\r\n url: '/panier/ResumePanier',\r\n type: 'GET',\r\n dataType: 'html', // On désire recevoir du HTML\r\n success: function (html) {\r\n $(J_MINIPANIER_MODAL).html(html)\r\n isPanierCharger = true\r\n\r\n if (callback) {\r\n callback()\r\n\r\n if (!disableHideMinipanier) {\r\n setTimeout(hideMiniPanier)\r\n }\r\n }\r\n }\r\n })\r\n}\r\n\r\nfunction showMiniPanier() {\r\n if ($('#modal-resume-panier article').length > 0) {\r\n $(J_MINIPANIER_MODAL).show()\r\n }\r\n}\r\n\r\nfunction hideMiniPanier() {\r\n $(J_MINIPANIER_MODAL).hide()\r\n}\r\n\r\n/**\r\n * Mets à jour le panier et affiche la modale\r\n */\r\nexport function UpdateAndFlashMiniPanier() {\r\n UpdateMiniPanier(showMiniPanier, 4500)\r\n}\r\n\r\nexport default {\r\n setEvent: setEvent,\r\n process: process,\r\n showMiniPanier: showMiniPanier\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Module de gestion des modales\r\n */\r\n\r\nfunction creer(\r\n id,\r\n classCss,\r\n url,\r\n callback,\r\n type,\r\n data,\r\n contentType,\r\n forcereload = false\r\n) {\r\n if (forcereload) {\r\n $('#' + id).html('')\r\n } else {\r\n if ($('#' + id).length > 0) {\r\n $('#' + id).modal('show')\r\n\r\n return\r\n }\r\n }\r\n // si la modal existe déjà on l'ouvre\r\n\r\n // sinon on crée la modal\r\n $('body').append(\r\n '
'\r\n )\r\n $('#' + id).append('
')\r\n $('#' + id + '> .modal-dialog').append('
')\r\n\r\n // on l'ouvre\r\n $('#' + id).modal()\r\n\r\n // on met à jour son contenu par ajax\r\n\r\n $.ajax({\r\n type: type == undefined ? 'GET' : type,\r\n url: url,\r\n data: data,\r\n contentType: contentType,\r\n success: function (reponse) {\r\n $('#' + id + '> .modal-dialog > .modal-content').html(reponse)\r\n\r\n // on appelle le callback\r\n if (callback !== undefined) {\r\n callback()\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n $('#' + id).modal('hide')\r\n $('#' + id).remove()\r\n }\r\n })\r\n}\r\n\r\nfunction miseAjourParClassCss(cssClassSelector, url, callback) {\r\n let classname = cssClassSelector\r\n\r\n if (!classname.startsWith('.')) {\r\n classname = '.' + classname\r\n }\r\n\r\n if ($(classname).length == 0) {\r\n return\r\n }\r\n\r\n if ($(classname).hasClass('loaded')) {\r\n return\r\n }\r\n\r\n $(classname).addClass('loaded')\r\n\r\n // on met à jour son contenu par ajax\r\n\r\n $.ajax({\r\n type: 'GET',\r\n url: url,\r\n success: function (reponse) {\r\n $(classname).html(reponse)\r\n\r\n // on appelle le callback\r\n if (callback !== undefined) {\r\n callback()\r\n }\r\n },\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n $(classname).modal('hide')\r\n }\r\n })\r\n}\r\n\r\nfunction supprimer(id) {\r\n $('#' + id).remove()\r\n}\r\n\r\nexport default {\r\n creer: creer,\r\n supprimer: supprimer,\r\n miseAjourParClassCss: miseAjourParClassCss\r\n}\r\n","'use strict'\r\n/**\r\n * Module qui gère l'affichage du contenu du champ mdp au click\r\n */\r\n\r\nimport modal from 'Modules/modal'\r\nimport bootstrapValidationForm from 'Modules/bootstrapValidationForm'\r\nimport inscriptionConnexionCustomAction from 'Modules/inscriptionConnexionCustomAction'\r\n\r\nconst J_PRINT_PASSWORD = '.j_printPassword'\r\nconst J_PASSWORD = '.j_password'\r\nconst J_AFFICHER_VALUE = 'AFFICHER'\r\nconst J_MASQUER_VALUE = 'MASQUER'\r\n\r\n/*\r\n * Set l'event sur le lien 'affichage' pour afficher ou masquer le contenu du champ password\r\n */\r\nfunction setEventForPrintingPassword() {\r\n $(J_PRINT_PASSWORD).on('click', function (event) {\r\n const $password = $(J_PASSWORD)\r\n\r\n if ($password !== undefined) {\r\n if ($password.attr('type') === 'password') {\r\n $password.attr('type', 'text')\r\n $(event.currentTarget).empty().append(J_MASQUER_VALUE)\r\n } else if ($password.attr('type') === 'text') {\r\n $password.attr('type', 'password')\r\n $(event.currentTarget).empty().append(J_AFFICHER_VALUE)\r\n }\r\n }\r\n\r\n return false\r\n })\r\n}\r\n\r\n/**\r\n * Mot de passe oublié\r\n */\r\nfunction setEventMotDePasseOublie() {\r\n $('#passwordPerdu').click(function () {\r\n modal.creer(\r\n 'modalMotdepassePerdu',\r\n 'fade m-password-forgotten modal-pass-forgot in',\r\n window.location.origin + '/Inscription/ModalMotdepassePerdu/',\r\n initModalMotdepassePerdu\r\n )\r\n })\r\n\r\n function initModalMotdepassePerdu() {\r\n const J_PASSWORD_FORGOTTEN_FORM_ID = '.j-pwdForgotten'\r\n const J_PASSWORD_FORGOTTEN_ID = '.modal-pass-forgot'\r\n\r\n bootstrapValidationForm.initModalForm(\r\n J_PASSWORD_FORGOTTEN_ID,\r\n J_PASSWORD_FORGOTTEN_FORM_ID,\r\n inscriptionConnexionCustomAction.recoverPassword\r\n )\r\n }\r\n}\r\n\r\nexport default {\r\n setEventForPrintingPassword: setEventForPrintingPassword,\r\n setEventMotDePasseOublie: setEventMotDePasseOublie\r\n}\r\n","'use strict'\r\n\r\n/*\r\n * Module qui contient les données des profils et les persistes\r\n * dans les cookies en JSON\r\n */\r\n\r\nlet profiles = {}\r\nlet currentProfile = {\r\n name: '',\r\n gender: '',\r\n selected: false,\r\n sizes: {}\r\n}\r\n\r\nconst COOKIE_NAME = 'MP'\r\nconst LINK_EVENT_DELETE_COOKIE = '.j_deleteCookie'\r\nconst URL_UPDATE_COOKIE = '/_3MPlus/UpdateCookie'\r\n\r\n/*\r\n * Récupère le cookie du profil s'il existe, et créer l'objet correspondant.\r\n */\r\nfunction init() {\r\n profiles = getCookie()\r\n if (profiles === undefined) {\r\n profiles = {}\r\n } else {\r\n for (const property in profiles) {\r\n if (profiles.hasOwnProperty(property)) {\r\n if (profiles[property].selected === true) {\r\n currentProfile = profiles[property]\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\n/*\r\n * Récupère le cookie s'il existe et le transforme en objet\r\n */\r\nfunction getCookie() {\r\n const name = COOKIE_NAME + '='\r\n const cookiesArray = document.cookie.split(';')\r\n let cookie = ''\r\n\r\n for (let i = 0; i < cookiesArray.length; i++) {\r\n // On récupère le cookie\r\n cookie = cookiesArray[i].trim()\r\n\r\n if (cookie !== undefined) {\r\n if (cookie.indexOf(name) === 0) {\r\n return JSON.parse(cookie.substring(name.length, cookie.length)) // On transforme le cookie en object\r\n }\r\n }\r\n }\r\n return undefined\r\n}\r\n\r\n/*\r\n * Enregistre le cookie\r\n */\r\nfunction saveCookie() {\r\n const now = new Date()\r\n\r\n for (const i in profiles) {\r\n deleteObjectProperty(profiles[i], 'version')\r\n deleteObjectProperty(profiles[i], 'customProfile')\r\n deleteObjectProperty(profiles[i], 'research')\r\n }\r\n\r\n const myDressingProfile = JSON.stringify(profiles)\r\n\r\n now.setTime(now.getTime() + 3650 * 24 * 60 * 60 * 1000) // le cookie expire dans 10 ans\r\n\r\n document.cookie =\r\n COOKIE_NAME +\r\n '=' +\r\n myDressingProfile +\r\n ';expires=' +\r\n now.toGMTString() +\r\n ';domain=' +\r\n window.location.hostname +\r\n ';path=/'\r\n\r\n // Envoi du cookie au serveur pour sauvegarde\r\n $.ajax({\r\n url: URL_UPDATE_COOKIE,\r\n success: function (data) {}\r\n })\r\n}\r\n\r\nfunction deleteObjectProperty(o, prop) {\r\n if (o.hasOwnProperty(prop)) {\r\n delete o[prop]\r\n }\r\n}\r\n\r\n/*\r\n * Supprime le cookie\r\n */\r\nfunction deleteCookie() {\r\n document.cookie =\r\n COOKIE_NAME +\r\n '=; expires=Thu, 01 Jan 1970 00:00:01 GMT' +\r\n ';domain=' +\r\n window.location.hostname +\r\n ';path=/'\r\n}\r\n\r\n/*\r\n * Récupère les données présent dans les éléments $category et $selectedSize\r\n * qui représente une partie du DOM\r\n */\r\nfunction saveDataAsCookie(category, name, dataArray, dataFamily) {\r\n let family = ''\r\n\r\n if (name === '') {\r\n return\r\n }\r\n\r\n if (profiles !== undefined) {\r\n // Si on avait déjà un profil sélectionné avant, on le désélectionne\r\n for (const property in profiles) {\r\n if (profiles.hasOwnProperty(property)) {\r\n if (profiles[property].selected === true) {\r\n profiles[property].selected = false\r\n }\r\n }\r\n }\r\n }\r\n if (profiles[name] !== undefined) {\r\n currentProfile = profiles[name]\r\n currentProfile.selected = true\r\n currentProfile.sizes = {}\r\n } else {\r\n profiles[name] = {\r\n name: name,\r\n gender: category,\r\n selected: true,\r\n sizes: {}\r\n }\r\n currentProfile = profiles[name]\r\n }\r\n\r\n // Pour chaque élément option sélectionné, on enregistre ca valeur sous forme family=value\r\n for (const item in dataArray) {\r\n if (item !== undefined) {\r\n if (dataArray.hasOwnProperty(item)) {\r\n family = item\r\n profiles[name].sizes[family] = dataArray[item]\r\n }\r\n }\r\n }\r\n\r\n if (profiles[name].lastupdated == null) {\r\n profiles[name].lastupdated = {}\r\n }\r\n\r\n if (profiles[name].lastupdated[dataFamily] == null) {\r\n profiles[name].lastupdated[dataFamily] = []\r\n }\r\n\r\n profiles[name].lastupdated[dataFamily] = new Date().toISOString()\r\n\r\n saveCookie()\r\n}\r\n\r\n/*\r\n * Vérifie si il existe un profil pour le nom passé en paramètre\r\n */\r\nfunction existProfil(name) {\r\n if (profiles[name] === undefined) {\r\n return false\r\n } else if (profiles[name] !== undefined) {\r\n return true\r\n }\r\n}\r\n\r\n/*\r\n * Vérifie si il existe un profil pour le genre passé en paramètre\r\n * retourne son nom ou undefined\r\n */\r\nfunction existProfilByGender(gender) {\r\n let name\r\n\r\n for (const i in profiles) {\r\n // On compte combien de profils on a dans notre cookie\r\n if (profiles.hasOwnProperty(i)) {\r\n if (profiles[i].gender === gender) {\r\n name = profiles[i].name\r\n }\r\n }\r\n }\r\n return name\r\n}\r\n\r\n/*\r\n * Récupère le cookie des profils\r\n * et compte combien il y a de profils a l'intérieur\r\n */\r\nfunction getNbOfProfile() {\r\n let cpt = 0\r\n\r\n for (const i in profiles) {\r\n // On compte combien de profils on a dans notre cookie\r\n if (profiles.hasOwnProperty(i)) {\r\n cpt++\r\n }\r\n }\r\n return cpt\r\n}\r\n\r\n/*\r\n * Va sortir le profil qui a le numéro le plus élevé\r\n */\r\nfunction getMaxNbOfProfile() {\r\n let cpt = 0\r\n let tmpcpt = 0\r\n\r\n for (const i in profiles) {\r\n if (profiles.hasOwnProperty(i)) {\r\n if (!isNaN(parseInt(profiles[i].name.slice(-1)))) {\r\n tmpcpt = parseInt(profiles[i].name.slice(-1))\r\n if (tmpcpt > cpt) {\r\n cpt = tmpcpt\r\n }\r\n }\r\n }\r\n }\r\n return cpt\r\n}\r\n\r\n/*\r\n * Set le profil concerné en selected et set l'ancien\r\n * profil qui était sélectionné en non sélectionné\r\n */\r\nfunction setSelected(name) {\r\n init()\r\n profiles[currentProfile.name].selected = false\r\n profiles[name].selected = true\r\n currentProfile = profiles[name]\r\n saveCookie()\r\n}\r\n\r\nfunction getProfileByGender(gender) {\r\n for (const i in profiles) {\r\n if (profiles.hasOwnProperty(i)) {\r\n if (profiles[i].gender === gender) {\r\n return profiles[i]\r\n }\r\n }\r\n }\r\n return undefined\r\n}\r\n\r\nfunction getProfiles() {\r\n return profiles\r\n}\r\n\r\nfunction getCurrentProfile() {\r\n return currentProfile\r\n}\r\n\r\nfunction setEventDeleteProfileAndReloadPage() {\r\n $(LINK_EVENT_DELETE_COOKIE).on('click', function (event) {\r\n deleteCookie()\r\n location.reload()\r\n })\r\n}\r\n\r\n// Appel du constructeur\r\ninit()\r\n\r\nexport default {\r\n init: init,\r\n getProfiles: getProfiles,\r\n getCurrentProfile: getCurrentProfile,\r\n saveCookie: saveCookie,\r\n deleteCookie: deleteCookie,\r\n saveDataAsCookie: saveDataAsCookie,\r\n existProfil: existProfil,\r\n existProfilByGender: existProfilByGender,\r\n getNbOfProfile: getNbOfProfile,\r\n setSelected: setSelected,\r\n getMaxNbOfProfile: getMaxNbOfProfile,\r\n getProfileByGender: getProfileByGender,\r\n setEventDeleteProfileAndReloadPage: setEventDeleteProfileAndReloadPage\r\n}\r\n","'use strict'\r\n\r\n/*\r\n * Module permettant la sélection d'une catégorie et l'affichage du panel correspondant.\r\n * Ce panel peut contenir des items, par exemple des tailles.\r\n */\r\n\r\nconst J_PANEL_SELECTOR = '.j_panelSelector'\r\nconst J_LIST_CATEGORY = '.j_listCategory'\r\nconst J_PANEL_ITEM = '.j_panelItem'\r\nconst J_BORDER_SELECTED = '.j_borderSelected'\r\nconst J_SELECTED_PANEL_DATA = 'selectedpanel'\r\nconst C_HIDDEN = 'hidden'\r\nconst C_SELECTED = 'active'\r\n\r\n/*\r\n * Fonction de gestion du clique sur chacune des différentes icônes du genre\r\n * pour afficher les tailles correspondantes. Peut exécuter une callback si elle est différent de undefined\r\n */\r\nfunction setEvents(callback) {\r\n $(J_PANEL_SELECTOR)\r\n .find(J_LIST_CATEGORY)\r\n .on('click', function (event) {\r\n setSelectedCategory(event.currentTarget)\r\n showPanel(event.currentTarget)\r\n if (callback !== undefined) {\r\n callback()\r\n }\r\n })\r\n}\r\n\r\n/*\r\n * D'abord on désélectionne toutes les catégories\r\n * puis on sélectionne celle qui nous intéresse\r\n */\r\nfunction setSelectedCategory(currentTarget) {\r\n $(J_LIST_CATEGORY).prop('checked', false)\r\n $(J_BORDER_SELECTED).removeClass(C_SELECTED)\r\n $(currentTarget).prop('checked', true)\r\n $(currentTarget).parent().addClass(C_SELECTED)\r\n}\r\n\r\n/*\r\n * D'abord on cache les panels correspondant aux catégories\r\n * ensuite on affiche celui qui nous intéresse\r\n */\r\nfunction showPanel(currentTarget) {\r\n const destination = $(currentTarget).data(J_SELECTED_PANEL_DATA)\r\n $(J_PANEL_ITEM).addClass(C_HIDDEN)\r\n $(destination).removeClass(C_HIDDEN)\r\n}\r\n\r\nexport default {\r\n setEvents: setEvents,\r\n setSelectedCategory: setSelectedCategory,\r\n showPanel: showPanel\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Module qui gère les tooltips bootstrap\r\n */\r\n\r\n/*\r\n * Fonction qui met en place un tooltip sur l'item passé en paramètre\r\n */\r\nfunction setEventOnItem(item, position, label) {\r\n const option = {\r\n placement: position,\r\n title: label,\r\n trigger: 'manual'\r\n }\r\n $(item).tooltip(option)\r\n $(item).attr('data-original-title', label)\r\n $(item).tooltip('show')\r\n}\r\n\r\nfunction hideToolTip(item) {\r\n $(item).tooltip('hide')\r\n}\r\n\r\nexport default {\r\n setEventOnItem: setEventOnItem,\r\n hideToolTip: hideToolTip\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Module qui charge une action d'un controlleur en ajax\r\n */\r\n\r\nconst J_URL_HIDDEN = '.j_url'\r\nconst J_PAGENUMBER_DATA = 'pagenumber'\r\nconst J_PAGE = '.j_page'\r\nconst J_REDIRECTION_PARAMETERS = 'redirect'\r\nlet backBrowser = true\r\nconst J_PAGINATION_METHOD = '.j_pagination_method'\r\nconst J_ACTION = 'action'\r\nconst J_ACTION_DEGRADATED = 'actiondegradatedproduct'\r\n\r\n/*\r\n * Fonction init permettant notamment la gestion du bouton précédent du navigateur\r\n * Elle est appelé à chaque fois qu'on charge, la page, et donc le module.\r\n * Donc on ajoute l'URL en cours à l'history\r\n */\r\nfunction init(callback) {\r\n window.onpopstate = function (event) {\r\n /**\r\n * Si on clique sur le bouton précédent du navigateur\r\n * après le chargement d'une ou plusieurs pages du catalogue,\r\n * On revient en arrière dans le history autant que de pages ont été chargées\r\n */\r\n goToPreviousPage(event)\r\n\r\n if (backBrowser === true && typeof History !== 'function') {\r\n document.body.scrollTop = document.documentElement.scrollTop = 0\r\n const State = History.getState()\r\n const currentPage = State.data.np === undefined ? 1 : State.data.np\r\n const element = $(\r\n J_PAGE +\r\n '[data-' +\r\n J_PAGENUMBER_DATA +\r\n \"='\" +\r\n currentPage +\r\n \"']\"\r\n )\r\n callback(currentPage, element)\r\n }\r\n\r\n backBrowser = true\r\n\r\n return false\r\n }\r\n}\r\n\r\n/**\r\n * Retourne à la page précédente dans le navigateur lorsqu'on\r\n * est sur une page catalogue avec la paramètre np\r\n */\r\nfunction goToPreviousPage(event) {\r\n if (event === null) {\r\n return\r\n }\r\n\r\n if (event.state === 'undefined' || event.state === null) {\r\n return\r\n }\r\n\r\n if (event.state.np === 'undefined' || event.state.np === null) {\r\n return\r\n }\r\n\r\n window.history.go(parseInt(event.state.np) * -1)\r\n}\r\n\r\n/*\r\n *Efface un paramtre dans l'url, retourne l'url sans ce parametre.\r\n */\r\nfunction deleteParameter(key, sourceURL) {\r\n let rtn = sourceURL.split('?')[0]\r\n let param\r\n let paramsArr = []\r\n const queryString =\r\n sourceURL.indexOf('?') !== -1 ? sourceURL.split('?')[1] : ''\r\n if (queryString !== '') {\r\n paramsArr = queryString.split('&')\r\n for (let i = paramsArr.length - 1; i >= 0; i -= 1) {\r\n param = paramsArr[i].split('=')[0]\r\n if (param === key) {\r\n paramsArr.splice(i, 1)\r\n }\r\n }\r\n if (paramsArr.length) rtn = rtn + '?' + paramsArr.join('&')\r\n }\r\n return rtn\r\n}\r\n\r\n/*\r\n * Insert les paramètres dans l'url à l'aide de history.js (documentation dispo sur internet)\r\n * Si on veut mettre en place le chargement des pages d'un coup (de 1 à 10 par ex.), on doit mustAddPosition à true.\r\n * Sinon, dans le cas de la pagination classique par ex., on doit mettre à false\r\n * Si le paramètre existe déjà, on le remplace.\r\n */\r\n// TODO PUBLIC\r\nfunction insertParams(params, mustAddPosition) {\r\n let newUrl = $(J_URL_HIDDEN).first().val()\r\n let prefix = ''\r\n let suffix = ''\r\n let noParameters = false\r\n let start = -1\r\n let end = -1\r\n\r\n if (params.hasOwnProperty('ct')) {\r\n delete params.ct\r\n newUrl = deleteParameter('ct', newUrl)\r\n }\r\n\r\n if (params.hasOwnProperty('ctr')) {\r\n delete params.ctr\r\n newUrl = deleteParameter('ctr', newUrl)\r\n }\r\n\r\n if (params.hasOwnProperty('reload') && mustAddPosition === true) {\r\n // On efface le parametre reload dans l'url\r\n delete params.reload\r\n newUrl = deleteParameter('reload', newUrl)\r\n }\r\n if (params.hasOwnProperty('index') && mustAddPosition === true) {\r\n // On efface le parametre index dans l'url\r\n delete params.index\r\n newUrl = deleteParameter('index', newUrl)\r\n }\r\n\r\n // Ajout du ? si aucun parametre\r\n if (newUrl.indexOf('?') === -1) {\r\n noParameters = true\r\n }\r\n\r\n for (const keyParam in params) {\r\n if (params.hasOwnProperty(keyParam)) {\r\n if (keyParam == 'tri' || keyParam == 'remise') {\r\n continue\r\n }\r\n\r\n if ((start = newUrl.indexOf(keyParam + '=')) !== -1) {\r\n prefix = newUrl.substring(0, start)\r\n if ((end = newUrl.indexOf('&', start)) === -1) {\r\n suffix = ''\r\n } else {\r\n suffix = newUrl.substring(end, newUrl.length)\r\n }\r\n newUrl = prefix + keyParam + '=' + params[keyParam] + suffix\r\n } else if (!noParameters) {\r\n newUrl = newUrl + '&' + keyParam + '=' + params[keyParam]\r\n } else if (noParameters) {\r\n newUrl = newUrl + '?' + keyParam + '=' + params[keyParam]\r\n noParameters = false\r\n }\r\n }\r\n }\r\n $(J_URL_HIDDEN).first().val(newUrl)\r\n backBrowser = false\r\n history.pushState(params, document.title, newUrl)\r\n}\r\n\r\n/*\r\n * Change l'URL de la page courante\r\n */\r\nfunction setUrl(params, newUrl) {\r\n $(J_PAGINATION_METHOD).data(J_ACTION, newUrl)\r\n $(J_ACTION_DEGRADATED).data(J_ACTION_DEGRADATED, newUrl)\r\n backBrowser = false\r\n history.pushState(params, document.title, newUrl)\r\n}\r\n\r\nfunction setUrl2(params, newUrlAvecTri, newUrlSansTri) {\r\n $(J_PAGINATION_METHOD).data(J_ACTION, newUrlSansTri)\r\n $(J_ACTION_DEGRADATED).data(J_ACTION_DEGRADATED, newUrlSansTri)\r\n backBrowser = false\r\n newUrlAvecTri = deleteParameter('ct', newUrlAvecTri)\r\n newUrlAvecTri = deleteParameter('ctr', newUrlAvecTri)\r\n history.pushState(params, document.title, newUrlAvecTri)\r\n}\r\n\r\n/*\r\n * Retourne la valeur du paramètre dont le nom est passé en paramètre\r\n * Si il n'est pas trouvé, defaultValue sera retourné\r\n */\r\nfunction getParameter(paramName, defaultValue) {\r\n const kvp = document.location.search.substr(1).split('&')\r\n let i = kvp.length\r\n let param = ''\r\n\r\n paramName = encodeURI(paramName)\r\n while (i-- && i >= 0) {\r\n param = kvp[i].split('=')\r\n\r\n if (param[0] === paramName && paramName === 'np') {\r\n if (param[1] < 1) {\r\n return defaultValue\r\n } else {\r\n return param[1]\r\n }\r\n } else if (param[0] === paramName && paramName !== 'np') {\r\n return param[1]\r\n }\r\n }\r\n return defaultValue\r\n}\r\n\r\n/*\r\n * Retourne un objet contenant tout les paramètres de la requête\r\n */\r\nfunction getAllParameters() {\r\n let url = $(J_URL_HIDDEN).val().split('?')\r\n let parameters = []\r\n const returnValue = {}\r\n let kpv = ''\r\n\r\n if (url.length > 1) {\r\n url = url[1]\r\n parameters = url.split('&')\r\n for (let i = 0; i < parameters.length; i++) {\r\n kpv = parameters[i].split('=')\r\n returnValue[kpv[0]] = kpv[1]\r\n }\r\n }\r\n return returnValue\r\n}\r\n\r\n/*\r\n * Va chercher le paramètre J_REDIRECTION_PARAMETERS et retourner sa valeur\r\n */\r\nfunction parseRedirectionParameter() {\r\n const paramName = encodeURI(J_REDIRECTION_PARAMETERS)\r\n const kvp = document.location.search.substr(1).split('&')\r\n let i = kvp.length\r\n let param = ''\r\n\r\n while (i-- && i >= 0) {\r\n param = kvp[i].split('=')\r\n if (param[0] === paramName) {\r\n return param[1]\r\n }\r\n }\r\n return undefined\r\n}\r\n\r\nexport default {\r\n insertParams: insertParams,\r\n deleteParams: deleteParameter,\r\n getParameter: getParameter,\r\n getAllParameters: getAllParameters,\r\n init: init,\r\n parseRedirectionParameter: parseRedirectionParameter,\r\n setUrl: setUrl,\r\n setUrl2: setUrl2\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Module qui gère la validation des différents éléments d'un formulaire\r\n */\r\n\r\nimport ajaxLoader from 'Modules/ajaxLoader'\r\nimport { INVALIDEMAIL, INVALIDINTEGER } from 'Modules/Resources/Error'\r\n\r\nconst J_INPUT_CLASS = '.j_input'\r\nconst J_EMAIL_INPUT_TYPE = 'j_email'\r\nconst J_INTEGER_INPUT_TYPE = 'j_integer'\r\nconst J_PARAM_NAME = 'parameter'\r\n\r\n/*\r\n * Cette fonction vérifiera chaque élément j_input du j_form de la page\r\n * Elle procédera aux différents vérifications selon le type d'input.\r\n * La callback failCheckFormatCallback sera exécuter si un input n'est pas correct\r\n * Puis elle va appeler ajaxLoader.loadAndExecuteCallBack qui va\r\n * effectuer un appel AJAX sur 'action' et executer successCallbackAjax ou failCallbackAjax selon si l'appel réussi ou échoue\r\n */\r\nfunction process(\r\n successCallbackAjax,\r\n failCallbackAjax,\r\n failCheckFormatCallback,\r\n action,\r\n jForm\r\n) {\r\n const $formInputs = $(jForm).find('input' + J_INPUT_CLASS)\r\n const paramsToSend = {}\r\n let isFalseValue = false\r\n\r\n $formInputs.each(function (index, inputElement) {\r\n if ($(inputElement).hasClass(J_EMAIL_INPUT_TYPE)) {\r\n // Si il s'agit d'un champ email\r\n if (!isValideEmail(inputElement.value)) {\r\n failCheckFormatCallback(INVALIDEMAIL)\r\n isFalseValue = true\r\n return false\r\n } else {\r\n paramsToSend[$(inputElement).data(J_PARAM_NAME)] =\r\n $(inputElement).val() // Paramètre à envoyer à la fonction du controller\r\n }\r\n }\r\n\r\n if ($(inputElement).hasClass(J_INTEGER_INPUT_TYPE)) {\r\n // Si il s'agit d'un champ int\r\n if (!isValideInteger(inputElement.value)) {\r\n failCheckFormatCallback(INVALIDINTEGER)\r\n isFalseValue = true\r\n return false\r\n } else {\r\n paramsToSend[$(inputElement).data(J_PARAM_NAME)] =\r\n $(inputElement).val() // Paramètre à envoyer à la fonction du controller\r\n }\r\n }\r\n // Rajouter une fonction et un if pour vérifier un nouvel élément\r\n })\r\n\r\n // si les valeurs des inputs sont valides, on submit le form. Si un callback est présent, il sera exécuté lorsque le POST aura réussi\r\n if (isFalseValue === false) {\r\n ajaxLoader.loadAndExecuteCallBack(\r\n 'POST',\r\n paramsToSend,\r\n successCallbackAjax,\r\n failCallbackAjax,\r\n action\r\n )\r\n }\r\n}\r\n\r\nfunction isValideEmail(email) {\r\n const regexPattern =\r\n /^([a-zA-Z0-9_\\-.]+)@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})(]?)+$/\r\n return regexPattern.test(email)\r\n}\r\n\r\nfunction isValideInteger(integer) {\r\n const regexPattern = /^([0-9-])+$/\r\n return regexPattern.test(parseInt(integer))\r\n}\r\n\r\nfunction hasSpecialChar(str) {\r\n const regexPattern =\r\n /([^a-zA-Z0-9áàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝŸÆŒ\\s])+/\r\n return regexPattern.test(str)\r\n}\r\n\r\nexport default {\r\n process: process,\r\n isValideEmail: isValideEmail,\r\n hasSpecialChar: hasSpecialChar\r\n}\r\n","'use strict'\r\n\r\n/**\r\n * Module Wishlist\r\n */\r\n\r\nimport ajaxManagement from 'Modules/ajaxManagement'\r\nimport gestionLocalStorage from 'Modules/gestionLocalStorage'\r\nimport { SupprimerArticleWishListInLocalStorage } from 'Modules/gestionLocalStorage'\r\nimport modal from 'Modules/modal'\r\nimport inscriptionModule from 'Modules/inscriptionModule'\r\nimport inscriptionConnexionCustomAction from 'Modules/inscriptionConnexionCustomAction'\r\n\r\nconst URL_DELETE_ITEM = '/WishList/SupprimerArticle'\r\nconst URL_ADD_ITEM = '/WishList/AjouterWishListArticle'\r\nconst URL_GET_WISHLIST = '/WishList/GetArticles'\r\n\r\nconst KEY_LOCALSTORAGE_WISHLIST = 'articleswishlist'\r\n\r\nlet addHandler = null\r\nlet removeHandler = null\r\n\r\n/**\r\n * Mets à jour le HTML qui affiche le nombre d'éléments dans la wishlist dans le header\r\n * @param {number} compte Nombre d'éléments dans la wishlist\r\n */\r\nexport function UpdateWishListCountHeader(compte) {\r\n let html = ''\r\n\r\n if (compte > 0) {\r\n html = compte\r\n }\r\n\r\n if (compte >= 100) {\r\n html = '+99'\r\n }\r\n\r\n $('.nbWishList').html(html)\r\n\r\n // Ajoute la classe CSS qui mets le fond rose derrière le nombre.\r\n // Si le compte est égal à 0, on l'enlève\r\n if (!$('.nbWishList').hasClass('isinwishlist')) {\r\n $('.nbWishList').addClass('isinwishlist')\r\n } else if ($('.nbWishList').hasClass('isinwishlist') && compte === 0) {\r\n $('.nbWishList').removeClass('isinwishlist')\r\n }\r\n}\r\n\r\n/**\r\n * Ajoute ou supprime un élément à la wishlist dans la BDD.\r\n * Si l'utilisateur n'est pas connecté, on affiche la modal de connexion\r\n * @param {HTMLElement} item Element HTML\r\n * @param {string} codeTaille Code taille\r\n */\r\nexport function ManageItemInWishlist(item, codeTaille) {\r\n if (item.attr('data-id') === undefined) {\r\n item.addClass('is-wishlist')\r\n\r\n const data = {\r\n cc: item.data('couleur'),\r\n rm: item.data('refmodele'),\r\n ct: codeTaille\r\n }\r\n\r\n $.ajax({\r\n url: URL_ADD_ITEM,\r\n data: data,\r\n success: function (data) {\r\n item.attr('data-id', data.item.id)\r\n item.addClass('is-wishlist')\r\n\r\n UpdateWishListCountHeader(data.cpt)\r\n gestionLocalStorage.ajouterArticleWishList(data.item)\r\n\r\n if (data.TagScripts !== undefined && data.TagScripts != '') {\r\n try {\r\n eval(data.TagScripts)\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n }\r\n\r\n if (addHandler != null) {\r\n addHandler()\r\n }\r\n },\r\n error: function (xhr) {\r\n item.removeClass('is-wishlist')\r\n\r\n if (xhr.status == 403) {\r\n modal.creer(\r\n 'modalInscription',\r\n 'j_modal_wishlist_catalogue modal-connexion poppin-newconnexion in',\r\n window.location.origin +\r\n '/Inscription/ModalConnexionInscription/',\r\n initModalConnexionInscription\r\n )\r\n\r\n ajaxManagement.SaveLastCall(\r\n URL_ADD_ITEM,\r\n data,\r\n function (data) {\r\n item.attr('data-id', data.item.id)\r\n item.addClass('is-wishlist')\r\n\r\n UpdateWishListCountHeader(data.cpt)\r\n gestionLocalStorage.ajouterArticleWishList(\r\n data.item\r\n )\r\n\r\n if (addHandler != null) {\r\n addHandler()\r\n }\r\n }\r\n )\r\n }\r\n }\r\n })\r\n } else {\r\n const dataSend = {\r\n id: item.data('id')\r\n }\r\n\r\n $.ajax({\r\n url: URL_DELETE_ITEM,\r\n data: dataSend,\r\n error: function (xhr, ajaxOptions, thrownError) {\r\n if (xhr.status == 401) {\r\n ajaxManagement.SaveLastCall(\r\n URL_DELETE_ITEM,\r\n dataSend,\r\n function (data) {\r\n item.removeAttr('data-id')\r\n\r\n UpdateWishListCountHeader(data.cpt)\r\n SupprimerArticleWishListInLocalStorage(dataSend.id)\r\n\r\n item.removeClass('is-wishlist')\r\n\r\n if (removeHandler != null) {\r\n removeHandler()\r\n }\r\n }\r\n )\r\n\r\n // window.location.href = URL_INSCRIPTION;\r\n $('.j_modal_wishlist_catalogue').modal({\r\n keyboard: true,\r\n show: true\r\n })\r\n }\r\n },\r\n\r\n success: function (data) {\r\n item.removeAttr('data-id')\r\n\r\n UpdateWishListCountHeader(data.cpt)\r\n SupprimerArticleWishListInLocalStorage(dataSend.id)\r\n\r\n item.removeClass('is-wishlist')\r\n\r\n if (removeHandler != null) {\r\n removeHandler()\r\n }\r\n }\r\n })\r\n }\r\n}\r\n\r\n/**\r\n * Récupère la wishlist dans le localstorage. Sinon fait un appel API\r\n */\r\nexport function GetWishList() {\r\n // Récupère la wishlist dans le local storage\r\n const wishlist = localStorage.getItem(KEY_LOCALSTORAGE_WISHLIST)\r\n\r\n if (wishlist !== null) {\r\n return new Promise(function (resolve) {\r\n resolve(JSON.parse(wishlist))\r\n })\r\n }\r\n\r\n const requestOptions = {\r\n method: 'GET'\r\n }\r\n\r\n return fetch(URL_GET_WISHLIST, requestOptions)\r\n .then(function (response) {\r\n return response.json()\r\n })\r\n .then(function (data) {\r\n try {\r\n localStorage.setItem(\r\n KEY_LOCALSTORAGE_WISHLIST,\r\n JSON.stringify(data)\r\n )\r\n } catch (QuotaExceededError) {\r\n //TODO Gestion du LocalStorage plein\r\n } finally {\r\n return data\r\n }\r\n })\r\n}\r\n\r\nfunction ajouterArticleWishList(refModele, couleur, taille, callback) {\r\n window.WishListCallback = callback\r\n\r\n const url = '/WishList/AjouterWishListArticle'\r\n\r\n const headers = new Headers({\r\n 'content-type': 'application/json',\r\n 'X-Requested-With': 'XMLHttpRequest'\r\n })\r\n\r\n const requestOptions = {\r\n method: 'GET',\r\n headers: headers\r\n }\r\n\r\n const formData = {\r\n rm: refModele,\r\n cc: couleur,\r\n ct: taille\r\n }\r\n\r\n const params = '?' + $.param(formData)\r\n\r\n return fetch(url + params, requestOptions).then(function (response) {\r\n if (response.status == 403) {\r\n modal.creer(\r\n 'modalInscription',\r\n 'j_modal_wishlist_catalogue modal-connexion poppin-newconnexion in',\r\n window.location.origin +\r\n '/Inscription/ModalConnexionInscription/',\r\n initModalConnexionInscription\r\n )\r\n\r\n ajaxManagement.SaveLastCall(\r\n url,\r\n formData,\r\n ajouterArticleWishListOnsuccess\r\n )\r\n } else {\r\n response.json().then((json) => {\r\n ajouterArticleWishListOnsuccess(json)\r\n })\r\n }\r\n })\r\n}\r\n\r\nfunction ajouterArticleWishListOnsuccess(data) {\r\n GetWishList().then(function (wishlist) {\r\n wishlist.push(data.item)\r\n try {\r\n localStorage.setItem(\r\n KEY_LOCALSTORAGE_WISHLIST,\r\n JSON.stringify(wishlist)\r\n )\r\n } catch (QuotaExceededError) {\r\n //TODO Gestion du LocalStorage plein\r\n } finally {\r\n UpdateWishListCountHeader(data.cpt)\r\n afficheWishlistCatalogue()\r\n\r\n if (window.WishListCallback !== undefined) {\r\n window.WishListCallback()\r\n }\r\n }\r\n })\r\n}\r\n\r\n/**\r\n * Supprime un article dans la wishlist\r\n * @param {string} id Id du produit\r\n */\r\nexport function SupprimerArticleWishList(id) {\r\n const url = '/WishList/SupprimerArticle'\r\n\r\n const requestOptions = {\r\n method: 'GET'\r\n }\r\n\r\n const formData = {\r\n id: id\r\n }\r\n\r\n const params = '?' + $.param(formData)\r\n\r\n return fetch(url + params, requestOptions)\r\n .then(function (response) {\r\n return response.json()\r\n })\r\n .then(function (data) {\r\n localStorage.removeItem(KEY_LOCALSTORAGE_WISHLIST)\r\n\r\n const item = $(\".wishListItem[data-id='\" + id + \"']\")\r\n\r\n item.removeAttr('data-id')\r\n item.removeClass('is-wishlist')\r\n\r\n UpdateWishListCountHeader(data.cpt)\r\n\r\n afficheWishlistCatalogue()\r\n })\r\n}\r\n\r\nfunction afficheWishlistCatalogue() {\r\n GetWishList().then(function (wishlist) {\r\n wishlist.forEach(function (article, index) {\r\n let item = $(\r\n \".wishListItem[data-refmodele='\" +\r\n article.RefModele +\r\n \"'][data-couleur='\" +\r\n article.CodeCouleur +\r\n \"']\"\r\n )\r\n if (item !== undefined && item.length > 0) {\r\n item.data('id', article.Id)\r\n item.attr('data-id', article.Id)\r\n item.addClass('is-wishlist')\r\n }\r\n\r\n item = $(\r\n \".wishListItem-sim[data-refmodele='\" +\r\n article.RefModele +\r\n \"'][data-couleur='\" +\r\n article.CodeCouleur +\r\n \"']\"\r\n )\r\n if (item !== undefined && item.length > 0) {\r\n item.data('id', article.Id)\r\n item.attr('data-id', article.Id)\r\n item.addClass('is-wishlist')\r\n }\r\n })\r\n })\r\n}\r\n\r\nfunction initModalConnexionInscription() {\r\n inscriptionModule.Process()\r\n\r\n $('#passwordPerdu').click(function () {\r\n modal.creer(\r\n 'modalMotdepassePerdu',\r\n 'fade m-password-forgotten modal-pass-forgot in',\r\n window.location.origin + '/Inscription/ModalMotdepassePerdu/',\r\n initModalMotdepassePerdu\r\n )\r\n })\r\n}\r\n\r\nfunction initModalMotdepassePerdu() {\r\n const J_PASSWORD_FORGOTTEN_FORM_ID = '.j-pwdForgotten'\r\n const J_PASSWORD_FORGOTTEN_ID = '.modal-pass-forgot'\r\n\r\n import('Modules/bootstrapValidationForm').then(\r\n (bootstrapValidationForm) => {\r\n bootstrapValidationForm.default.initModalForm(\r\n J_PASSWORD_FORGOTTEN_ID,\r\n J_PASSWORD_FORGOTTEN_FORM_ID,\r\n inscriptionConnexionCustomAction.recoverPassword\r\n )\r\n }\r\n )\r\n}\r\n\r\nexport default {\r\n ajouterArticleWishList: ajouterArticleWishList\r\n}\r\n","/*** IMPORTS FROM imports-loader ***/\n\n(function() {\n/*!\r\n\r\n handlebars v2.0.0-alpha.3\r\n\r\nCopyright (C) 2011-2014 by Yehuda Katz\r\n\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\n\r\nThe above copyright notice and this permission notice shall be included in\r\nall copies or substantial portions of the Software.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\nTHE SOFTWARE.\r\n\r\n@license\r\n*/\r\nthis.Handlebars=function(){var a=function(){\"use strict\";function a(a){this.string=a}var b;return a.prototype.toString=function(){return\"\"+this.string},b=a}(),b=function(a){\"use strict\";function b(a){return i[a]||\"&\"}function c(a){for(var b=1;b\":\">\",'\"':\""\",\"'\":\"'\",\"`\":\"`\"},j=/[&<>\"'`]/g,k=/[&<>\"'`]/;g.extend=c;var l=Object.prototype.toString;g.toString=l;var m=function(a){return\"function\"==typeof a};m(/x/)&&(m=function(a){return\"function\"==typeof a&&\"[object Function]\"===l.call(a)});var m;g.isFunction=m;var n=Array.isArray||function(a){return a&&\"object\"==typeof a?\"[object Array]\"===l.call(a):!1};return g.isArray=n,g.escapeExpression=d,g.isEmpty=e,g.appendContextPath=f,g}(a),c=function(){\"use strict\";function a(a,b){var d;b&&b.firstLine&&(d=b.firstLine,a+=\" - \"+d+\":\"+b.firstColumn);for(var e=Error.prototype.constructor.call(this,a),f=0;f0?(c.ids&&(c.ids=[c.name]),a.helpers.each(b,c)):d(this);if(c.data&&c.ids){var f=q(c.data);f.contextPath=g.appendContextPath(c.data.contextPath,c.name),c={data:f}}return e(b,c)}),a.registerHelper(\"each\",function(a,b){b||(b=a,a=this);var c,d,e=b.fn,f=b.inverse,h=0,i=\"\";if(b.data&&b.ids&&(d=g.appendContextPath(b.data.contextPath,b.ids[0])+\".\"),m(a)&&(a=a.call(this)),b.data&&(c=q(b.data)),a&&\"object\"==typeof a)if(l(a))for(var j=a.length;j>h;h++)c&&(c.index=h,c.first=0===h,c.last=h===a.length-1,d&&(c.contextPath=d+h)),i+=e(a[h],{data:c});else for(var k in a)a.hasOwnProperty(k)&&(c&&(c.key=k,c.index=h,c.first=0===h,d&&(c.contextPath=d+k)),i+=e(a[k],{data:c}),h++);return 0===h&&(i=f(this)),i}),a.registerHelper(\"if\",function(a,b){return m(a)&&(a=a.call(this)),!b.hash.includeZero&&!a||g.isEmpty(a)?b.inverse(this):b.fn(this)}),a.registerHelper(\"unless\",function(b,c){return a.helpers[\"if\"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})}),a.registerHelper(\"with\",function(a,b){m(a)&&(a=a.call(this));var c=b.fn;if(!g.isEmpty(a)){if(b.data&&b.ids){var d=q(b.data);d.contextPath=g.appendContextPath(b.data.contextPath,b.ids[0]),b={data:d}}return c(a,b)}}),a.registerHelper(\"log\",function(b,c){var d=c.data&&null!=c.data.level?parseInt(c.data.level,10):1;a.log(d,b)}),a.registerHelper(\"lookup\",function(a,b){return a&&a[b]})}function e(a,b){p.log(a,b)}var f={},g=a,h=b,i=\"2.0.0-alpha.3\";f.VERSION=i;var j=5;f.COMPILER_REVISION=j;var k={1:\"<= 1.0.rc.2\",2:\"== 1.0.0-rc.3\",3:\"== 1.0.0-rc.4\",4:\"== 1.x.x\",5:\">= 2.0.0\"};f.REVISION_CHANGES=k;var l=g.isArray,m=g.isFunction,n=g.toString,o=\"[object Object]\";f.HandlebarsEnvironment=c,c.prototype={constructor:c,logger:p,log:e,registerHelper:function(a,b,c){if(n.call(a)===o){if(c||b)throw new h(\"Arg not supported with multiple helpers\");g.extend(this.helpers,a)}else c&&(b.not=c),this.helpers[a]=b},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,b){n.call(a)===o?g.extend(this.partials,a):this.partials[a]=b},unregisterPartial:function(a){delete this.partials[a]}};var p={methodMap:{0:\"debug\",1:\"info\",2:\"warn\",3:\"error\"},DEBUG:0,INFO:1,WARN:2,ERROR:3,level:3,log:function(a,b){if(p.level<=a){var c=p.methodMap[a];\"undefined\"!=typeof console&&console[c]&&console[c].call(console,b)}}};f.logger=p,f.log=e;var q=function(a){var b=g.extend({},a);return b._parent=a,b};return f.createFrame=q,f}(b,c),e=function(a,b,c){\"use strict\";function d(a){var b=a&&a[0]||1,c=n;if(b!==c){if(c>b){var d=o[c],e=o[b];throw new m(\"Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version (\"+d+\") or downgrade your runtime to an older version (\"+e+\").\")}throw new m(\"Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version (\"+a[1]+\").\")}}function e(a,b){if(!b)throw new m(\"No environment passed to template\");b.VM.checkRevision(a.compiler);var c=function(a,c,d,e,f,g,h){e&&(d=l.extend({},d,e));var i=b.VM.invokePartial.call(this,a,c,d,f,g,h);if(null!=i)return i;if(b.compile){var j={helpers:f,partials:g,data:h};return g[c]=b.compile(a,{data:void 0!==h},b),g[c](d,j)}throw new m(\"The partial \"+c+\" could not be compiled when running in runtime-only mode\")},d={escapeExpression:l.escapeExpression,invokePartial:c,fn:function(b){return a[b]},programs:[],program:function(a,b){var c=this.programs[a],d=this.fn(a);return b?c=g(this,a,d,b):c||(c=this.programs[a]=g(this,a,d)),c},programWithDepth:b.VM.programWithDepth,data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,b){var c=a||b;return a&&b&&a!==b&&(c=l.extend({},b,a)),c},noop:b.VM.noop,compilerInfo:a.compiler},e=function(b,c){c=c||{};var f=c.data;return e._setup(c),!c.partial&&a.useData&&(f=j(b,f)),a.main.call(d,b,d.helpers,d.partials,f)};return e._setup=function(c){c.partial?(d.helpers=c.helpers,d.partials=c.partials):(d.helpers=d.merge(c.helpers,b.helpers),a.usePartial&&(d.partials=d.merge(c.partials,b.partials)))},e._child=function(a){return d.programWithDepth(a)},e}function f(a,b){var c=Array.prototype.slice.call(arguments,2),d=this,e=d.fn(a),f=function(a,f){return f=f||{},e.apply(d,[a,d.helpers,d.partials,f.data||b].concat(c))};return f.program=a,f.depth=c.length,f}function g(a,b,c,d){var e=function(b,e){return e=e||{},c.call(a,b,a.helpers,a.partials,e.data||d)};return e.program=b,e.depth=0,e}function h(a,b,c,d,e,f){var g={partial:!0,helpers:d,partials:e,data:f};if(void 0===a)throw new m(\"The partial \"+b+\" could not be found\");return a instanceof Function?a(c,g):void 0}function i(){return\"\"}function j(a,b){return b&&\"root\"in b||(b=b?p(b):{},b.root=a),b}var k={},l=a,m=b,n=c.COMPILER_REVISION,o=c.REVISION_CHANGES,p=c.createFrame;return k.checkRevision=d,k.template=e,k.programWithDepth=f,k.program=g,k.invokePartial=h,k.noop=i,k}(b,c,d),f=function(a,b,c,d,e){\"use strict\";var f,g=a,h=b,i=c,j=d,k=e,l=function(){var a=new g.HandlebarsEnvironment;return j.extend(a,g),a.SafeString=h,a.Exception=i,a.Utils=j,a.VM=k,a.template=function(b){return k.template(b,a)},a},m=l();return m.create=l,f=m}(d,a,c,b,e),g=function(a){\"use strict\";function b(a){a=a||{},this.firstLine=a.first_line,this.firstColumn=a.first_column,this.lastColumn=a.last_column,this.lastLine=a.last_line}var c,d=a,e={ProgramNode:function(a,c,d,f){var g,h;3===arguments.length?(f=d,d=null):2===arguments.length&&(f=c,c=null),b.call(this,f),this.type=\"program\",this.statements=a,this.strip={},d?(h=d[0],h?(g={first_line:h.firstLine,last_line:h.lastLine,last_column:h.lastColumn,first_column:h.firstColumn},this.inverse=new e.ProgramNode(d,c,g)):this.inverse=new e.ProgramNode(d,c),this.strip.right=c.left):c&&(this.strip.left=c.right)},MustacheNode:function(a,c,d,f,g){if(b.call(this,g),this.type=\"mustache\",this.strip=f,null!=d&&d.charAt){var h=d.charAt(3)||d.charAt(2);this.escaped=\"{\"!==h&&\"&\"!==h}else this.escaped=!!d;this.sexpr=a instanceof e.SexprNode?a:new e.SexprNode(a,c),this.sexpr.isRoot=!0,this.id=this.sexpr.id,this.params=this.sexpr.params,this.hash=this.sexpr.hash,this.eligibleHelper=this.sexpr.eligibleHelper,this.isHelper=this.sexpr.isHelper},SexprNode:function(a,c,d){b.call(this,d),this.type=\"sexpr\",this.hash=c;var e=this.id=a[0],f=this.params=a.slice(1);this.isHelper=!(!f.length&&!c),this.eligibleHelper=this.isHelper||e.isSimple},PartialNode:function(a,c,d,e,f){b.call(this,f),this.type=\"partial\",this.partialName=a,this.context=c,this.hash=d,this.strip=e},BlockNode:function(a,c,e,f,g){if(b.call(this,g),a.sexpr.id.original!==f.path.original)throw new d(a.sexpr.id.original+\" doesn't match \"+f.path.original,this);this.type=\"block\",this.mustache=a,this.program=c,this.inverse=e,this.strip={left:a.strip.left,right:f.strip.right},(c||e).strip.left=a.strip.right,(e||c).strip.right=f.strip.left,e&&!c&&(this.isInverse=!0)},RawBlockNode:function(a,c,f,g){if(b.call(this,g),a.sexpr.id.original!==f)throw new d(a.sexpr.id.original+\" doesn't match \"+f,this);c=new e.ContentNode(c,g),this.type=\"block\",this.mustache=a,this.program=new e.ProgramNode([c],g)},ContentNode:function(a,c){b.call(this,c),this.type=\"content\",this.string=a},HashNode:function(a,c){b.call(this,c),this.type=\"hash\",this.pairs=a},IdNode:function(a,c){b.call(this,c),this.type=\"ID\";for(var e=\"\",f=[],g=0,h=\"\",i=0,j=a.length;j>i;i++){var k=a[i].part;if(e+=(a[i].separator||\"\")+k,\"..\"===k||\".\"===k||\"this\"===k){if(f.length>0)throw new d(\"Invalid path: \"+e,this);\"..\"===k?(g++,h+=\"../\"):this.isScoped=!0}else f.push(k)}this.original=e,this.parts=f,this.string=f.join(\".\"),this.depth=g,this.idName=h+this.string,this.isSimple=1===a.length&&!this.isScoped&&0===g,this.stringModeValue=this.string},PartialNameNode:function(a,c){b.call(this,c),this.type=\"PARTIAL_NAME\",this.name=a.original},DataNode:function(a,c){b.call(this,c),this.type=\"DATA\",this.id=a,this.stringModeValue=a.stringModeValue,this.idName=\"@\"+a.stringModeValue},StringNode:function(a,c){b.call(this,c),this.type=\"STRING\",this.original=this.string=this.stringModeValue=a},NumberNode:function(a,c){b.call(this,c),this.type=\"NUMBER\",this.original=this.number=a,this.stringModeValue=Number(a)},BooleanNode:function(a,c){b.call(this,c),this.type=\"BOOLEAN\",this.bool=a,this.stringModeValue=\"true\"===a},CommentNode:function(a,c){b.call(this,c),this.type=\"comment\",this.comment=a}};return c=e}(c),h=function(){\"use strict\";var a,b=function(){function a(a,b){return{left:\"~\"===a.charAt(2),right:\"~\"===b.charAt(0)||\"~\"===b.charAt(1)}}function b(){this.yy={}}var c={trace:function(){},yy:{},symbols_:{error:2,root:3,statements:4,EOF:5,program:6,simpleInverse:7,statement:8,openRawBlock:9,CONTENT:10,END_RAW_BLOCK:11,openInverse:12,closeBlock:13,openBlock:14,mustache:15,partial:16,COMMENT:17,OPEN_RAW_BLOCK:18,sexpr:19,CLOSE_RAW_BLOCK:20,OPEN_BLOCK:21,CLOSE:22,OPEN_INVERSE:23,OPEN_ENDBLOCK:24,path:25,OPEN:26,OPEN_UNESCAPED:27,CLOSE_UNESCAPED:28,OPEN_PARTIAL:29,partialName:30,param:31,partial_option0:32,partial_option1:33,sexpr_repetition0:34,sexpr_option0:35,dataName:36,STRING:37,NUMBER:38,BOOLEAN:39,OPEN_SEXPR:40,CLOSE_SEXPR:41,hash:42,hash_repetition_plus0:43,hashSegment:44,ID:45,EQUALS:46,DATA:47,pathSegments:48,SEP:49,$accept:0,$end:1},terminals_:{2:\"error\",5:\"EOF\",10:\"CONTENT\",11:\"END_RAW_BLOCK\",17:\"COMMENT\",18:\"OPEN_RAW_BLOCK\",20:\"CLOSE_RAW_BLOCK\",21:\"OPEN_BLOCK\",22:\"CLOSE\",23:\"OPEN_INVERSE\",24:\"OPEN_ENDBLOCK\",26:\"OPEN\",27:\"OPEN_UNESCAPED\",28:\"CLOSE_UNESCAPED\",29:\"OPEN_PARTIAL\",37:\"STRING\",38:\"NUMBER\",39:\"BOOLEAN\",40:\"OPEN_SEXPR\",41:\"CLOSE_SEXPR\",45:\"ID\",46:\"EQUALS\",47:\"DATA\",49:\"SEP\"},productions_:[0,[3,2],[3,1],[6,2],[6,3],[6,2],[6,1],[6,1],[6,0],[4,1],[4,2],[8,3],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[9,3],[14,3],[12,3],[13,3],[15,3],[15,3],[16,5],[16,4],[7,2],[19,3],[19,1],[31,1],[31,1],[31,1],[31,1],[31,1],[31,3],[42,1],[44,3],[30,1],[30,1],[30,1],[36,2],[25,1],[48,3],[48,1],[32,0],[32,1],[33,0],[33,1],[34,0],[34,2],[35,0],[35,1],[43,1],[43,2]],performAction:function(b,c,d,e,f,g){var h=g.length-1;switch(f){case 1:return new e.ProgramNode(g[h-1],this._$);case 2:return new e.ProgramNode([],this._$);case 3:this.$=new e.ProgramNode([],g[h-1],g[h],this._$);break;case 4:this.$=new e.ProgramNode(g[h-2],g[h-1],g[h],this._$);break;case 5:this.$=new e.ProgramNode(g[h-1],g[h],[],this._$);break;case 6:this.$=new e.ProgramNode(g[h],this._$);break;case 7:this.$=new e.ProgramNode([],this._$);break;case 8:this.$=new e.ProgramNode([],this._$);break;case 9:this.$=[g[h]];break;case 10:g[h-1].push(g[h]),this.$=g[h-1];break;case 11:this.$=new e.RawBlockNode(g[h-2],g[h-1],g[h],this._$);break;case 12:this.$=new e.BlockNode(g[h-2],g[h-1].inverse,g[h-1],g[h],this._$);break;case 13:this.$=new e.BlockNode(g[h-2],g[h-1],g[h-1].inverse,g[h],this._$);break;case 14:this.$=g[h];break;case 15:this.$=g[h];break;case 16:this.$=new e.ContentNode(g[h],this._$);break;case 17:this.$=new e.CommentNode(g[h],this._$);break;case 18:this.$=new e.MustacheNode(g[h-1],null,\"\",\"\",this._$);break;case 19:this.$=new e.MustacheNode(g[h-1],null,g[h-2],a(g[h-2],g[h]),this._$);break;case 20:this.$=new e.MustacheNode(g[h-1],null,g[h-2],a(g[h-2],g[h]),this._$);break;case 21:this.$={path:g[h-1],strip:a(g[h-2],g[h])};break;case 22:this.$=new e.MustacheNode(g[h-1],null,g[h-2],a(g[h-2],g[h]),this._$);break;case 23:this.$=new e.MustacheNode(g[h-1],null,g[h-2],a(g[h-2],g[h]),this._$);break;case 24:this.$=new e.PartialNode(g[h-3],g[h-2],g[h-1],a(g[h-4],g[h]),this._$);break;case 25:this.$=new e.PartialNode(g[h-2],void 0,g[h-1],a(g[h-3],g[h]),this._$);break;case 26:this.$=a(g[h-1],g[h]);break;case 27:this.$=new e.SexprNode([g[h-2]].concat(g[h-1]),g[h],this._$);break;case 28:this.$=new e.SexprNode([g[h]],null,this._$);break;case 29:this.$=g[h];break;case 30:this.$=new e.StringNode(g[h],this._$);break;case 31:this.$=new e.NumberNode(g[h],this._$);break;case 32:this.$=new e.BooleanNode(g[h],this._$);break;case 33:this.$=g[h];break;case 34:g[h-1].isHelper=!0,this.$=g[h-1];break;case 35:this.$=new e.HashNode(g[h],this._$);break;case 36:this.$=[g[h-2],g[h]];break;case 37:this.$=new e.PartialNameNode(g[h],this._$);break;case 38:this.$=new e.PartialNameNode(new e.StringNode(g[h],this._$),this._$);break;case 39:this.$=new e.PartialNameNode(new e.NumberNode(g[h],this._$));break;case 40:this.$=new e.DataNode(g[h],this._$);break;case 41:this.$=new e.IdNode(g[h],this._$);break;case 42:g[h-2].push({part:g[h],separator:g[h-1]}),this.$=g[h-2];break;case 43:this.$=[{part:g[h]}];break;case 48:this.$=[];break;case 49:g[h-1].push(g[h]);break;case 52:this.$=[g[h]];break;case 53:g[h-1].push(g[h])}},table:[{3:1,4:2,5:[1,3],8:4,9:5,10:[1,10],12:6,14:7,15:8,16:9,17:[1,11],18:[1,12],21:[1,14],23:[1,13],26:[1,15],27:[1,16],29:[1,17]},{1:[3]},{5:[1,18],8:19,9:5,10:[1,10],12:6,14:7,15:8,16:9,17:[1,11],18:[1,12],21:[1,14],23:[1,13],26:[1,15],27:[1,16],29:[1,17]},{1:[2,2]},{5:[2,9],10:[2,9],17:[2,9],18:[2,9],21:[2,9],23:[2,9],24:[2,9],26:[2,9],27:[2,9],29:[2,9]},{10:[1,20]},{4:23,6:21,7:22,8:4,9:5,10:[1,10],12:6,14:7,15:8,16:9,17:[1,11],18:[1,12],21:[1,14],23:[1,24],24:[2,8],26:[1,15],27:[1,16],29:[1,17]},{4:23,6:25,7:22,8:4,9:5,10:[1,10],12:6,14:7,15:8,16:9,17:[1,11],18:[1,12],21:[1,14],23:[1,24],24:[2,8],26:[1,15],27:[1,16],29:[1,17]},{5:[2,14],10:[2,14],17:[2,14],18:[2,14],21:[2,14],23:[2,14],24:[2,14],26:[2,14],27:[2,14],29:[2,14]},{5:[2,15],10:[2,15],17:[2,15],18:[2,15],21:[2,15],23:[2,15],24:[2,15],26:[2,15],27:[2,15],29:[2,15]},{5:[2,16],10:[2,16],17:[2,16],18:[2,16],21:[2,16],23:[2,16],24:[2,16],26:[2,16],27:[2,16],29:[2,16]},{5:[2,17],10:[2,17],17:[2,17],18:[2,17],21:[2,17],23:[2,17],24:[2,17],26:[2,17],27:[2,17],29:[2,17]},{19:26,25:27,36:28,45:[1,31],47:[1,30],48:29},{19:32,25:27,36:28,45:[1,31],47:[1,30],48:29},{19:33,25:27,36:28,45:[1,31],47:[1,30],48:29},{19:34,25:27,36:28,45:[1,31],47:[1,30],48:29},{19:35,25:27,36:28,45:[1,31],47:[1,30],48:29},{25:37,30:36,37:[1,38],38:[1,39],45:[1,31],48:29},{1:[2,1]},{5:[2,10],10:[2,10],17:[2,10],18:[2,10],21:[2,10],23:[2,10],24:[2,10],26:[2,10],27:[2,10],29:[2,10]},{11:[1,40]},{13:41,24:[1,42]},{4:43,8:4,9:5,10:[1,10],12:6,14:7,15:8,16:9,17:[1,11],18:[1,12],21:[1,14],23:[1,13],24:[2,7],26:[1,15],27:[1,16],29:[1,17]},{7:44,8:19,9:5,10:[1,10],12:6,14:7,15:8,16:9,17:[1,11],18:[1,12],21:[1,14],23:[1,24],24:[2,6],26:[1,15],27:[1,16],29:[1,17]},{19:32,22:[1,45],25:27,36:28,45:[1,31],47:[1,30],48:29},{13:46,24:[1,42]},{20:[1,47]},{20:[2,48],22:[2,48],28:[2,48],34:48,37:[2,48],38:[2,48],39:[2,48],40:[2,48],41:[2,48],45:[2,48],47:[2,48]},{20:[2,28],22:[2,28],28:[2,28],41:[2,28]},{20:[2,41],22:[2,41],28:[2,41],37:[2,41],38:[2,41],39:[2,41],40:[2,41],41:[2,41],45:[2,41],47:[2,41],49:[1,49]},{25:50,45:[1,31],48:29},{20:[2,43],22:[2,43],28:[2,43],37:[2,43],38:[2,43],39:[2,43],40:[2,43],41:[2,43],45:[2,43],47:[2,43],49:[2,43]},{22:[1,51]},{22:[1,52]},{22:[1,53]},{28:[1,54]},{22:[2,46],25:57,31:55,33:56,36:61,37:[1,58],38:[1,59],39:[1,60],40:[1,62],42:63,43:64,44:66,45:[1,65],47:[1,30],48:29},{22:[2,37],37:[2,37],38:[2,37],39:[2,37],40:[2,37],45:[2,37],47:[2,37]},{22:[2,38],37:[2,38],38:[2,38],39:[2,38],40:[2,38],45:[2,38],47:[2,38]},{22:[2,39],37:[2,39],38:[2,39],39:[2,39],40:[2,39],45:[2,39],47:[2,39]},{5:[2,11],10:[2,11],17:[2,11],18:[2,11],21:[2,11],23:[2,11],24:[2,11],26:[2,11],27:[2,11],29:[2,11]},{5:[2,12],10:[2,12],17:[2,12],18:[2,12],21:[2,12],23:[2,12],24:[2,12],26:[2,12],27:[2,12],29:[2,12]},{25:67,45:[1,31],48:29},{8:19,9:5,10:[1,10],12:6,14:7,15:8,16:9,17:[1,11],18:[1,12],21:[1,14],23:[1,13],24:[2,3],26:[1,15],27:[1,16],29:[1,17]},{4:68,8:4,9:5,10:[1,10],12:6,14:7,15:8,16:9,17:[1,11],18:[1,12],21:[1,14],23:[1,13],24:[2,5],26:[1,15],27:[1,16],29:[1,17]},{10:[2,26],17:[2,26],18:[2,26],21:[2,26],23:[2,26],24:[2,26],26:[2,26],27:[2,26],29:[2,26]},{5:[2,13],10:[2,13],17:[2,13],18:[2,13],21:[2,13],23:[2,13],24:[2,13],26:[2,13],27:[2,13],29:[2,13]},{10:[2,18]},{20:[2,50],22:[2,50],25:57,28:[2,50],31:70,35:69,36:61,37:[1,58],38:[1,59],39:[1,60],40:[1,62],41:[2,50],42:71,43:64,44:66,45:[1,65],47:[1,30],48:29},{45:[1,72]},{20:[2,40],22:[2,40],28:[2,40],37:[2,40],38:[2,40],39:[2,40],40:[2,40],41:[2,40],45:[2,40],47:[2,40]},{10:[2,20],17:[2,20],18:[2,20],21:[2,20],23:[2,20],24:[2,20],26:[2,20],27:[2,20],29:[2,20]},{10:[2,19],17:[2,19],18:[2,19],21:[2,19],23:[2,19],24:[2,19],26:[2,19],27:[2,19],29:[2,19]},{5:[2,22],10:[2,22],17:[2,22],18:[2,22],21:[2,22],23:[2,22],24:[2,22],26:[2,22],27:[2,22],29:[2,22]},{5:[2,23],10:[2,23],17:[2,23],18:[2,23],21:[2,23],23:[2,23],24:[2,23],26:[2,23],27:[2,23],29:[2,23]},{22:[2,44],32:73,42:74,43:64,44:66,45:[1,75]},{22:[1,76]},{20:[2,29],22:[2,29],28:[2,29],37:[2,29],38:[2,29],39:[2,29],40:[2,29],41:[2,29],45:[2,29],47:[2,29]},{20:[2,30],22:[2,30],28:[2,30],37:[2,30],38:[2,30],39:[2,30],40:[2,30],41:[2,30],45:[2,30],47:[2,30]},{20:[2,31],22:[2,31],28:[2,31],37:[2,31],38:[2,31],39:[2,31],40:[2,31],41:[2,31],45:[2,31],47:[2,31]},{20:[2,32],22:[2,32],28:[2,32],37:[2,32],38:[2,32],39:[2,32],40:[2,32],41:[2,32],45:[2,32],47:[2,32]},{20:[2,33],22:[2,33],28:[2,33],37:[2,33],38:[2,33],39:[2,33],40:[2,33],41:[2,33],45:[2,33],47:[2,33]},{19:77,25:27,36:28,45:[1,31],47:[1,30],48:29},{22:[2,47]},{20:[2,35],22:[2,35],28:[2,35],41:[2,35],44:78,45:[1,75]},{20:[2,43],22:[2,43],28:[2,43],37:[2,43],38:[2,43],39:[2,43],40:[2,43],41:[2,43],45:[2,43],46:[1,79],47:[2,43],49:[2,43]},{20:[2,52],22:[2,52],28:[2,52],41:[2,52],45:[2,52]},{22:[1,80]},{8:19,9:5,10:[1,10],12:6,14:7,15:8,16:9,17:[1,11],18:[1,12],21:[1,14],23:[1,13],24:[2,4],26:[1,15],27:[1,16],29:[1,17]},{20:[2,27],22:[2,27],28:[2,27],41:[2,27]},{20:[2,49],22:[2,49],28:[2,49],37:[2,49],38:[2,49],39:[2,49],40:[2,49],41:[2,49],45:[2,49],47:[2,49]},{20:[2,51],22:[2,51],28:[2,51],41:[2,51]},{20:[2,42],22:[2,42],28:[2,42],37:[2,42],38:[2,42],39:[2,42],40:[2,42],41:[2,42],45:[2,42],47:[2,42],49:[2,42]},{22:[1,81]},{22:[2,45]},{46:[1,79]},{5:[2,25],10:[2,25],17:[2,25],18:[2,25],21:[2,25],23:[2,25],24:[2,25],26:[2,25],27:[2,25],29:[2,25]},{41:[1,82]},{20:[2,53],22:[2,53],28:[2,53],41:[2,53],45:[2,53]},{25:57,31:83,36:61,37:[1,58],38:[1,59],39:[1,60],40:[1,62],45:[1,31],47:[1,30],48:29},{5:[2,21],10:[2,21],17:[2,21],18:[2,21],21:[2,21],23:[2,21],24:[2,21],26:[2,21],27:[2,21],29:[2,21]},{5:[2,24],10:[2,24],17:[2,24],18:[2,24],21:[2,24],23:[2,24],24:[2,24],26:[2,24],27:[2,24],29:[2,24]},{20:[2,34],22:[2,34],28:[2,34],37:[2,34],38:[2,34],39:[2,34],40:[2,34],41:[2,34],45:[2,34],47:[2,34]},{20:[2,36],22:[2,36],28:[2,36],41:[2,36],45:[2,36]}],defaultActions:{3:[2,2],18:[2,1],47:[2,18],63:[2,47],74:[2,45]},parseError:function(a){throw new Error(a)},parse:function(a){function b(){var a;return a=c.lexer.lex()||1,\"number\"!=typeof a&&(a=c.symbols_[a]||a),a}var c=this,d=[0],e=[null],f=[],g=this.table,h=\"\",i=0,j=0,k=0;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,\"undefined\"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var l=this.lexer.yylloc;f.push(l);var m=this.lexer.options&&this.lexer.options.ranges;\"function\"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var n,o,p,q,r,s,t,u,v,w={};;){if(p=d[d.length-1],this.defaultActions[p]?q=this.defaultActions[p]:((null===n||\"undefined\"==typeof n)&&(n=b()),q=g[p]&&g[p][n]),\"undefined\"==typeof q||!q.length||!q[0]){var x=\"\";if(!k){v=[];for(s in g[p])this.terminals_[s]&&s>2&&v.push(\"'\"+this.terminals_[s]+\"'\");x=this.lexer.showPosition?\"Parse error on line \"+(i+1)+\":\\n\"+this.lexer.showPosition()+\"\\nExpecting \"+v.join(\", \")+\", got '\"+(this.terminals_[n]||n)+\"'\":\"Parse error on line \"+(i+1)+\": Unexpected \"+(1==n?\"end of input\":\"'\"+(this.terminals_[n]||n)+\"'\"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[n]||n,line:this.lexer.yylineno,loc:l,expected:v})}}if(q[0]instanceof Array&&q.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+p+\", token: \"+n);switch(q[0]){case 1:d.push(n),e.push(this.lexer.yytext),f.push(this.lexer.yylloc),d.push(q[1]),n=null,o?(n=o,o=null):(j=this.lexer.yyleng,h=this.lexer.yytext,i=this.lexer.yylineno,l=this.lexer.yylloc,k>0&&k--);break;case 2:if(t=this.productions_[q[1]][1],w.$=e[e.length-t],w._$={first_line:f[f.length-(t||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(t||1)].first_column,last_column:f[f.length-1].last_column},m&&(w._$.range=[f[f.length-(t||1)].range[0],f[f.length-1].range[1]]),r=this.performAction.call(w,h,j,i,this.yy,q[1],e,f),\"undefined\"!=typeof r)return r;t&&(d=d.slice(0,-1*t*2),e=e.slice(0,-1*t),f=f.slice(0,-1*t)),d.push(this.productions_[q[1]][0]),e.push(w.$),f.push(w._$),u=g[d[d.length-2]][d[d.length-1]],d.push(u);break;case 3:return!0}}return!0}},d=function(){var a={EOF:1,parseError:function(a,b){if(!this.yy.parser)throw new Error(a);this.yy.parser.parseError(a,b)},setInput:function(a){return this._input=a,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var b=a.match(/(?:\\r\\n?|\\n).*/g);return b?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var b=a.length,c=a.split(/(?:\\r\\n?|\\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b-1),this.offset-=b;var d=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-b]),this},more:function(){return this._more=!0,this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?\"...\":\"\")+a.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var a=this.pastInput(),b=new Array(a.length+1).join(\"-\");return a+this.upcomingInput()+\"\\n\"+b+\"^\"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,b,c,d,e;this._more||(this.yytext=\"\",this.match=\"\");for(var f=this._currentRules(),g=0;gb[0].length)||(b=c,d=g,this.options.flex));g++);return b?(e=b[0].match(/(?:\\r\\n?|\\n).*/g),e&&(this.yylineno+=e.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:e?e[e.length-1].length-e[e.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],a=this.performAction.call(this,this.yy,this,f[d],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a?a:void 0):\"\"===this._input?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+\". Unrecognized text.\\n\"+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var a=this.next();return\"undefined\"!=typeof a?a:this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(a){this.begin(a)}};return a.options={},a.performAction=function(a,b,c,d){function e(a,c){return b.yytext=b.yytext.substr(a,b.yyleng-c)}switch(c){case 0:if(\"\\\\\\\\\"===b.yytext.slice(-2)?(e(0,1),this.begin(\"mu\")):\"\\\\\"===b.yytext.slice(-1)?(e(0,1),this.begin(\"emu\")):this.begin(\"mu\"),b.yytext)return 10;break;case 1:return 10;case 2:return this.popState(),10;case 3:return b.yytext=b.yytext.substr(5,b.yyleng-9),this.popState(),11;case 4:return 10;case 5:return e(0,4),this.popState(),17;case 6:return 40;case 7:return 41;case 8:return 18;case 9:return this.popState(),this.begin(\"raw\"),20;case 10:return b.yytext=b.yytext.substr(4,b.yyleng-8),this.popState(),\"RAW_BLOCK\";case 11:return 29;case 12:return 21;case 13:return 24;case 14:return 23;case 15:return 23;case 16:return 27;case 17:return 26;case 18:this.popState(),this.begin(\"com\");break;case 19:return e(3,5),this.popState(),17;case 20:return 26;case 21:return 46;case 22:return 45;case 23:return 45;case 24:return 49;case 25:break;case 26:return this.popState(),28;case 27:return this.popState(),22;case 28:return b.yytext=e(1,2).replace(/\\\\\"/g,'\"'),37;case 29:return b.yytext=e(1,2).replace(/\\\\'/g,\"'\"),37;case 30:return 47;case 31:return 39;case 32:return 39;case 33:return 38;case 34:return 45;case 35:return b.yytext=e(1,2),45;case 36:return\"INVALID\";case 37:return 5}},a.rules=[/^(?:[^\\x00]*?(?=(\\{\\{)))/,/^(?:[^\\x00]+)/,/^(?:[^\\x00]{2,}?(?=(\\{\\{|\\\\\\{\\{|\\\\\\\\\\{\\{|$)))/,/^(?:\\{\\{\\{\\{\\/[^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=[=}\\s\\/.])\\}\\}\\}\\})/,/^(?:[^\\x00]*?(?=(\\{\\{\\{\\{\\/)))/,/^(?:[\\s\\S]*?--\\}\\})/,/^(?:\\()/,/^(?:\\))/,/^(?:\\{\\{\\{\\{)/,/^(?:\\}\\}\\}\\})/,/^(?:\\{\\{\\{\\{[^\\x00]*\\}\\}\\}\\})/,/^(?:\\{\\{(~)?>)/,/^(?:\\{\\{(~)?#)/,/^(?:\\{\\{(~)?\\/)/,/^(?:\\{\\{(~)?\\^)/,/^(?:\\{\\{(~)?\\s*else\\b)/,/^(?:\\{\\{(~)?\\{)/,/^(?:\\{\\{(~)?&)/,/^(?:\\{\\{!--)/,/^(?:\\{\\{![\\s\\S]*?\\}\\})/,/^(?:\\{\\{(~)?)/,/^(?:=)/,/^(?:\\.\\.)/,/^(?:\\.(?=([=~}\\s\\/.)])))/,/^(?:[\\/.])/,/^(?:\\s+)/,/^(?:\\}(~)?\\}\\})/,/^(?:(~)?\\}\\})/,/^(?:\"(\\\\[\"]|[^\"])*\")/,/^(?:'(\\\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\\s)])))/,/^(?:false(?=([~}\\s)])))/,/^(?:-?[0-9]+(?:\\.[0-9]+)?(?=([~}\\s)])))/,/^(?:([^\\s!\"#%-,\\.\\/;->@\\[-\\^`\\{-~]+(?=([=~}\\s\\/.)]))))/,/^(?:\\[[^\\]]*\\])/,/^(?:.)/,/^(?:$)/],a.conditions={mu:{rules:[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[5],inclusive:!1},raw:{rules:[3,4],inclusive:!1},INITIAL:{rules:[0,1,37],inclusive:!0}},a}();return c.lexer=d,b.prototype=c,c.Parser=b,new b}();return a=b}(),i=function(a,b){\"use strict\";function c(a){return a.constructor===f.ProgramNode?a:(e.yy=f,e.parse(a))}var d={},e=a,f=b;return d.parser=e,d.parse=c,d}(h,g),j=function(a){\"use strict\";function b(){}function c(a,b,c){if(null==a||\"string\"!=typeof a&&a.constructor!==c.AST.ProgramNode)throw new f(\"You must pass a string or Handlebars AST to Handlebars.precompile. You passed \"+a);b=b||{},\"data\"in b||(b.data=!0);var d=c.parse(a),e=(new c.Compiler).compile(d,b);return(new c.JavaScriptCompiler).compile(e,b)}function d(a,b,c){function d(){var d=c.parse(a),e=(new c.Compiler).compile(d,b),f=(new c.JavaScriptCompiler).compile(e,b,void 0,!0);return c.template(f)}if(null==a||\"string\"!=typeof a&&a.constructor!==c.AST.ProgramNode)throw new f(\"You must pass a string or Handlebars AST to Handlebars.compile. You passed \"+a);b=b||{},\"data\"in b||(b.data=!0);var e,g=function(a,b){return e||(e=d()),e.call(this,a,b)};return g.child=function(a){return e||(e=d()),e.child(a)},g}var e={},f=a;return e.Compiler=b,b.prototype={compiler:b,disassemble:function(){for(var a,b,c,d=this.opcodes,e=[],f=0,g=d.length;g>f;f++)if(a=d[f],\"DECLARE\"===a.opcode)e.push(\"DECLARE \"+a.name+\"=\"+a.value);else{b=[];for(var h=0;hc;c++){var d=this.opcodes[c],e=a.opcodes[c];if(d.opcode!==e.opcode||d.args.length!==e.args.length)return!1;for(var f=0;fc;c++)if(!this.children[c].equals(a.children[c]))return!1;return!0},guid:0,compile:function(a,b){this.opcodes=[],this.children=[],this.depths={list:[]},this.options=b,this.stringParams=b.stringParams,this.trackIds=b.trackIds;var c=this.options.knownHelpers;if(this.options.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,\"if\":!0,unless:!0,\"with\":!0,log:!0,lookup:!0},c)for(var d in c)this.options.knownHelpers[d]=c[d];return this.accept(a)},accept:function(a){var b,c=a.strip||{};return c.left&&this.opcode(\"strip\"),b=this[a.type](a),c.right&&this.opcode(\"strip\"),b},program:function(a){for(var b=a.statements,c=0,d=b.length;d>c;c++)this.accept(b[c]);return this.isSimple=1===d,this.depths.list=this.depths.list.sort(function(a,b){return a-b}),this},compileProgram:function(a){var b,c=(new this.compiler).compile(a,this.options),d=this.guid++;this.usePartial=this.usePartial||c.usePartial,this.children[d]=c;for(var e=0,f=c.depths.list.length;f>e;e++)b=c.depths.list[e],2>b||this.addDepth(b-1);return d},block:function(a){var b=a.mustache,c=a.program,d=a.inverse;c&&(c=this.compileProgram(c)),d&&(d=this.compileProgram(d));var e=b.sexpr,f=this.classifySexpr(e);\"helper\"===f?this.helperSexpr(e,c,d):\"simple\"===f?(this.simpleSexpr(e),this.opcode(\"pushProgram\",c),this.opcode(\"pushProgram\",d),this.opcode(\"emptyHash\"),this.opcode(\"blockValue\",e.id.original)):(this.ambiguousSexpr(e,c,d),this.opcode(\"pushProgram\",c),this.opcode(\"pushProgram\",d),this.opcode(\"emptyHash\"),this.opcode(\"ambiguousBlockValue\")),this.opcode(\"append\")},hash:function(a){var b,c,d=a.pairs;for(this.opcode(\"pushHash\"),b=0,c=d.length;c>b;b++)this.pushParam(d[b][1]);for(;b--;)this.opcode(\"assignToHash\",d[b][0]);this.opcode(\"popHash\")},partial:function(a){var b=a.partialName;this.usePartial=!0,a.hash?this.accept(a.hash):this.opcode(\"push\",\"undefined\"),a.context?this.accept(a.context):this.opcode(\"push\",\"depth0\"),this.opcode(\"invokePartial\",b.name),this.opcode(\"append\")\r\n},content:function(a){this.opcode(\"appendContent\",a.string)},mustache:function(a){this.sexpr(a.sexpr),this.opcode(a.escaped&&!this.options.noEscape?\"appendEscaped\":\"append\")},ambiguousSexpr:function(a,b,c){var d=a.id,e=d.parts[0],f=null!=b||null!=c;this.opcode(\"getContext\",d.depth),this.opcode(\"pushProgram\",b),this.opcode(\"pushProgram\",c),this.opcode(\"invokeAmbiguous\",e,f)},simpleSexpr:function(a){var b=a.id;\"DATA\"===b.type?this.DATA(b):b.parts.length?this.ID(b):(this.addDepth(b.depth),this.opcode(\"getContext\",b.depth),this.opcode(\"pushContext\")),this.opcode(\"resolvePossibleLambda\")},helperSexpr:function(a,b,c){var d=this.setupFullMustacheParams(a,b,c),e=a.id,g=e.parts[0];if(this.options.knownHelpers[g])this.opcode(\"invokeKnownHelper\",d.length,g);else{if(this.options.knownHelpersOnly)throw new f(\"You specified knownHelpersOnly, but used the unknown helper \"+g,a);this.ID(e),this.opcode(\"invokeHelper\",d.length,e.original,a.isRoot)}},sexpr:function(a){var b=this.classifySexpr(a);\"simple\"===b?this.simpleSexpr(a):\"helper\"===b?this.helperSexpr(a):this.ambiguousSexpr(a)},ID:function(a){this.addDepth(a.depth),this.opcode(\"getContext\",a.depth);var b=a.parts[0];b?this.opcode(\"lookupOnContext\",a.parts[0]):this.opcode(\"pushContext\");for(var c=1,d=a.parts.length;d>c;c++)this.opcode(\"lookup\",a.parts[c])},DATA:function(a){this.options.data=!0,this.opcode(\"lookupData\",a.id.depth);for(var b=a.id.parts,c=0,d=b.length;d>c;c++)this.opcode(\"lookup\",b[c])},STRING:function(a){this.opcode(\"pushString\",a.string)},NUMBER:function(a){this.opcode(\"pushLiteral\",a.number)},BOOLEAN:function(a){this.opcode(\"pushLiteral\",a.bool)},comment:function(){},opcode:function(a){this.opcodes.push({opcode:a,args:[].slice.call(arguments,1)})},declare:function(a,b){this.opcodes.push({opcode:\"DECLARE\",name:a,value:b})},addDepth:function(a){0!==a&&(this.depths[a]||(this.depths[a]=!0,this.depths.list.push(a)))},classifySexpr:function(a){var b=a.isHelper,c=a.eligibleHelper,d=this.options;if(c&&!b){var e=a.id.parts[0];d.knownHelpers[e]?b=!0:d.knownHelpersOnly&&(c=!1)}return b?\"helper\":c?\"ambiguous\":\"simple\"},pushParams:function(a){for(var b=0,c=a.length;c>b;b++)this.pushParam(a[b])},pushParam:function(a){this.stringParams?(a.depth&&this.addDepth(a.depth),this.opcode(\"getContext\",a.depth||0),this.opcode(\"pushStringParam\",a.stringModeValue,a.type),\"sexpr\"===a.type&&this.sexpr(a)):(this.trackIds&&this.opcode(\"pushId\",a.type,a.idName||a.stringModeValue),this.accept(a))},setupFullMustacheParams:function(a,b,c){var d=a.params;return this.pushParams(d),this.opcode(\"pushProgram\",b),this.opcode(\"pushProgram\",c),a.hash?this.hash(a.hash):this.opcode(\"emptyHash\"),d}},e.precompile=c,e.compile=d,e}(c),k=function(a,b){\"use strict\";function c(a){this.value=a}function d(){}var e,f=a.COMPILER_REVISION,g=a.REVISION_CHANGES,h=a.log,i=b;d.prototype={nameLookup:function(a,b){var c,e;return 0===a.indexOf(\"depth\")&&(c=!0),e=d.isValidJavaScriptVariableName(b)?a+\".\"+b:a+\"['\"+b+\"']\",c?\"(\"+a+\" && \"+e+\")\":e},compilerInfo:function(){var a=f,b=g[a];return[a,b]},appendToBuffer:function(a){return this.environment.isSimple?\"return \"+a+\";\":{appendToBuffer:!0,content:a,toString:function(){return\"buffer += \"+a+\";\"}}},initializeBuffer:function(){return this.quotedString(\"\")},namespace:\"Handlebars\",compile:function(a,b,c,d){this.environment=a,this.options=b||{},this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!d,h(\"debug\",this.environment.disassemble()+\"\\n\\n\"),this.name=this.environment.name,this.isChild=!!c,this.context=c||{programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.compileChildren(a,b);var e,f,g,j=a.opcodes;for(f=0,g=j.length;g>f;f++)e=j[f],\"DECLARE\"===e.opcode?this[e.name]=e.value:this[e.opcode].apply(this,e.args),e.opcode!==this.stripNext&&(this.stripNext=!1);if(this.pushSource(\"\"),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new i(\"Compile completed with content left on stack\");var k=this.createFunctionContext(d);if(this.isChild)return k;var l={compiler:this.compilerInfo(),main:k},m=this.context.programs;for(f=0,g=m.length;g>f;f++)m[f]&&(l[f]=m[f]);return this.environment.usePartial&&(l.usePartial=!0),this.options.data&&(l.useData=!0),d||(l.compiler=JSON.stringify(l.compiler),l=this.objectLiteral(l)),l},preamble:function(){this.lastContext=0,this.source=[]},createFunctionContext:function(a){var b=\"\",c=this.stackVars.concat(this.registers.list);c.length>0&&(b+=\", \"+c.join(\", \"));for(var d in this.aliases)this.aliases.hasOwnProperty(d)&&(b+=\", \"+d+\"=\"+this.aliases[d]);for(var e=[\"depth0\",\"helpers\",\"partials\",\"data\"],f=0,g=this.environment.depths.list.length;g>f;f++)e.push(\"depth\"+this.environment.depths.list[f]);var h=this.mergeSource(b);return a?(e.push(h),Function.apply(this,e)):\"function(\"+e.join(\",\")+\") {\\n \"+h+\"}\"},mergeSource:function(a){for(var b,c,d=\"\",e=!this.forceBuffer,f=0,g=this.source.length;g>f;f++){var h=this.source[f];h.appendToBuffer?b=b?b+\"\\n + \"+h.content:h.content:(b&&(d?d+=\"buffer += \"+b+\";\\n \":(c=!0,d=b+\";\\n \"),b=void 0),d+=h+\"\\n \",this.environment.isSimple||(e=!1))}return e?(b||!d)&&(d+=\"return \"+(b||'\"\"')+\";\\n\"):(a+=\", buffer = \"+(c?\"\":this.initializeBuffer()),d+=b?\"return buffer + \"+b+\";\\n\":\"return buffer;\\n\"),a&&(d=\"var \"+a.substring(2)+(c?\"\":\";\\n \")+d),d},blockValue:function(a){this.aliases.blockHelperMissing=\"helpers.blockHelperMissing\";var b=[\"depth0\"];this.setupParams(a,0,b),this.replaceStack(function(a){return b.splice(1,0,a),\"blockHelperMissing.call(\"+b.join(\", \")+\")\"})},ambiguousBlockValue:function(){this.aliases.blockHelperMissing=\"helpers.blockHelperMissing\";var a=[\"depth0\"];this.setupParams(\"\",0,a,!0),this.flushInline();var b=this.topStack();a.splice(1,0,b),this.pushSource(\"if (!\"+this.lastHelper+\") { \"+b+\" = blockHelperMissing.call(\"+a.join(\", \")+\"); }\")},appendContent:function(a){this.pendingContent&&(a=this.pendingContent+a),this.stripNext&&(a=a.replace(/^\\s+/,\"\")),this.pendingContent=a},strip:function(){this.pendingContent&&(this.pendingContent=this.pendingContent.replace(/\\s+$/,\"\")),this.stripNext=\"strip\"},append:function(){this.flushInline();var a=this.popStack();this.pushSource(\"if(\"+a+\" || \"+a+\" === 0) { \"+this.appendToBuffer(a)+\" }\"),this.environment.isSimple&&this.pushSource(\"else { \"+this.appendToBuffer(\"''\")+\" }\")},appendEscaped:function(){this.aliases.escapeExpression=\"this.escapeExpression\",this.pushSource(this.appendToBuffer(\"escapeExpression(\"+this.popStack()+\")\"))},getContext:function(a){this.lastContext!==a&&(this.lastContext=a)},lookupOnContext:function(a){this.push(this.nameLookup(\"depth\"+this.lastContext,a,\"context\"))},pushContext:function(){this.pushStackLiteral(\"depth\"+this.lastContext)},resolvePossibleLambda:function(){this.aliases.functionType='\"function\"',this.replaceStack(function(a){return\"typeof \"+a+\" === functionType ? \"+a+\".apply(depth0) : \"+a})},lookup:function(a){this.replaceStack(function(b){return b+\" == null || \"+b+\" === false ? \"+b+\" : \"+this.nameLookup(b,a,\"context\")})},lookupData:function(a){this.pushStackLiteral(a?\"this.data(data, \"+a+\")\":\"data\")},pushStringParam:function(a,b){this.pushStackLiteral(\"depth\"+this.lastContext),this.pushString(b),\"sexpr\"!==b&&(\"string\"==typeof a?this.pushString(a):this.pushStackLiteral(a))},emptyHash:function(){this.pushStackLiteral(\"{}\"),this.trackIds&&this.push(\"{}\"),this.stringParams&&(this.push(\"{}\"),this.push(\"{}\"))},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:[],types:[],contexts:[],ids:[]}},popHash:function(){var a=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push(\"{\"+a.ids.join(\",\")+\"}\"),this.stringParams&&(this.push(\"{\"+a.contexts.join(\",\")+\"}\"),this.push(\"{\"+a.types.join(\",\")+\"}\")),this.push(\"{\\n \"+a.values.join(\",\\n \")+\"\\n }\")},pushString:function(a){this.pushStackLiteral(this.quotedString(a))},push:function(a){return this.inlineStack.push(a),a},pushLiteral:function(a){this.pushStackLiteral(a)},pushProgram:function(a){this.pushStackLiteral(null!=a?this.programExpression(a):null)},invokeHelper:function(a,b,c){this.aliases.helperMissing=\"helpers.helperMissing\",this.useRegister(\"helper\");var d=this.popStack(),e=this.setupHelper(a,b),f=\"helper = \"+e.name+\" || \"+d+\" || helperMissing\";e.paramsInit&&(f+=\",\"+e.paramsInit),this.push(\"(\"+f+\",helper.call(\"+e.callParams+\"))\"),c||this.flushInline()},invokeKnownHelper:function(a,b){var c=this.setupHelper(a,b);this.push(c.name+\".call(\"+c.callParams+\")\")},invokeAmbiguous:function(a,b){this.aliases.functionType='\"function\"',this.useRegister(\"helper\"),this.emptyHash();var c=this.setupHelper(0,a,b),d=this.lastHelper=this.nameLookup(\"helpers\",a,\"helper\"),e=this.nameLookup(\"depth\"+this.lastContext,a,\"context\");this.push(\"((helper = \"+d+\" || \"+e+(c.paramsInit?\"),(\"+c.paramsInit:\"\")+\"),(typeof helper === functionType ? helper.call(\"+c.callParams+\") : helper))\")},invokePartial:function(a){var b=[this.nameLookup(\"partials\",a,\"partial\"),\"'\"+a+\"'\",this.popStack(),this.popStack(),\"helpers\",\"partials\"];this.options.data&&b.push(\"data\"),this.push(\"this.invokePartial(\"+b.join(\", \")+\")\")},assignToHash:function(a){var b,c,d,e=this.popStack();this.trackIds&&(d=this.popStack()),this.stringParams&&(c=this.popStack(),b=this.popStack());var f=this.hash;b&&f.contexts.push(\"'\"+a+\"': \"+b),c&&f.types.push(\"'\"+a+\"': \"+c),d&&f.ids.push(\"'\"+a+\"': \"+d),f.values.push(\"'\"+a+\"': (\"+e+\")\")},pushId:function(a,b){\"ID\"===a||\"DATA\"===a?this.pushString(b):this.pushStackLiteral(\"sexpr\"===a?\"true\":\"null\")},compiler:d,compileChildren:function(a,b){for(var c,d,e=a.children,f=0,g=e.length;g>f;f++){c=e[f],d=new this.compiler;var h=this.matchExistingProgram(c);null==h?(this.context.programs.push(\"\"),h=this.context.programs.length,c.index=h,c.name=\"program\"+h,this.context.programs[h]=d.compile(c,b,this.context,!this.precompile),this.context.environments[h]=c):(c.index=h,c.name=\"program\"+h)}},matchExistingProgram:function(a){for(var b=0,c=this.context.environments.length;c>b;b++){var d=this.context.environments[b];if(d&&d.equals(a))return b}},programExpression:function(a){if(null==a)return\"this.noop\";for(var b,c=this.environment.children[a],d=c.depths.list,e=[c.index,\"data\"],f=0,g=d.length;g>f;f++)b=d[f],e.push(\"depth\"+(b-1));return(0===d.length?\"this.program(\":\"this.programWithDepth(\")+e.join(\", \")+\")\"},register:function(a,b){this.useRegister(a),this.pushSource(a+\" = \"+b+\";\")},useRegister:function(a){this.registers[a]||(this.registers[a]=!0,this.registers.list.push(a))},pushStackLiteral:function(a){return this.push(new c(a))},pushSource:function(a){this.pendingContent&&(this.source.push(this.appendToBuffer(this.quotedString(this.pendingContent))),this.pendingContent=void 0),a&&this.source.push(a)},pushStack:function(a){this.flushInline();var b=this.incrStack();return a&&this.pushSource(b+\" = \"+a+\";\"),this.compileStack.push(b),b},replaceStack:function(a){var b,d,e,f=\"\",g=this.isInline();if(g){var h=this.popStack(!0);if(h instanceof c)b=h.value,e=!0;else{d=!this.stackSlot;var i=d?this.incrStack():this.topStackName();f=\"(\"+this.push(i)+\" = \"+h+\"),\",b=this.topStack()}}else b=this.topStack();var j=a.call(this,b);return g?(e||this.popStack(),d&&this.stackSlot--,this.push(\"(\"+f+j+\")\")):(/^stack/.test(b)||(b=this.nextStack()),this.pushSource(b+\" = (\"+f+j+\");\")),b},nextStack:function(){return this.pushStack()},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push(\"stack\"+this.stackSlot),this.topStackName()},topStackName:function(){return\"stack\"+this.stackSlot},flushInline:function(){var a=this.inlineStack;if(a.length){this.inlineStack=[];for(var b=0,d=a.length;d>b;b++){var e=a[b];e instanceof c?this.compileStack.push(e):this.pushStack(e)}}},isInline:function(){return this.inlineStack.length},popStack:function(a){var b=this.isInline(),d=(b?this.inlineStack:this.compileStack).pop();if(!a&&d instanceof c)return d.value;if(!b){if(!this.stackSlot)throw new i(\"Invalid stack pop\");this.stackSlot--}return d},topStack:function(a){var b=this.isInline()?this.inlineStack:this.compileStack,d=b[b.length-1];return!a&&d instanceof c?d.value:d},quotedString:function(a){return'\"'+a.replace(/\\\\/g,\"\\\\\\\\\").replace(/\"/g,'\\\\\"').replace(/\\n/g,\"\\\\n\").replace(/\\r/g,\"\\\\r\").replace(/\\u2028/g,\"\\\\u2028\").replace(/\\u2029/g,\"\\\\u2029\")+'\"'},objectLiteral:function(a){var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(this.quotedString(c)+\":\"+a[c]);return\"{\"+b.join(\",\")+\"}\"},setupHelper:function(a,b,c){var d=[],e=this.setupParams(b,a,d,c),f=this.nameLookup(\"helpers\",b,\"helper\");return{params:d,paramsInit:e,name:f,callParams:[\"depth0\"].concat(d).join(\", \")}},setupOptions:function(a,b,c){var d,e,f,g={},h=[],i=[],j=[];g.name=this.quotedString(a),g.hash=this.popStack(),this.trackIds&&(g.hashIds=this.popStack()),this.stringParams&&(g.hashTypes=this.popStack(),g.hashContexts=this.popStack()),e=this.popStack(),f=this.popStack(),(f||e)&&(f||(f=\"this.noop\"),e||(e=\"this.noop\"),g.fn=f,g.inverse=e);for(var k=b;k--;)d=this.popStack(),c[k]=d,this.trackIds&&(j[k]=this.popStack()),this.stringParams&&(i[k]=this.popStack(),h[k]=this.popStack());return this.trackIds&&(g.ids=\"[\"+j.join(\",\")+\"]\"),this.stringParams&&(g.types=\"[\"+i.join(\",\")+\"]\",g.contexts=\"[\"+h.join(\",\")+\"]\"),this.options.data&&(g.data=\"data\"),g},setupParams:function(a,b,c,d){var e=this.objectLiteral(this.setupOptions(a,b,c));return d?(this.useRegister(\"options\"),c.push(\"options\"),\"options=\"+e):(c.push(e),\"\")}};for(var j=\"break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield\".split(\" \"),k=d.RESERVED_WORDS={},l=0,m=j.length;m>l;l++)k[j[l]]=!0;return d.isValidJavaScriptVariableName=function(a){return!d.RESERVED_WORDS[a]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(a)},e=d}(d,c),l=function(a,b,c,d,e){\"use strict\";var f,g=a,h=b,i=c.parser,j=c.parse,k=d.Compiler,l=d.compile,m=d.precompile,n=e,o=g.create,p=function(){var a=o();return a.compile=function(b,c){return l(b,c,a)},a.precompile=function(b,c){return m(b,c,a)},a.AST=h,a.Compiler=k,a.JavaScriptCompiler=n,a.Parser=i,a.parse=j,a};return g=p(),g.create=p,f=g}(f,g,i,j,k);return l}();\n}.call(window));\n","/*** IMPORTS FROM imports-loader ***/\n\n(function() {\n// Ion.RangeSlider, 2.3.0, © Denis Ineshin, 2010 - 2018, IonDen.com, Build date: 2018-12-12 00:00:37\r\n!function (i) { !jQuery && \"function\" == typeof define && define.amd ? define([\"jquery\"], function (t) { return i(t, document, window, navigator) }) : jQuery || \"object\" != typeof exports ? i(jQuery, document, window, navigator) : i(require(\"jquery\"), document, window, navigator) }(function (a, c, l, t, _) { \"use strict\"; var i, s, o = 0, e = (i = t.userAgent, s = /msie\\s\\d+/i, 0 < i.search(s) && s.exec(i).toString().split(\" \")[1] < 9 && (a(\"html\").addClass(\"lt-ie9\"), !0)); Function.prototype.bind || (Function.prototype.bind = function (o) { var e = this, h = [].slice; if (\"function\" != typeof e) throw new TypeError; var r = h.call(arguments, 1), n = function () { if (this instanceof n) { var t = function () { }; t.prototype = e.prototype; var i = new t, s = e.apply(i, r.concat(h.call(arguments))); return Object(s) === s ? s : i } return e.apply(o, r.concat(h.call(arguments))) }; return n }), Array.prototype.indexOf || (Array.prototype.indexOf = function (t, i) { var s; if (null == this) throw new TypeError('\"this\" is null or not defined'); var o = Object(this), e = o.length >>> 0; if (0 === e) return -1; var h = +i || 0; if (Math.abs(h) === 1 / 0 && (h = 0), e <= h) return -1; for (s = Math.max(0 <= h ? h : e - Math.abs(h), 0) ; s < e;) { if (s in o && o[s] === t) return s; s++ } return -1 }); var h = function (t, i, s) { this.VERSION = \"2.3.0\", this.input = t, this.plugin_count = s, this.current_plugin = 0, this.calc_count = 0, this.update_tm = 0, this.old_from = 0, this.old_to = 0, this.old_min_interval = null, this.raf_id = null, this.dragging = !1, this.force_redraw = !1, this.no_diapason = !1, this.has_tab_index = !0, this.is_key = !1, this.is_update = !1, this.is_start = !0, this.is_finish = !1, this.is_active = !1, this.is_resize = !1, this.is_click = !1, i = i || {}, this.$cache = { win: a(l), body: a(c.body), input: a(t), cont: null, rs: null, min: null, max: null, from: null, to: null, single: null, bar: null, line: null, s_single: null, s_from: null, s_to: null, shad_single: null, shad_from: null, shad_to: null, edge: null, grid: null, grid_labels: [] }, this.coords = { x_gap: 0, x_pointer: 0, w_rs: 0, w_rs_old: 0, w_handle: 0, p_gap: 0, p_gap_left: 0, p_gap_right: 0, p_step: 0, p_pointer: 0, p_handle: 0, p_single_fake: 0, p_single_real: 0, p_from_fake: 0, p_from_real: 0, p_to_fake: 0, p_to_real: 0, p_bar_x: 0, p_bar_w: 0, grid_gap: 0, big_num: 0, big: [], big_w: [], big_p: [], big_x: [] }, this.labels = { w_min: 0, w_max: 0, w_from: 0, w_to: 0, w_single: 0, p_min: 0, p_max: 0, p_from_fake: 0, p_from_left: 0, p_to_fake: 0, p_to_left: 0, p_single_fake: 0, p_single_left: 0 }; var o, e, h, r = this.$cache.input, n = r.prop(\"value\"); for (h in o = { skin: \"flat\", type: \"single\", min: 10, max: 100, from: null, to: null, step: 1, min_interval: 0, max_interval: 0, drag_interval: !1, values: [], p_values: [], from_fixed: !1, from_min: null, from_max: null, from_shadow: !1, to_fixed: !1, to_min: null, to_max: null, to_shadow: !1, prettify_enabled: !0, prettify_separator: \" \", prettify: null, force_edges: !1, keyboard: !0, grid: !1, grid_margin: !0, grid_num: 4, grid_snap: !1, hide_min_max: !1, hide_from_to: !1, prefix: \"\", postfix: \"\", max_postfix: \"\", decorate_both: !0, values_separator: \" — \", input_values_separator: \";\", disable: !1, block: !1, extra_classes: \"\", scope: null, onStart: null, onChange: null, onFinish: null, onUpdate: null }, \"INPUT\" !== r[0].nodeName && console && console.warn && console.warn(\"Base element should be !\", r[0]), (e = { skin: r.data(\"skin\"), type: r.data(\"type\"), min: r.data(\"min\"), max: r.data(\"max\"), from: r.data(\"from\"), to: r.data(\"to\"), step: r.data(\"step\"), min_interval: r.data(\"minInterval\"), max_interval: r.data(\"maxInterval\"), drag_interval: r.data(\"dragInterval\"), values: r.data(\"values\"), from_fixed: r.data(\"fromFixed\"), from_min: r.data(\"fromMin\"), from_max: r.data(\"fromMax\"), from_shadow: r.data(\"fromShadow\"), to_fixed: r.data(\"toFixed\"), to_min: r.data(\"toMin\"), to_max: r.data(\"toMax\"), to_shadow: r.data(\"toShadow\"), prettify_enabled: r.data(\"prettifyEnabled\"), prettify_separator: r.data(\"prettifySeparator\"), force_edges: r.data(\"forceEdges\"), keyboard: r.data(\"keyboard\"), grid: r.data(\"grid\"), grid_margin: r.data(\"gridMargin\"), grid_num: r.data(\"gridNum\"), grid_snap: r.data(\"gridSnap\"), hide_min_max: r.data(\"hideMinMax\"), hide_from_to: r.data(\"hideFromTo\"), prefix: r.data(\"prefix\"), postfix: r.data(\"postfix\"), max_postfix: r.data(\"maxPostfix\"), decorate_both: r.data(\"decorateBoth\"), values_separator: r.data(\"valuesSeparator\"), input_values_separator: r.data(\"inputValuesSeparator\"), disable: r.data(\"disable\"), block: r.data(\"block\"), extra_classes: r.data(\"extraClasses\") }).values = e.values && e.values.split(\",\"), e) e.hasOwnProperty(h) && (e[h] !== _ && \"\" !== e[h] || delete e[h]); n !== _ && \"\" !== n && ((n = n.split(e.input_values_separator || i.input_values_separator || \";\"))[0] && n[0] == +n[0] && (n[0] = +n[0]), n[1] && n[1] == +n[1] && (n[1] = +n[1]), i && i.values && i.values.length ? (o.from = n[0] && i.values.indexOf(n[0]), o.to = n[1] && i.values.indexOf(n[1])) : (o.from = n[0] && +n[0], o.to = n[1] && +n[1])), a.extend(o, i), a.extend(o, e), this.options = o, this.update_check = {}, this.validate(), this.result = { input: this.$cache.input, slider: null, min: this.options.min, max: this.options.max, from: this.options.from, from_percent: 0, from_value: null, to: this.options.to, to_percent: 0, to_value: null }, this.init() }; h.prototype = { init: function (t) { this.no_diapason = !1, this.coords.p_step = this.convertToPercent(this.options.step, !0), this.target = \"base\", this.toggleInput(), this.append(), this.setMinMax(), t ? (this.force_redraw = !0, this.calc(!0), this.callOnUpdate()) : (this.force_redraw = !0, this.calc(!0), this.callOnStart()), this.updateScene() }, append: function () { var t = ''; this.$cache.input.before(t), this.$cache.input.prop(\"readonly\", !0), this.$cache.cont = this.$cache.input.prev(), this.result.slider = this.$cache.cont, this.$cache.cont.html('01000'), this.$cache.rs = this.$cache.cont.find(\".irs\"), this.$cache.min = this.$cache.cont.find(\".irs-min\"), this.$cache.max = this.$cache.cont.find(\".irs-max\"), this.$cache.from = this.$cache.cont.find(\".irs-from\"), this.$cache.to = this.$cache.cont.find(\".irs-to\"), this.$cache.single = this.$cache.cont.find(\".irs-single\"), this.$cache.line = this.$cache.cont.find(\".irs-line\"), this.$cache.grid = this.$cache.cont.find(\".irs-grid\"), \"single\" === this.options.type ? (this.$cache.cont.append(''), this.$cache.bar = this.$cache.cont.find(\".irs-bar\"), this.$cache.edge = this.$cache.cont.find(\".irs-bar-edge\"), this.$cache.s_single = this.$cache.cont.find(\".single\"), this.$cache.from[0].style.visibility = \"hidden\", this.$cache.to[0].style.visibility = \"hidden\", this.$cache.shad_single = this.$cache.cont.find(\".shadow-single\")) : (this.$cache.cont.append(''), this.$cache.bar = this.$cache.cont.find(\".irs-bar\"), this.$cache.s_from = this.$cache.cont.find(\".from\"), this.$cache.s_to = this.$cache.cont.find(\".to\"), this.$cache.shad_from = this.$cache.cont.find(\".shadow-from\"), this.$cache.shad_to = this.$cache.cont.find(\".shadow-to\"), this.setTopHandler()), this.options.hide_from_to && (this.$cache.from[0].style.display = \"none\", this.$cache.to[0].style.display = \"none\", this.$cache.single[0].style.display = \"none\"), this.appendGrid(), this.options.disable ? (this.appendDisableMask(), this.$cache.input[0].disabled = !0) : (this.$cache.input[0].disabled = !1, this.removeDisableMask(), this.bindEvents()), this.options.disable || (this.options.block ? this.appendDisableMask() : this.removeDisableMask()), this.options.drag_interval && (this.$cache.bar[0].style.cursor = \"ew-resize\") }, setTopHandler: function () { var t = this.options.min, i = this.options.max, s = this.options.from, o = this.options.to; t < s && o === i ? this.$cache.s_from.addClass(\"type_last\") : o < i && this.$cache.s_to.addClass(\"type_last\") }, changeLevel: function (t) { switch (t) { case \"single\": this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_single_fake), this.$cache.s_single.addClass(\"state_hover\"); break; case \"from\": this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_from_fake), this.$cache.s_from.addClass(\"state_hover\"), this.$cache.s_from.addClass(\"type_last\"), this.$cache.s_to.removeClass(\"type_last\"); break; case \"to\": this.coords.p_gap = this.toFixed(this.coords.p_pointer - this.coords.p_to_fake), this.$cache.s_to.addClass(\"state_hover\"), this.$cache.s_to.addClass(\"type_last\"), this.$cache.s_from.removeClass(\"type_last\"); break; case \"both\": this.coords.p_gap_left = this.toFixed(this.coords.p_pointer - this.coords.p_from_fake), this.coords.p_gap_right = this.toFixed(this.coords.p_to_fake - this.coords.p_pointer), this.$cache.s_to.removeClass(\"type_last\"), this.$cache.s_from.removeClass(\"type_last\") } }, appendDisableMask: function () { this.$cache.cont.append(''), this.$cache.cont.addClass(\"irs-disabled\") }, removeDisableMask: function () { this.$cache.cont.remove(\".irs-disable-mask\"), this.$cache.cont.removeClass(\"irs-disabled\") }, remove: function () { this.$cache.cont.remove(), this.$cache.cont = null, this.$cache.line.off(\"keydown.irs_\" + this.plugin_count), this.$cache.body.off(\"touchmove.irs_\" + this.plugin_count), this.$cache.body.off(\"mousemove.irs_\" + this.plugin_count), this.$cache.win.off(\"touchend.irs_\" + this.plugin_count), this.$cache.win.off(\"mouseup.irs_\" + this.plugin_count), e && (this.$cache.body.off(\"mouseup.irs_\" + this.plugin_count), this.$cache.body.off(\"mouseleave.irs_\" + this.plugin_count)), this.$cache.grid_labels = [], this.coords.big = [], this.coords.big_w = [], this.coords.big_p = [], this.coords.big_x = [], cancelAnimationFrame(this.raf_id) }, bindEvents: function () { this.no_diapason || (this.$cache.body.on(\"touchmove.irs_\" + this.plugin_count, this.pointerMove.bind(this)), this.$cache.body.on(\"mousemove.irs_\" + this.plugin_count, this.pointerMove.bind(this)), this.$cache.win.on(\"touchend.irs_\" + this.plugin_count, this.pointerUp.bind(this)), this.$cache.win.on(\"mouseup.irs_\" + this.plugin_count, this.pointerUp.bind(this)), this.$cache.line.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\")), this.$cache.line.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\")), this.$cache.line.on(\"focus.irs_\" + this.plugin_count, this.pointerFocus.bind(this)), this.options.drag_interval && \"double\" === this.options.type ? (this.$cache.bar.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"both\")), this.$cache.bar.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"both\"))) : (this.$cache.bar.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\")), this.$cache.bar.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"))), \"single\" === this.options.type ? (this.$cache.single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\")), this.$cache.s_single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\")), this.$cache.shad_single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\")), this.$cache.single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\")), this.$cache.s_single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"single\")), this.$cache.edge.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\")), this.$cache.shad_single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"))) : (this.$cache.single.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, null)), this.$cache.single.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, null)), this.$cache.from.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\")), this.$cache.s_from.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\")), this.$cache.to.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\")), this.$cache.s_to.on(\"touchstart.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\")), this.$cache.shad_from.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\")), this.$cache.shad_to.on(\"touchstart.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\")), this.$cache.from.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\")), this.$cache.s_from.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"from\")), this.$cache.to.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\")), this.$cache.s_to.on(\"mousedown.irs_\" + this.plugin_count, this.pointerDown.bind(this, \"to\")), this.$cache.shad_from.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\")), this.$cache.shad_to.on(\"mousedown.irs_\" + this.plugin_count, this.pointerClick.bind(this, \"click\"))), this.options.keyboard && this.$cache.line.on(\"keydown.irs_\" + this.plugin_count, this.key.bind(this, \"keyboard\")), e && (this.$cache.body.on(\"mouseup.irs_\" + this.plugin_count, this.pointerUp.bind(this)), this.$cache.body.on(\"mouseleave.irs_\" + this.plugin_count, this.pointerUp.bind(this)))) }, pointerFocus: function (t) { var i, s; this.target || (i = (s = \"single\" === this.options.type ? this.$cache.single : this.$cache.from).offset().left, i += s.width() / 2 - 1, this.pointerClick(\"single\", { preventDefault: function () { }, pageX: i })) }, pointerMove: function (t) { if (this.dragging) { var i = t.pageX || t.originalEvent.touches && t.originalEvent.touches[0].pageX; this.coords.x_pointer = i - this.coords.x_gap, this.calc() } }, pointerUp: function (t) { this.current_plugin === this.plugin_count && this.is_active && (this.is_active = !1, this.$cache.cont.find(\".state_hover\").removeClass(\"state_hover\"), this.force_redraw = !0, e && a(\"*\").prop(\"unselectable\", !1), this.updateScene(), this.restoreOriginalMinInterval(), (a.contains(this.$cache.cont[0], t.target) || this.dragging) && this.callOnFinish(), this.dragging = !1) }, pointerDown: function (t, i) { i.preventDefault(); var s = i.pageX || i.originalEvent.touches && i.originalEvent.touches[0].pageX; 2 !== i.button && (\"both\" === t && this.setTempMinInterval(), t || (t = this.target || \"from\"), this.current_plugin = this.plugin_count, this.target = t, this.is_active = !0, this.dragging = !0, this.coords.x_gap = this.$cache.rs.offset().left, this.coords.x_pointer = s - this.coords.x_gap, this.calcPointerPercent(), this.changeLevel(t), e && a(\"*\").prop(\"unselectable\", !0), this.$cache.line.trigger(\"focus\"), this.updateScene()) }, pointerClick: function (t, i) { i.preventDefault(); var s = i.pageX || i.originalEvent.touches && i.originalEvent.touches[0].pageX; 2 !== i.button && (this.current_plugin = this.plugin_count, this.target = t, this.is_click = !0, this.coords.x_gap = this.$cache.rs.offset().left, this.coords.x_pointer = +(s - this.coords.x_gap).toFixed(), this.force_redraw = !0, this.calc(), this.$cache.line.trigger(\"focus\")) }, key: function (t, i) { if (!(this.current_plugin !== this.plugin_count || i.altKey || i.ctrlKey || i.shiftKey || i.metaKey)) { switch (i.which) { case 83: case 65: case 40: case 37: i.preventDefault(), this.moveByKey(!1); break; case 87: case 68: case 38: case 39: i.preventDefault(), this.moveByKey(!0) } return !0 } }, moveByKey: function (t) { var i = this.coords.p_pointer, s = (this.options.max - this.options.min) / 100; s = this.options.step / s, t ? i += s : i -= s, this.coords.x_pointer = this.toFixed(this.coords.w_rs / 100 * i), this.is_key = !0, this.calc() }, setMinMax: function () { if (this.options) { if (this.options.hide_min_max) return this.$cache.min[0].style.display = \"none\", void (this.$cache.max[0].style.display = \"none\"); if (this.options.values.length) this.$cache.min.html(this.decorate(this.options.p_values[this.options.min])), this.$cache.max.html(this.decorate(this.options.p_values[this.options.max])); else { var t = this._prettify(this.options.min), i = this._prettify(this.options.max); this.result.min_pretty = t, this.result.max_pretty = i, this.$cache.min.html(this.decorate(t, this.options.min)), this.$cache.max.html(this.decorate(i, this.options.max)) } this.labels.w_min = this.$cache.min.outerWidth(!1), this.labels.w_max = this.$cache.max.outerWidth(!1) } }, setTempMinInterval: function () { var t = this.result.to - this.result.from; null === this.old_min_interval && (this.old_min_interval = this.options.min_interval), this.options.min_interval = t }, restoreOriginalMinInterval: function () { null !== this.old_min_interval && (this.options.min_interval = this.old_min_interval, this.old_min_interval = null) }, calc: function (t) { if (this.options && (this.calc_count++, (10 === this.calc_count || t) && (this.calc_count = 0, this.coords.w_rs = this.$cache.rs.outerWidth(!1), this.calcHandlePercent()), this.coords.w_rs)) { this.calcPointerPercent(); var i = this.getHandleX(); switch (\"both\" === this.target && (this.coords.p_gap = 0, i = this.getHandleX()), \"click\" === this.target && (this.coords.p_gap = this.coords.p_handle / 2, i = this.getHandleX(), this.options.drag_interval ? this.target = \"both_one\" : this.target = this.chooseHandle(i)), this.target) { case \"base\": var s = (this.options.max - this.options.min) / 100, o = (this.result.from - this.options.min) / s, e = (this.result.to - this.options.min) / s; this.coords.p_single_real = this.toFixed(o), this.coords.p_from_real = this.toFixed(o), this.coords.p_to_real = this.toFixed(e), this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max), this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max), this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max), this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real), this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real), this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real), this.target = null; break; case \"single\": if (this.options.from_fixed) break; this.coords.p_single_real = this.convertToRealPercent(i), this.coords.p_single_real = this.calcWithStep(this.coords.p_single_real), this.coords.p_single_real = this.checkDiapason(this.coords.p_single_real, this.options.from_min, this.options.from_max), this.coords.p_single_fake = this.convertToFakePercent(this.coords.p_single_real); break; case \"from\": if (this.options.from_fixed) break; this.coords.p_from_real = this.convertToRealPercent(i), this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real), this.coords.p_from_real > this.coords.p_to_real && (this.coords.p_from_real = this.coords.p_to_real), this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max), this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, \"from\"), this.coords.p_from_real = this.checkMaxInterval(this.coords.p_from_real, this.coords.p_to_real, \"from\"), this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real); break; case \"to\": if (this.options.to_fixed) break; this.coords.p_to_real = this.convertToRealPercent(i), this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real), this.coords.p_to_real < this.coords.p_from_real && (this.coords.p_to_real = this.coords.p_from_real), this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max), this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, \"to\"), this.coords.p_to_real = this.checkMaxInterval(this.coords.p_to_real, this.coords.p_from_real, \"to\"), this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real); break; case \"both\": if (this.options.from_fixed || this.options.to_fixed) break; i = this.toFixed(i + .001 * this.coords.p_handle), this.coords.p_from_real = this.convertToRealPercent(i) - this.coords.p_gap_left, this.coords.p_from_real = this.calcWithStep(this.coords.p_from_real), this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max), this.coords.p_from_real = this.checkMinInterval(this.coords.p_from_real, this.coords.p_to_real, \"from\"), this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real), this.coords.p_to_real = this.convertToRealPercent(i) + this.coords.p_gap_right, this.coords.p_to_real = this.calcWithStep(this.coords.p_to_real), this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max), this.coords.p_to_real = this.checkMinInterval(this.coords.p_to_real, this.coords.p_from_real, \"to\"), this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real); break; case \"both_one\": if (this.options.from_fixed || this.options.to_fixed) break; var h = this.convertToRealPercent(i), r = this.result.from_percent, n = this.result.to_percent - r, a = n / 2, c = h - a, l = h + a; c < 0 && (l = (c = 0) + n), 100 < l && (c = (l = 100) - n), this.coords.p_from_real = this.calcWithStep(c), this.coords.p_from_real = this.checkDiapason(this.coords.p_from_real, this.options.from_min, this.options.from_max), this.coords.p_from_fake = this.convertToFakePercent(this.coords.p_from_real), this.coords.p_to_real = this.calcWithStep(l), this.coords.p_to_real = this.checkDiapason(this.coords.p_to_real, this.options.to_min, this.options.to_max), this.coords.p_to_fake = this.convertToFakePercent(this.coords.p_to_real) } \"single\" === this.options.type ? (this.coords.p_bar_x = this.coords.p_handle / 2, this.coords.p_bar_w = this.coords.p_single_fake, this.result.from_percent = this.coords.p_single_real, this.result.from = this.convertToValue(this.coords.p_single_real), this.result.from_pretty = this._prettify(this.result.from), this.options.values.length && (this.result.from_value = this.options.values[this.result.from])) : (this.coords.p_bar_x = this.toFixed(this.coords.p_from_fake + this.coords.p_handle / 2), this.coords.p_bar_w = this.toFixed(this.coords.p_to_fake - this.coords.p_from_fake), this.result.from_percent = this.coords.p_from_real, this.result.from = this.convertToValue(this.coords.p_from_real), this.result.from_pretty = this._prettify(this.result.from), this.result.to_percent = this.coords.p_to_real, this.result.to = this.convertToValue(this.coords.p_to_real), this.result.to_pretty = this._prettify(this.result.to), this.options.values.length && (this.result.from_value = this.options.values[this.result.from], this.result.to_value = this.options.values[this.result.to])), this.calcMinMax(), this.calcLabels() } }, calcPointerPercent: function () { this.coords.w_rs ? (this.coords.x_pointer < 0 || isNaN(this.coords.x_pointer) ? this.coords.x_pointer = 0 : this.coords.x_pointer > this.coords.w_rs && (this.coords.x_pointer = this.coords.w_rs), this.coords.p_pointer = this.toFixed(this.coords.x_pointer / this.coords.w_rs * 100)) : this.coords.p_pointer = 0 }, convertToRealPercent: function (t) { return t / (100 - this.coords.p_handle) * 100 }, convertToFakePercent: function (t) { return t / 100 * (100 - this.coords.p_handle) }, getHandleX: function () { var t = 100 - this.coords.p_handle, i = this.toFixed(this.coords.p_pointer - this.coords.p_gap); return i < 0 ? i = 0 : t < i && (i = t), i }, calcHandlePercent: function () { \"single\" === this.options.type ? this.coords.w_handle = this.$cache.s_single.outerWidth(!1) : this.coords.w_handle = this.$cache.s_from.outerWidth(!1), this.coords.p_handle = this.toFixed(this.coords.w_handle / this.coords.w_rs * 100) }, chooseHandle: function (t) { return \"single\" === this.options.type ? \"single\" : this.coords.p_from_real + (this.coords.p_to_real - this.coords.p_from_real) / 2 <= t ? this.options.to_fixed ? \"from\" : \"to\" : this.options.from_fixed ? \"to\" : \"from\" }, calcMinMax: function () { this.coords.w_rs && (this.labels.p_min = this.labels.w_min / this.coords.w_rs * 100, this.labels.p_max = this.labels.w_max / this.coords.w_rs * 100) }, calcLabels: function () { this.coords.w_rs && !this.options.hide_from_to && (\"single\" === this.options.type ? (this.labels.w_single = this.$cache.single.outerWidth(!1), this.labels.p_single_fake = this.labels.w_single / this.coords.w_rs * 100, this.labels.p_single_left = this.coords.p_single_fake + this.coords.p_handle / 2 - this.labels.p_single_fake / 2) : (this.labels.w_from = this.$cache.from.outerWidth(!1), this.labels.p_from_fake = this.labels.w_from / this.coords.w_rs * 100, this.labels.p_from_left = this.coords.p_from_fake + this.coords.p_handle / 2 - this.labels.p_from_fake / 2, this.labels.p_from_left = this.toFixed(this.labels.p_from_left), this.labels.p_from_left = this.checkEdges(this.labels.p_from_left, this.labels.p_from_fake), this.labels.w_to = this.$cache.to.outerWidth(!1), this.labels.p_to_fake = this.labels.w_to / this.coords.w_rs * 100, this.labels.p_to_left = this.coords.p_to_fake + this.coords.p_handle / 2 - this.labels.p_to_fake / 2, this.labels.p_to_left = this.toFixed(this.labels.p_to_left), this.labels.p_to_left = this.checkEdges(this.labels.p_to_left, this.labels.p_to_fake), this.labels.w_single = this.$cache.single.outerWidth(!1), this.labels.p_single_fake = this.labels.w_single / this.coords.w_rs * 100, this.labels.p_single_left = (this.labels.p_from_left + this.labels.p_to_left + this.labels.p_to_fake) / 2 - this.labels.p_single_fake / 2, this.labels.p_single_left = this.toFixed(this.labels.p_single_left)), this.labels.p_single_left = this.checkEdges(this.labels.p_single_left, this.labels.p_single_fake)) }, updateScene: function () { this.raf_id && (cancelAnimationFrame(this.raf_id), this.raf_id = null), clearTimeout(this.update_tm), this.update_tm = null, this.options && (this.drawHandles(), this.is_active ? this.raf_id = requestAnimationFrame(this.updateScene.bind(this)) : this.update_tm = setTimeout(this.updateScene.bind(this), 300)) }, drawHandles: function () { this.coords.w_rs = this.$cache.rs.outerWidth(!1), this.coords.w_rs && (this.coords.w_rs !== this.coords.w_rs_old && (this.target = \"base\", this.is_resize = !0), (this.coords.w_rs !== this.coords.w_rs_old || this.force_redraw) && (this.setMinMax(), this.calc(!0), this.drawLabels(), this.options.grid && (this.calcGridMargin(), this.calcGridLabels()), this.force_redraw = !0, this.coords.w_rs_old = this.coords.w_rs, this.drawShadow()), this.coords.w_rs && (this.dragging || this.force_redraw || this.is_key) && ((this.old_from !== this.result.from || this.old_to !== this.result.to || this.force_redraw || this.is_key) && (this.drawLabels(), this.$cache.bar[0].style.left = this.coords.p_bar_x + \"%\", this.$cache.bar[0].style.width = this.coords.p_bar_w + \"%\", \"single\" === this.options.type ? (this.$cache.bar[0].style.left = 0, this.$cache.bar[0].style.width = this.coords.p_bar_w + this.coords.p_bar_x + \"%\", this.$cache.s_single[0].style.left = this.coords.p_single_fake + \"%\") : (this.$cache.s_from[0].style.left = this.coords.p_from_fake + \"%\", this.$cache.s_to[0].style.left = this.coords.p_to_fake + \"%\", (this.old_from !== this.result.from || this.force_redraw) && (this.$cache.from[0].style.left = this.labels.p_from_left + \"%\"), (this.old_to !== this.result.to || this.force_redraw) && (this.$cache.to[0].style.left = this.labels.p_to_left + \"%\")), this.$cache.single[0].style.left = this.labels.p_single_left + \"%\", this.writeToInput(), this.old_from === this.result.from && this.old_to === this.result.to || this.is_start || (this.$cache.input.trigger(\"change\"), this.$cache.input.trigger(\"input\")), this.old_from = this.result.from, this.old_to = this.result.to, this.is_resize || this.is_update || this.is_start || this.is_finish || this.callOnChange(), (this.is_key || this.is_click) && (this.is_key = !1, this.is_click = !1, this.callOnFinish()), this.is_update = !1, this.is_resize = !1, this.is_finish = !1), this.is_start = !1, this.is_key = !1, this.is_click = !1, this.force_redraw = !1)) }, drawLabels: function () { if (this.options) { var t, i, s, o, e, h = this.options.values.length, r = this.options.p_values; if (!this.options.hide_from_to) if (\"single\" === this.options.type) t = h ? this.decorate(r[this.result.from]) : (o = this._prettify(this.result.from), this.decorate(o, this.result.from)), this.$cache.single.html(t), this.calcLabels(), this.labels.p_single_left < this.labels.p_min + 1 ? this.$cache.min[0].style.visibility = \"hidden\" : this.$cache.min[0].style.visibility = \"visible\", this.labels.p_single_left + this.labels.p_single_fake > 100 - this.labels.p_max - 1 ? this.$cache.max[0].style.visibility = \"hidden\" : this.$cache.max[0].style.visibility = \"visible\"; else { s = h ? (this.options.decorate_both ? (t = this.decorate(r[this.result.from]), t += this.options.values_separator, t += this.decorate(r[this.result.to])) : t = this.decorate(r[this.result.from] + this.options.values_separator + r[this.result.to]), i = this.decorate(r[this.result.from]), this.decorate(r[this.result.to])) : (o = this._prettify(this.result.from), e = this._prettify(this.result.to), this.options.decorate_both ? (t = this.decorate(o, this.result.from), t += this.options.values_separator, t += this.decorate(e, this.result.to)) : t = this.decorate(o + this.options.values_separator + e, this.result.to), i = this.decorate(o, this.result.from), this.decorate(e, this.result.to)), this.$cache.single.html(t), this.$cache.from.html(i), this.$cache.to.html(s), this.calcLabels(); var n = Math.min(this.labels.p_single_left, this.labels.p_from_left), a = this.labels.p_single_left + this.labels.p_single_fake, c = this.labels.p_to_left + this.labels.p_to_fake, l = Math.max(a, c); this.labels.p_from_left + this.labels.p_from_fake >= this.labels.p_to_left ? (this.$cache.from[0].style.visibility = \"hidden\", this.$cache.to[0].style.visibility = \"hidden\", this.$cache.single[0].style.visibility = \"visible\", l = this.result.from === this.result.to ? (\"from\" === this.target ? this.$cache.from[0].style.visibility = \"visible\" : \"to\" === this.target ? this.$cache.to[0].style.visibility = \"visible\" : this.target || (this.$cache.from[0].style.visibility = \"visible\"), this.$cache.single[0].style.visibility = \"hidden\", c) : (this.$cache.from[0].style.visibility = \"hidden\", this.$cache.to[0].style.visibility = \"hidden\", this.$cache.single[0].style.visibility = \"visible\", Math.max(a, c))) : (this.$cache.from[0].style.visibility = \"visible\", this.$cache.to[0].style.visibility = \"visible\", this.$cache.single[0].style.visibility = \"hidden\"), n < this.labels.p_min + 1 ? this.$cache.min[0].style.visibility = \"hidden\" : this.$cache.min[0].style.visibility = \"visible\", l > 100 - this.labels.p_max - 1 ? this.$cache.max[0].style.visibility = \"hidden\" : this.$cache.max[0].style.visibility = \"visible\" } } }, drawShadow: function () { var t, i, s, o, e = this.options, h = this.$cache, r = \"number\" == typeof e.from_min && !isNaN(e.from_min), n = \"number\" == typeof e.from_max && !isNaN(e.from_max), a = \"number\" == typeof e.to_min && !isNaN(e.to_min), c = \"number\" == typeof e.to_max && !isNaN(e.to_max); \"single\" === e.type ? e.from_shadow && (r || n) ? (t = this.convertToPercent(r ? e.from_min : e.min), i = this.convertToPercent(n ? e.from_max : e.max) - t, t = this.toFixed(t - this.coords.p_handle / 100 * t), i = this.toFixed(i - this.coords.p_handle / 100 * i), t += this.coords.p_handle / 2, h.shad_single[0].style.display = \"block\", h.shad_single[0].style.left = t + \"%\", h.shad_single[0].style.width = i + \"%\") : h.shad_single[0].style.display = \"none\" : (e.from_shadow && (r || n) ? (t = this.convertToPercent(r ? e.from_min : e.min), i = this.convertToPercent(n ? e.from_max : e.max) - t, t = this.toFixed(t - this.coords.p_handle / 100 * t), i = this.toFixed(i - this.coords.p_handle / 100 * i), t += this.coords.p_handle / 2, h.shad_from[0].style.display = \"block\", h.shad_from[0].style.left = t + \"%\", h.shad_from[0].style.width = i + \"%\") : h.shad_from[0].style.display = \"none\", e.to_shadow && (a || c) ? (s = this.convertToPercent(a ? e.to_min : e.min), o = this.convertToPercent(c ? e.to_max : e.max) - s, s = this.toFixed(s - this.coords.p_handle / 100 * s), o = this.toFixed(o - this.coords.p_handle / 100 * o), s += this.coords.p_handle / 2, h.shad_to[0].style.display = \"block\", h.shad_to[0].style.left = s + \"%\", h.shad_to[0].style.width = o + \"%\") : h.shad_to[0].style.display = \"none\") }, writeToInput: function () { \"single\" === this.options.type ? (this.options.values.length ? this.$cache.input.prop(\"value\", this.result.from_value) : this.$cache.input.prop(\"value\", this.result.from), this.$cache.input.data(\"from\", this.result.from)) : (this.options.values.length ? this.$cache.input.prop(\"value\", this.result.from_value + this.options.input_values_separator + this.result.to_value) : this.$cache.input.prop(\"value\", this.result.from + this.options.input_values_separator + this.result.to), this.$cache.input.data(\"from\", this.result.from), this.$cache.input.data(\"to\", this.result.to)) }, callOnStart: function () { this.writeToInput(), this.options.onStart && \"function\" == typeof this.options.onStart && (this.options.scope ? this.options.onStart.call(this.options.scope, this.result) : this.options.onStart(this.result)) }, callOnChange: function () { this.writeToInput(), this.options.onChange && \"function\" == typeof this.options.onChange && (this.options.scope ? this.options.onChange.call(this.options.scope, this.result) : this.options.onChange(this.result)) }, callOnFinish: function () { this.writeToInput(), this.options.onFinish && \"function\" == typeof this.options.onFinish && (this.options.scope ? this.options.onFinish.call(this.options.scope, this.result) : this.options.onFinish(this.result)) }, callOnUpdate: function () { this.writeToInput(), this.options.onUpdate && \"function\" == typeof this.options.onUpdate && (this.options.scope ? this.options.onUpdate.call(this.options.scope, this.result) : this.options.onUpdate(this.result)) }, toggleInput: function () { this.$cache.input.toggleClass(\"irs-hidden-input\"), this.has_tab_index ? this.$cache.input.prop(\"tabindex\", -1) : this.$cache.input.removeProp(\"tabindex\"), this.has_tab_index = !this.has_tab_index }, convertToPercent: function (t, i) { var s, o = this.options.max - this.options.min, e = o / 100; return o ? (s = (i ? t : t - this.options.min) / e, this.toFixed(s)) : (this.no_diapason = !0, 0) }, convertToValue: function (t) { var i, s, o = this.options.min, e = this.options.max, h = o.toString().split(\".\")[1], r = e.toString().split(\".\")[1], n = 0, a = 0; if (0 === t) return this.options.min; if (100 === t) return this.options.max; h && (n = i = h.length), r && (n = s = r.length), i && s && (n = s <= i ? i : s), o < 0 && (o = +(o + (a = Math.abs(o))).toFixed(n), e = +(e + a).toFixed(n)); var c, l = (e - o) / 100 * t + o, _ = this.options.step.toString().split(\".\")[1]; return l = _ ? +l.toFixed(_.length) : (l /= this.options.step, +(l *= this.options.step).toFixed(0)), a && (l -= a), (c = _ ? +l.toFixed(_.length) : this.toFixed(l)) < this.options.min ? c = this.options.min : c > this.options.max && (c = this.options.max), c }, calcWithStep: function (t) { var i = Math.round(t / this.coords.p_step) * this.coords.p_step; return 100 < i && (i = 100), 100 === t && (i = 100), this.toFixed(i) }, checkMinInterval: function (t, i, s) { var o, e, h = this.options; return h.min_interval ? (o = this.convertToValue(t), e = this.convertToValue(i), \"from\" === s ? e - o < h.min_interval && (o = e - h.min_interval) : o - e < h.min_interval && (o = e + h.min_interval), this.convertToPercent(o)) : t }, checkMaxInterval: function (t, i, s) { var o, e, h = this.options; return h.max_interval ? (o = this.convertToValue(t), e = this.convertToValue(i), \"from\" === s ? e - o > h.max_interval && (o = e - h.max_interval) : o - e > h.max_interval && (o = e + h.max_interval), this.convertToPercent(o)) : t }, checkDiapason: function (t, i, s) { var o = this.convertToValue(t), e = this.options; return \"number\" != typeof i && (i = e.min), \"number\" != typeof s && (s = e.max), o < i && (o = i), s < o && (o = s), this.convertToPercent(o) }, toFixed: function (t) { return +(t = t.toFixed(20)) }, _prettify: function (t) { return this.options.prettify_enabled ? this.options.prettify && \"function\" == typeof this.options.prettify ? this.options.prettify(t) : this.prettify(t) : t }, prettify: function (t) { return t.toString().replace(/(\\d{1,3}(?=(?:\\d\\d\\d)+(?!\\d)))/g, \"$1\" + this.options.prettify_separator) }, checkEdges: function (t, i) { return this.options.force_edges && (t < 0 ? t = 0 : 100 - i < t && (t = 100 - i)), this.toFixed(t) }, validate: function () { var t, i, s = this.options, o = this.result, e = s.values, h = e.length; if (\"string\" == typeof s.min && (s.min = +s.min), \"string\" == typeof s.max && (s.max = +s.max), \"string\" == typeof s.from && (s.from = +s.from), \"string\" == typeof s.to && (s.to = +s.to), \"string\" == typeof s.step && (s.step = +s.step), \"string\" == typeof s.from_min && (s.from_min = +s.from_min), \"string\" == typeof s.from_max && (s.from_max = +s.from_max), \"string\" == typeof s.to_min && (s.to_min = +s.to_min), \"string\" == typeof s.to_max && (s.to_max = +s.to_max), \"string\" == typeof s.grid_num && (s.grid_num = +s.grid_num), s.max < s.min && (s.max = s.min), h) for (s.p_values = [], s.min = 0, s.max = h - 1, s.step = 1, s.grid_num = s.max, s.grid_snap = !0, i = 0; i < h; i++) t = +e[i], t = isNaN(t) ? e[i] : (e[i] = t, this._prettify(t)), s.p_values.push(t); (\"number\" != typeof s.from || isNaN(s.from)) && (s.from = s.min), (\"number\" != typeof s.to || isNaN(s.to)) && (s.to = s.max), \"single\" === s.type ? (s.from < s.min && (s.from = s.min), s.from > s.max && (s.from = s.max)) : (s.from < s.min && (s.from = s.min), s.from > s.max && (s.from = s.max), s.to < s.min && (s.to = s.min), s.to > s.max && (s.to = s.max), this.update_check.from && (this.update_check.from !== s.from && s.from > s.to && (s.from = s.to), this.update_check.to !== s.to && s.to < s.from && (s.to = s.from)), s.from > s.to && (s.from = s.to), s.to < s.from && (s.to = s.from)), (\"number\" != typeof s.step || isNaN(s.step) || !s.step || s.step < 0) && (s.step = 1), \"number\" == typeof s.from_min && s.from < s.from_min && (s.from = s.from_min), \"number\" == typeof s.from_max && s.from > s.from_max && (s.from = s.from_max), \"number\" == typeof s.to_min && s.to < s.to_min && (s.to = s.to_min), \"number\" == typeof s.to_max && s.from > s.to_max && (s.to = s.to_max), o && (o.min !== s.min && (o.min = s.min), o.max !== s.max && (o.max = s.max), (o.from < o.min || o.from > o.max) && (o.from = s.from), (o.to < o.min || o.to > o.max) && (o.to = s.to)), (\"number\" != typeof s.min_interval || isNaN(s.min_interval) || !s.min_interval || s.min_interval < 0) && (s.min_interval = 0), (\"number\" != typeof s.max_interval || isNaN(s.max_interval) || !s.max_interval || s.max_interval < 0) && (s.max_interval = 0), s.min_interval && s.min_interval > s.max - s.min && (s.min_interval = s.max - s.min), s.max_interval && s.max_interval > s.max - s.min && (s.max_interval = s.max - s.min) }, decorate: function (t, i) { var s = \"\", o = this.options; return o.prefix && (s += o.prefix), s += t, o.max_postfix && (o.values.length && t === o.p_values[o.max] ? (s += o.max_postfix, o.postfix && (s += \" \")) : i === o.max && (s += o.max_postfix, o.postfix && (s += \" \"))), o.postfix && (s += o.postfix), s }, updateFrom: function () { this.result.from = this.options.from, this.result.from_percent = this.convertToPercent(this.result.from), this.result.from_pretty = this._prettify(this.result.from), this.options.values && (this.result.from_value = this.options.values[this.result.from]) }, updateTo: function () { this.result.to = this.options.to, this.result.to_percent = this.convertToPercent(this.result.to), this.result.to_pretty = this._prettify(this.result.to), this.options.values && (this.result.to_value = this.options.values[this.result.to]) }, updateResult: function () { this.result.min = this.options.min, this.result.max = this.options.max, this.updateFrom(), this.updateTo() }, appendGrid: function () { if (this.options.grid) { var t, i, s, o, e, h, r = this.options, n = r.max - r.min, a = r.grid_num, c = 0, l = 4, _ = \"\"; for (this.calcGridMargin(), r.grid_snap && (a = n / r.step), 50 < a && (a = 50), s = this.toFixed(100 / a), 4 < a && (l = 3), 7 < a && (l = 2), 14 < a && (l = 1), 28 < a && (l = 0), t = 0; t < a + 1; t++) { for (o = l, 100 < (c = this.toFixed(s * t)) && (c = 100), e = ((this.coords.big[t] = c) - s * (t - 1)) / (o + 1), i = 1; i <= o && 0 !== c; i++) _ += ''; _ += '', h = this.convertToValue(c), _ += '' + (h = r.values.length ? r.p_values[h] : this._prettify(h)) + \"\" } this.coords.big_num = Math.ceil(a + 1), this.$cache.cont.addClass(\"irs-with-grid\"), this.$cache.grid.html(_), this.cacheGridLabels() } }, cacheGridLabels: function () { var t, i, s = this.coords.big_num; for (i = 0; i < s; i++) t = this.$cache.grid.find(\".js-grid-text-\" + i), this.$cache.grid_labels.push(t); this.calcGridLabels() }, calcGridLabels: function () { var t, i, s = [], o = [], e = this.coords.big_num; for (t = 0; t < e; t++) this.coords.big_w[t] = this.$cache.grid_labels[t].outerWidth(!1), this.coords.big_p[t] = this.toFixed(this.coords.big_w[t] / this.coords.w_rs * 100), this.coords.big_x[t] = this.toFixed(this.coords.big_p[t] / 2), s[t] = this.toFixed(this.coords.big[t] - this.coords.big_x[t]), o[t] = this.toFixed(s[t] + this.coords.big_p[t]); for (this.options.force_edges && (s[0] < -this.coords.grid_gap && (s[0] = -this.coords.grid_gap, o[0] = this.toFixed(s[0] + this.coords.big_p[0]), this.coords.big_x[0] = this.coords.grid_gap), o[e - 1] > 100 + this.coords.grid_gap && (o[e - 1] = 100 + this.coords.grid_gap, s[e - 1] = this.toFixed(o[e - 1] - this.coords.big_p[e - 1]), this.coords.big_x[e - 1] = this.toFixed(this.coords.big_p[e - 1] - this.coords.grid_gap))), this.calcGridCollision(2, s, o), this.calcGridCollision(4, s, o), t = 0; t < e; t++) i = this.$cache.grid_labels[t][0], this.coords.big_x[t] !== Number.POSITIVE_INFINITY && (i.style.marginLeft = -this.coords.big_x[t] + \"%\") }, calcGridCollision: function (t, i, s) { var o, e, h, r = this.coords.big_num; for (o = 0; o < r && !(r <= (e = o + t / 2)) ; o += t) h = this.$cache.grid_labels[e][0], s[o] <= i[e] ? h.style.visibility = \"visible\" : h.style.visibility = \"hidden\" }, calcGridMargin: function () { this.options.grid_margin && (this.coords.w_rs = this.$cache.rs.outerWidth(!1), this.coords.w_rs && (\"single\" === this.options.type ? this.coords.w_handle = this.$cache.s_single.outerWidth(!1) : this.coords.w_handle = this.$cache.s_from.outerWidth(!1), this.coords.p_handle = this.toFixed(this.coords.w_handle / this.coords.w_rs * 100), this.coords.grid_gap = this.toFixed(this.coords.p_handle / 2 - .1), this.$cache.grid[0].style.width = this.toFixed(100 - this.coords.p_handle) + \"%\", this.$cache.grid[0].style.left = this.coords.grid_gap + \"%\")) }, update: function (t) { this.input && (this.is_update = !0, this.options.from = this.result.from, this.options.to = this.result.to, this.update_check.from = this.result.from, this.update_check.to = this.result.to, this.options = a.extend(this.options, t), this.validate(), this.updateResult(t), this.toggleInput(), this.remove(), this.init(!0)) }, reset: function () { this.input && (this.updateResult(), this.update()) }, destroy: function () { this.input && (this.toggleInput(), this.$cache.input.prop(\"readonly\", !1), a.data(this.input, \"ionRangeSlider\", null), this.remove(), this.input = null, this.options = null) } }, a.fn.ionRangeSlider = function (t) { return this.each(function () { a.data(this, \"ionRangeSlider\") || a.data(this, \"ionRangeSlider\", new h(this, t, o++)) }) }, function () { for (var h = 0, t = [\"ms\", \"moz\", \"webkit\", \"o\"], i = 0; i < t.length && !l.requestAnimationFrame; ++i) l.requestAnimationFrame = l[t[i] + \"RequestAnimationFrame\"], l.cancelAnimationFrame = l[t[i] + \"CancelAnimationFrame\"] || l[t[i] + \"CancelRequestAnimationFrame\"]; l.requestAnimationFrame || (l.requestAnimationFrame = function (t, i) { var s = (new Date).getTime(), o = Math.max(0, 16 - (s - h)), e = l.setTimeout(function () { t(s + o) }, o); return h = s + o, e }), l.cancelAnimationFrame || (l.cancelAnimationFrame = function (t) { clearTimeout(t) }) }() });\n}.call(window));\n","/*** IMPORTS FROM imports-loader ***/\n\n(function() {\n(function defineMustache(global,factory){if(typeof exports===\"object\"&&exports&&typeof exports.nodeName!==\"string\"){factory(exports)}else if(typeof define===\"function\"&&define.amd){define([\"exports\"],factory)}else{global.Mustache={};factory(global.Mustache)}})(this,function mustacheFactory(mustache){var objectToString=Object.prototype.toString;var isArray=Array.isArray||function isArrayPolyfill(object){return objectToString.call(object)===\"[object Array]\"};function isFunction(object){return typeof object===\"function\"}function typeStr(obj){return isArray(obj)?\"array\":typeof obj}function escapeRegExp(string){return string.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g,\"\\\\$&\")}function hasProperty(obj,propName){return obj!=null&&typeof obj===\"object\"&&propName in obj}function primitiveHasOwnProperty(primitive,propName){return primitive!=null&&typeof primitive!==\"object\"&&primitive.hasOwnProperty&&primitive.hasOwnProperty(propName)}var regExpTest=RegExp.prototype.test;function testRegExp(re,string){return regExpTest.call(re,string)}var nonSpaceRe=/\\S/;function isWhitespace(string){return!testRegExp(nonSpaceRe,string)}var entityMap={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\",\"/\":\"/\",\"`\":\"`\",\"=\":\"=\"};function escapeHtml(string){return String(string).replace(/[&<>\"'`=\\/]/g,function fromEntityMap(s){return entityMap[s]})}var whiteRe=/\\s*/;var spaceRe=/\\s+/;var equalsRe=/\\s*=/;var curlyRe=/\\s*\\}/;var tagRe=/#|\\^|\\/|>|\\{|&|=|!/;function parseTemplate(template,tags){if(!template)return[];var lineHasNonSpace=false;var sections=[];var tokens=[];var spaces=[];var hasTag=false;var nonSpace=false;var indentation=\"\";var tagIndex=0;function stripSpace(){if(hasTag&&!nonSpace){while(spaces.length)delete tokens[spaces.pop()]}else{spaces=[]}hasTag=false;nonSpace=false}var openingTagRe,closingTagRe,closingCurlyRe;function compileTags(tagsToCompile){if(typeof tagsToCompile===\"string\")tagsToCompile=tagsToCompile.split(spaceRe,2);if(!isArray(tagsToCompile)||tagsToCompile.length!==2)throw new Error(\"Invalid tags: \"+tagsToCompile);openingTagRe=new RegExp(escapeRegExp(tagsToCompile[0])+\"\\\\s*\");closingTagRe=new RegExp(\"\\\\s*\"+escapeRegExp(tagsToCompile[1]));closingCurlyRe=new RegExp(\"\\\\s*\"+escapeRegExp(\"}\"+tagsToCompile[1]))}compileTags(tags||mustache.tags);var scanner=new Scanner(template);var start,type,value,chr,token,openSection;while(!scanner.eos()){start=scanner.pos;value=scanner.scanUntil(openingTagRe);if(value){for(var i=0,valueLength=value.length;i\"){token=[type,value,start,scanner.pos,indentation,tagIndex,lineHasNonSpace]}else{token=[type,value,start,scanner.pos]}tagIndex++;tokens.push(token);if(type===\"#\"||type===\"^\"){sections.push(token)}else if(type===\"/\"){openSection=sections.pop();if(!openSection)throw new Error('Unopened section \"'+value+'\" at '+start);if(openSection[1]!==value)throw new Error('Unclosed section \"'+openSection[1]+'\" at '+start)}else if(type===\"name\"||type===\"{\"||type===\"&\"){nonSpace=true}else if(type===\"=\"){compileTags(value)}}stripSpace();openSection=sections.pop();if(openSection)throw new Error('Unclosed section \"'+openSection[1]+'\" at '+scanner.pos);return nestTokens(squashTokens(tokens))}function squashTokens(tokens){var squashedTokens=[];var token,lastToken;for(var i=0,numTokens=tokens.length;i0?sections[sections.length-1][4]:nestedTokens;break;default:collector.push(token)}}return nestedTokens}function Scanner(string){this.string=string;this.tail=string;this.pos=0}Scanner.prototype.eos=function eos(){return this.tail===\"\"};Scanner.prototype.scan=function scan(re){var match=this.tail.match(re);if(!match||match.index!==0)return\"\";var string=match[0];this.tail=this.tail.substring(string.length);this.pos+=string.length;return string};Scanner.prototype.scanUntil=function scanUntil(re){var index=this.tail.search(re),match;switch(index){case-1:match=this.tail;this.tail=\"\";break;case 0:match=\"\";break;default:match=this.tail.substring(0,index);this.tail=this.tail.substring(index)}this.pos+=match.length;return match};function Context(view,parentContext){this.view=view;this.cache={\".\":this.view};this.parent=parentContext}Context.prototype.push=function push(view){return new Context(view,this)};Context.prototype.lookup=function lookup(name){var cache=this.cache;var value;if(cache.hasOwnProperty(name)){value=cache[name]}else{var context=this,intermediateValue,names,index,lookupHit=false;while(context){if(name.indexOf(\".\")>0){intermediateValue=context.view;names=name.split(\".\");index=0;while(intermediateValue!=null&&index\")value=this.renderPartial(token,context,partials,tags);else if(symbol===\"&\")value=this.unescapedValue(token,context);else if(symbol===\"name\")value=this.escapedValue(token,context);else if(symbol===\"text\")value=this.rawValue(token);if(value!==undefined)buffer+=value}return buffer};Writer.prototype.renderSection=function renderSection(token,context,partials,originalTemplate){var self=this;var buffer=\"\";var value=context.lookup(token[1]);function subRender(template){return self.render(template,context,partials)}if(!value)return;if(isArray(value)){for(var j=0,valueLength=value.length;j0||!lineHasNonSpace)){partialByNl[i]=filteredIndentation+partialByNl[i]}}return partialByNl.join(\"\\n\")};Writer.prototype.renderPartial=function renderPartial(token,context,partials,tags){if(!partials)return;var value=isFunction(partials)?partials(token[1]):partials[token[1]];if(value!=null){var lineHasNonSpace=token[6];var tagIndex=token[5];var indentation=token[4];var indentedValue=value;if(tagIndex==0&&indentation){indentedValue=this.indentPartial(value,indentation,lineHasNonSpace)}return this.renderTokens(this.parse(indentedValue,tags),context,partials,indentedValue)}};Writer.prototype.unescapedValue=function unescapedValue(token,context){var value=context.lookup(token[1]);if(value!=null)return value};Writer.prototype.escapedValue=function escapedValue(token,context){var value=context.lookup(token[1]);if(value!=null)return mustache.escape(value)};Writer.prototype.rawValue=function rawValue(token){return token[1]};mustache.name=\"mustache.js\";mustache.version=\"3.1.0\";mustache.tags=[\"{{\",\"}}\"];var defaultWriter=new Writer;mustache.clearCache=function clearCache(){return defaultWriter.clearCache()};mustache.parse=function parse(template,tags){return defaultWriter.parse(template,tags)};mustache.render=function render(template,view,partials,tags){if(typeof template!==\"string\"){throw new TypeError('Invalid template! Template should be a \"string\" '+'but \"'+typeStr(template)+'\" was given as the first '+\"argument for mustache#render(template, view, partials)\")}return defaultWriter.render(template,view,partials,tags)};mustache.to_html=function to_html(template,view,partials,send){var result=mustache.render(template,view,partials);if(isFunction(send)){send(result)}else{return result}};mustache.escape=escapeHtml;mustache.Scanner=Scanner;mustache.Context=Context;mustache.Writer=Writer;return mustache});\r\n\n}.call(window));\n","/*** IMPORTS FROM imports-loader ***/\n\n(function() {\n/*!\r\n * typeahead.js 0.10.2\r\n * https://github.com/twitter/typeahead.js\r\n * Copyright 2013-2014 Twitter, Inc. and other contributors; Licensed MIT\r\n */\r\n\r\n!function(a){var b={isMsie:function(){return/(msie|trident)/i.test(navigator.userAgent)?navigator.userAgent.match(/(msie |rv:)(\\d+(.\\d+)?)/i)[2]:!1},isBlankString:function(a){return!a||/^\\s*$/.test(a)},escapeRegExChars:function(a){return a.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\"\\\\$&\")},isString:function(a){return\"string\"==typeof a},isNumber:function(a){return\"number\"==typeof a},isArray:a.isArray,isFunction:a.isFunction,isObject:a.isPlainObject,isUndefined:function(a){return\"undefined\"==typeof a},bind:a.proxy,each:function(b,c){function d(a,b){return c(b,a)}a.each(b,d)},map:a.map,filter:a.grep,every:function(b,c){var d=!0;return b?(a.each(b,function(a,e){return(d=c.call(null,e,a,b))?void 0:!1}),!!d):d},some:function(b,c){var d=!1;return b?(a.each(b,function(a,e){return(d=c.call(null,e,a,b))?!1:void 0}),!!d):d},mixin:a.extend,getUniqueId:function(){var a=0;return function(){return a++}}(),templatify:function(b){function c(){return String(b)}return a.isFunction(b)?b:c},defer:function(a){setTimeout(a,0)},debounce:function(a,b,c){var d,e;return function(){var f,g,h=this,i=arguments;return f=function(){d=null,c||(e=a.apply(h,i))},g=c&&!d,clearTimeout(d),d=setTimeout(f,b),g&&(e=a.apply(h,i)),e}},throttle:function(a,b){var c,d,e,f,g,h;return g=0,h=function(){g=new Date,e=null,f=a.apply(c,d)},function(){var i=new Date,j=b-(i-g);return c=this,d=arguments,0>=j?(clearTimeout(e),e=null,g=i,f=a.apply(c,d)):e||(e=setTimeout(h,j)),f}},noop:function(){}},c=\"0.10.2\",d=function(){function a(a){return a.split(/\\s+/)}function b(a){return a.split(/\\W+/)}function c(a){return function(b){return function(c){return a(c[b])}}}return{nonword:b,whitespace:a,obj:{nonword:c(b),whitespace:c(a)}}}(),e=function(){function a(a){this.maxSize=a||100,this.size=0,this.hash={},this.list=new c}function c(){this.head=this.tail=null}function d(a,b){this.key=a,this.val=b,this.prev=this.next=null}return b.mixin(a.prototype,{set:function(a,b){var c,e=this.list.tail;this.size>=this.maxSize&&(this.list.remove(e),delete this.hash[e.key]),(c=this.hash[a])?(c.val=b,this.list.moveToFront(c)):(c=new d(a,b),this.list.add(c),this.hash[a]=c,this.size++)},get:function(a){var b=this.hash[a];return b?(this.list.moveToFront(b),b.val):void 0}}),b.mixin(c.prototype,{add:function(a){this.head&&(a.next=this.head,this.head.prev=a),this.head=a,this.tail=this.tail||a},remove:function(a){a.prev?a.prev.next=a.next:this.head=a.next,a.next?a.next.prev=a.prev:this.tail=a.prev},moveToFront:function(a){this.remove(a),this.add(a)}}),a}(),f=function(){function a(a){this.prefix=[\"__\",a,\"__\"].join(\"\"),this.ttlKey=\"__ttl__\",this.keyMatcher=new RegExp(\"^\"+this.prefix)}function c(){return(new Date).getTime()}function d(a){return JSON.stringify(b.isUndefined(a)?null:a)}function e(a){return JSON.parse(a)}var f,g;try{f=window.localStorage,f.setItem(\"~~~\",\"!\"),f.removeItem(\"~~~\")}catch(h){f=null}return g=f&&window.JSON?{_prefix:function(a){return this.prefix+a},_ttlKey:function(a){return this._prefix(a)+this.ttlKey},get:function(a){return this.isExpired(a)&&this.remove(a),e(f.getItem(this._prefix(a)))},set:function(a,e,g){return b.isNumber(g)?f.setItem(this._ttlKey(a),d(c()+g)):f.removeItem(this._ttlKey(a)),f.setItem(this._prefix(a),d(e))},remove:function(a){return f.removeItem(this._ttlKey(a)),f.removeItem(this._prefix(a)),this},clear:function(){var a,b,c=[],d=f.length;for(a=0;d>a;a++)(b=f.key(a)).match(this.keyMatcher)&&c.push(b.replace(this.keyMatcher,\"\"));for(a=c.length;a--;)this.remove(c[a]);return this},isExpired:function(a){var d=e(f.getItem(this._ttlKey(a)));return b.isNumber(d)&&c()>d?!0:!1}}:{get:b.noop,set:b.noop,remove:b.noop,clear:b.noop,isExpired:b.noop},b.mixin(a.prototype,g),a}(),g=function(){function c(b){b=b||{},this._send=b.transport?d(b.transport):a.ajax,this._get=b.rateLimiter?b.rateLimiter(this._get):this._get}function d(c){return function(d,e){function f(a){b.defer(function(){h.resolve(a)})}function g(a){b.defer(function(){h.reject(a)})}var h=a.Deferred();return c(d,e,f,g),h}}var f=0,g={},h=6,i=new e(10);return c.setMaxPendingRequests=function(a){h=a},c.resetCache=function(){i=new e(10)},b.mixin(c.prototype,{_get:function(a,b,c){function d(b){c&&c(null,b),i.set(a,b)}function e(){c&&c(!0)}function j(){f--,delete g[a],l.onDeckRequestArgs&&(l._get.apply(l,l.onDeckRequestArgs),l.onDeckRequestArgs=null)}var k,l=this;(k=g[a])?k.done(d).fail(e):h>f?(f++,g[a]=this._send(a,b).done(d).fail(e).always(j)):this.onDeckRequestArgs=[].slice.call(arguments,0)},get:function(a,c,d){var e;return b.isFunction(c)&&(d=c,c={}),(e=i.get(a))?b.defer(function(){d&&d(null,e)}):this._get(a,c,d),!!e}}),c}(),h=function(){function c(b){b=b||{},b.datumTokenizer&&b.queryTokenizer||a.error(\"datumTokenizer and queryTokenizer are both required\"),this.datumTokenizer=b.datumTokenizer,this.queryTokenizer=b.queryTokenizer,this.reset()}function d(a){return a=b.filter(a,function(a){return!!a}),a=b.map(a,function(a){return a.toLowerCase()})}function e(){return{ids:[],children:{}}}function f(a){for(var b={},c=[],d=0;db[e]?e++:(f.push(a[d]),d++,e++);return f}return b.mixin(c.prototype,{bootstrap:function(a){this.datums=a.datums,this.trie=a.trie},add:function(a){var c=this;a=b.isArray(a)?a:[a],b.each(a,function(a){var f,g;f=c.datums.push(a)-1,g=d(c.datumTokenizer(a)),b.each(g,function(a){var b,d,g;for(b=c.trie,d=a.split(\"\");g=d.shift();)b=b.children[g]||(b.children[g]=e()),b.ids.push(f)})})},get:function(a){var c,e,h=this;return c=d(this.queryTokenizer(a)),b.each(c,function(a){var b,c,d,f;if(e&&0===e.length)return!1;for(b=h.trie,c=a.split(\"\");b&&(d=c.shift());)b=b.children[d];return b&&0===c.length?(f=b.ids.slice(0),void(e=e?g(e,f):f)):(e=[],!1)}),e?b.map(f(e),function(a){return h.datums[a]}):[]},reset:function(){this.datums=[],this.trie=e()},serialize:function(){return{datums:this.datums,trie:this.trie}}}),c}(),i=function(){function d(a){return a.local||null}function e(d){var e,f;return f={url:null,thumbprint:\"\",ttl:864e5,filter:null,ajax:{}},(e=d.prefetch||null)&&(e=b.isString(e)?{url:e}:e,e=b.mixin(f,e),e.thumbprint=c+e.thumbprint,e.ajax.type=e.ajax.type||\"GET\",e.ajax.dataType=e.ajax.dataType||\"json\",!e.url&&a.error(\"prefetch requires url to be set\")),e}function f(c){function d(a){return function(c){return b.debounce(c,a)}}function e(a){return function(c){return b.throttle(c,a)}}var f,g;return g={url:null,wildcard:\"%QUERY\",replace:null,rateLimitBy:\"debounce\",rateLimitWait:300,send:null,filter:null,ajax:{}},(f=c.remote||null)&&(f=b.isString(f)?{url:f}:f,f=b.mixin(g,f),f.rateLimiter=/^throttle$/i.test(f.rateLimitBy)?e(f.rateLimitWait):d(f.rateLimitWait),f.ajax.type=f.ajax.type||\"GET\",f.ajax.dataType=f.ajax.dataType||\"json\",delete f.rateLimitBy,delete f.rateLimitWait,!f.url&&a.error(\"remote requires url to be set\")),f}return{local:d,prefetch:e,remote:f}}();!function(c){function e(b){b&&(b.local||b.prefetch||b.remote)||a.error(\"one of local, prefetch, or remote is required\"),this.limit=b.limit||5,this.sorter=j(b.sorter),this.dupDetector=b.dupDetector||k,this.local=i.local(b),this.prefetch=i.prefetch(b),this.remote=i.remote(b),this.cacheKey=this.prefetch?this.prefetch.cacheKey||this.prefetch.url:null,this.index=new h({datumTokenizer:b.datumTokenizer,queryTokenizer:b.queryTokenizer}),this.storage=this.cacheKey?new f(this.cacheKey):null}function j(a){function c(b){return b.sort(a)}function d(a){return a}return b.isFunction(a)?c:d}function k(){return!1}var l,m;return l=c.Bloodhound,m={data:\"data\",protocol:\"protocol\",thumbprint:\"thumbprint\"},c.Bloodhound=e,e.noConflict=function(){return c.Bloodhound=l,e},e.tokenizers=d,b.mixin(e.prototype,{_loadPrefetch:function(b){function c(a){f.clear(),f.add(b.filter?b.filter(a):a),f._saveToStorage(f.index.serialize(),b.thumbprint,b.ttl)}var d,e,f=this;return(d=this._readFromStorage(b.thumbprint))?(this.index.bootstrap(d),e=a.Deferred().resolve()):e=a.ajax(b.url,b.ajax).done(c),e},_getFromRemote:function(a,b){function c(a,c){b(a?[]:f.remote.filter?f.remote.filter(c):c)}var d,e,f=this;return a=a||\"\",e=encodeURIComponent(a),d=this.remote.replace?this.remote.replace(this.remote.url,a):this.remote.url.replace(this.remote.wildcard,e),this.transport.get(d,this.remote.ajax,c)},_saveToStorage:function(a,b,c){this.storage&&(this.storage.set(m.data,a,c),this.storage.set(m.protocol,location.protocol,c),this.storage.set(m.thumbprint,b,c))},_readFromStorage:function(a){var b,c={};return this.storage&&(c.data=this.storage.get(m.data),c.protocol=this.storage.get(m.protocol),c.thumbprint=this.storage.get(m.thumbprint)),b=c.thumbprint!==a||c.protocol!==location.protocol,c.data&&!b?c.data:null},_initialize:function(){function c(){e.add(b.isFunction(f)?f():f)}var d,e=this,f=this.local;return d=this.prefetch?this._loadPrefetch(this.prefetch):a.Deferred().resolve(),f&&d.done(c),this.transport=this.remote?new g(this.remote):null,this.initPromise=d.promise()},initialize:function(a){return!this.initPromise||a?this._initialize():this.initPromise},add:function(a){this.index.add(a)},get:function(a,c){function d(a){var d=f.slice(0);b.each(a,function(a){var c;return c=b.some(d,function(b){return e.dupDetector(a,b)}),!c&&d.push(a),d.length0||!this.transport)&&c&&c(f)},clear:function(){this.index.reset()},clearPrefetchCache:function(){this.storage&&this.storage.clear()},clearRemoteCache:function(){this.transport&&g.resetCache()},ttAdapter:function(){return b.bind(this.get,this)}}),e}(this);var j={wrapper:'',dropdown:'',dataset:'
',suggestions:'',suggestion:'
'},k={wrapper:{position:\"relative\",display:\"inline-block\"},hint:{position:\"absolute\",top:\"0\",left:\"0\",borderColor:\"transparent\",boxShadow:\"none\"},input:{position:\"relative\",verticalAlign:\"top\",backgroundColor:\"transparent\"},inputWithNoHint:{position:\"relative\",verticalAlign:\"top\"},dropdown:{position:\"absolute\",top:\"100%\",left:\"0\",zIndex:\"100\",display:\"none\"},suggestions:{display:\"block\"},suggestion:{whiteSpace:\"nowrap\",cursor:\"pointer\"},suggestionChild:{whiteSpace:\"normal\"},ltr:{left:\"0\",right:\"auto\"},rtl:{left:\"auto\",right:\" 0\"}};b.isMsie()&&b.mixin(k.input,{backgroundImage:\"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)\"}),b.isMsie()&&b.isMsie()<=7&&b.mixin(k.input,{marginTop:\"-1px\"});var l=function(){function c(b){b&&b.el||a.error(\"EventBus initialized without el\"),this.$el=a(b.el)}var d=\"typeahead:\";return b.mixin(c.prototype,{trigger:function(a){var b=[].slice.call(arguments,1);this.$el.trigger(d+a,b)}}),c}(),m=function(){function a(a,b,c,d){var e;if(!c)return this;for(b=b.split(i),c=d?h(c,d):c,this._callbacks=this._callbacks||{};e=b.shift();)this._callbacks[e]=this._callbacks[e]||{sync:[],async:[]},this._callbacks[e][a].push(c);return this}function b(b,c,d){return a.call(this,\"async\",b,c,d)}function c(b,c,d){return a.call(this,\"sync\",b,c,d)}function d(a){var b;if(!this._callbacks)return this;for(a=a.split(i);b=a.shift();)delete this._callbacks[b];return this}function e(a){var b,c,d,e,g;if(!this._callbacks)return this;for(a=a.split(i),d=[].slice.call(arguments,1);(b=a.shift())&&(c=this._callbacks[b]);)e=f(c.sync,this,[b].concat(d)),g=f(c.async,this,[b].concat(d)),e()&&j(g);return this}function f(a,b,c){function d(){for(var d,e=0;!d&&e').css({position:\"absolute\",visibility:\"hidden\",whiteSpace:\"pre\",fontFamily:b.css(\"font-family\"),fontSize:b.css(\"font-size\"),fontStyle:b.css(\"font-style\"),fontVariant:b.css(\"font-variant\"),fontWeight:b.css(\"font-weight\"),wordSpacing:b.css(\"word-spacing\"),letterSpacing:b.css(\"letter-spacing\"),textIndent:b.css(\"text-indent\"),textRendering:b.css(\"text-rendering\"),textTransform:b.css(\"text-transform\")}).insertAfter(b)}function e(a,b){return c.normalizeQuery(a)===c.normalizeQuery(b)}function f(a){return a.altKey||a.ctrlKey||a.metaKey||a.shiftKey}var g;return g={9:\"tab\",27:\"esc\",37:\"left\",39:\"right\",13:\"enter\",38:\"up\",40:\"down\"},c.normalizeQuery=function(a){return(a||\"\").replace(/^\\s*/g,\"\").replace(/\\s{2,}/g,\" \")},b.mixin(c.prototype,m,{_onBlur:function(){this.resetInputValue(),this.trigger(\"blurred\")},_onFocus:function(){this.trigger(\"focused\")},_onKeydown:function(a){var b=g[a.which||a.keyCode];this._managePreventDefault(b,a),b&&this._shouldTrigger(b,a)&&this.trigger(b+\"Keyed\",a)},_onInput:function(){this._checkInputValue()},_managePreventDefault:function(a,b){var c,d,e;switch(a){case\"tab\":d=this.getHint(),e=this.getInputValue(),c=d&&d!==e&&!f(b);break;case\"up\":case\"down\":c=!f(b);break;default:c=!1}c&&b.preventDefault()},_shouldTrigger:function(a,b){var c;switch(a){case\"tab\":c=!f(b);break;default:c=!0}return c},_checkInputValue:function(){var a,b,c;a=this.getInputValue(),b=e(a,this.query),c=b?this.query.length!==a.length:!1,b?c&&this.trigger(\"whitespaceChanged\",this.query):this.trigger(\"queryChanged\",this.query=a)},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(a){this.query=a},getInputValue:function(){return this.$input.val()},setInputValue:function(a,b){this.$input.val(a),b?this.clearHint():this._checkInputValue()},resetInputValue:function(){this.setInputValue(this.query,!0)},getHint:function(){return this.$hint.val()},setHint:function(a){this.$hint.val(a)},clearHint:function(){this.setHint(\"\")},clearHintIfInvalid:function(){var a,b,c,d;a=this.getInputValue(),b=this.getHint(),c=a!==b&&0===b.indexOf(a),d=\"\"!==a&&c&&!this.hasOverflow(),!d&&this.clearHint()},getLanguageDirection:function(){return(this.$input.css(\"direction\")||\"ltr\").toLowerCase()},hasOverflow:function(){var a=this.$input.width()-2;return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>=a},isCursorAtEnd:function(){var a,c,d;return a=this.$input.val().length,c=this.$input[0].selectionStart,b.isNumber(c)?c===a:document.selection?(d=document.selection.createRange(),d.moveStart(\"character\",-a),a===d.text.length):!0},destroy:function(){this.$hint.off(\".tt\"),this.$input.off(\".tt\"),this.$hint=this.$input=this.$overflowHelper=null}}),c}(),p=function(){function c(c){c=c||{},c.templates=c.templates||{},c.source||a.error(\"missing source\"),c.name&&!f(c.name)&&a.error(\"invalid dataset name: \"+c.name),this.query=null,this.highlight=!!c.highlight,this.name=c.name||b.getUniqueId(),this.source=c.source,this.displayFn=d(c.display||c.displayKey),this.templates=e(c.templates,this.displayFn),this.$el=a(j.dataset.replace(\"%CLASS%\",this.name))}function d(a){function c(b){return b[a]}return a=a||\"value\",b.isFunction(a)?a:c}function e(a,c){function d(a){return\"

\"+c(a)+\"

\"}return{empty:a.empty&&b.templatify(a.empty),header:a.header&&b.templatify(a.header),footer:a.footer&&b.templatify(a.footer),suggestion:a.suggestion||d}}function f(a){return/^[_a-zA-Z0-9-]+$/.test(a)}var g=\"ttDataset\",h=\"ttValue\",i=\"ttDatum\";return c.extractDatasetName=function(b){return a(b).data(g)},c.extractValue=function(b){return a(b).data(h)},c.extractDatum=function(b){return a(b).data(i)},b.mixin(c.prototype,m,{_render:function(c,d){function e(){return p.templates.empty({query:c,isEmpty:!0})}function f(){function e(b){var c;return c=a(j.suggestion).append(p.templates.suggestion(b)).data(g,p.name).data(h,p.displayFn(b)).data(i,b),c.children().each(function(){a(this).css(k.suggestionChild)}),c}var f,l;return f=a(j.suggestions).css(k.suggestions),l=b.map(d,e),f.append.apply(f,l),p.highlight&&n({node:f[0],pattern:c}),f}function l(){return p.templates.header({query:c,isEmpty:!o})}function m(){return p.templates.footer({query:c,isEmpty:!o})}if(this.$el){var o,p=this;this.$el.empty(),o=d&&d.length,!o&&this.templates.empty?this.$el.html(e()).prepend(p.templates.header?l():null).append(p.templates.footer?m():null):o&&this.$el.html(f()).prepend(p.templates.header?l():null).append(p.templates.footer?m():null),this.trigger(\"rendered\")}},getRoot:function(){return this.$el},update:function(a){function b(b){c.canceled||a!==c.query||c._render(a,b)}var c=this;this.query=a,this.canceled=!1,this.source(a,b)},cancel:function(){this.canceled=!0},clear:function(){this.cancel(),this.$el.empty(),this.trigger(\"rendered\")},isEmpty:function(){return this.$el.is(\":empty\")},destroy:function(){this.$el=null}}),c}(),q=function(){function c(c){var e,f,g,h=this;c=c||{},c.menu||a.error(\"menu is required\"),this.isOpen=!1,this.isEmpty=!0,this.datasets=b.map(c.datasets,d),e=b.bind(this._onSuggestionClick,this),f=b.bind(this._onSuggestionMouseEnter,this),g=b.bind(this._onSuggestionMouseLeave,this),this.$menu=a(c.menu).on(\"click.tt\",\".tt-suggestion\",e).on(\"mouseenter.tt\",\".tt-suggestion\",f).on(\"mouseleave.tt\",\".tt-suggestion\",g),b.each(this.datasets,function(a){h.$menu.append(a.getRoot()),a.onSync(\"rendered\",h._onRendered,h)})}function d(a){return new p(a)}return b.mixin(c.prototype,m,{_onSuggestionClick:function(b){this.trigger(\"suggestionClicked\",a(b.currentTarget))},_onSuggestionMouseEnter:function(b){this._removeCursor(),this._setCursor(a(b.currentTarget),!0)},_onSuggestionMouseLeave:function(){this._removeCursor()},_onRendered:function(){function a(a){return a.isEmpty()}this.isEmpty=b.every(this.datasets,a),this.isEmpty?this._hide():this.isOpen&&this._show(),this.trigger(\"datasetRendered\")},_hide:function(){this.$menu.hide()},_show:function(){this.$menu.css(\"display\",\"block\")},_getSuggestions:function(){return this.$menu.find(\".tt-suggestion\")},_getCursor:function(){return this.$menu.find(\".tt-cursor\").first()},_setCursor:function(a,b){a.first().addClass(\"tt-cursor\"),!b&&this.trigger(\"cursorMoved\")},_removeCursor:function(){this._getCursor().removeClass(\"tt-cursor\")},_moveCursor:function(a){var b,c,d,e;if(this.isOpen){if(c=this._getCursor(),b=this._getSuggestions(),this._removeCursor(),d=b.index(c)+a,d=(d+1)%(b.length+1)-1,-1===d)return void this.trigger(\"cursorRemoved\");-1>d&&(d=b.length-1),this._setCursor(e=b.eq(d)),this._ensureVisible(e)}},_ensureVisible:function(a){var b,c,d,e;b=a.position().top,c=b+a.outerHeight(!0),d=this.$menu.scrollTop(),e=this.$menu.height()+parseInt(this.$menu.css(\"paddingTop\"),10)+parseInt(this.$menu.css(\"paddingBottom\"),10),0>b?this.$menu.scrollTop(d+b):c>e&&this.$menu.scrollTop(d+(c-e))},close:function(){this.isOpen&&(this.isOpen=!1,this._removeCursor(),this._hide(),this.trigger(\"closed\"))},open:function(){this.isOpen||(this.isOpen=!0,!this.isEmpty&&this._show(),this.trigger(\"opened\"))},setLanguageDirection:function(a){this.$menu.css(\"ltr\"===a?k.ltr:k.rtl)},moveCursorUp:function(){this._moveCursor(-1)},moveCursorDown:function(){this._moveCursor(1)},getDatumForSuggestion:function(a){var b=null;return a.length&&(b={raw:p.extractDatum(a),value:p.extractValue(a),datasetName:p.extractDatasetName(a)}),b},getDatumForCursor:function(){return this.getDatumForSuggestion(this._getCursor().first())},getDatumForTopSuggestion:function(){return this.getDatumForSuggestion(this._getSuggestions().first())},update:function(a){function c(b){b.update(a)}b.each(this.datasets,c)},empty:function(){function a(a){a.clear()}b.each(this.datasets,a),this.isEmpty=!0},isVisible:function(){return this.isOpen&&!this.isEmpty},destroy:function(){function a(a){a.destroy()}this.$menu.off(\".tt\"),this.$menu=null,b.each(this.datasets,a)}}),c}(),r=function(){function c(c){var e,f,g;c=c||{},c.input||a.error(\"missing input\"),this.isActivated=!1,this.autoselect=!!c.autoselect,this.minLength=b.isNumber(c.minLength)?c.minLength:1,this.$node=d(c.input,c.withHint),e=this.$node.find(\".tt-dropdown-menu\"),f=this.$node.find(\".tt-input\"),g=this.$node.find(\".tt-hint\"),f.on(\"blur.tt\",function(a){var c,d,g;c=document.activeElement,d=e.is(c),g=e.has(c).length>0,b.isMsie()&&(d||g)&&(a.preventDefault(),a.stopImmediatePropagation(),b.defer(function(){f.focus()}))}),e.on(\"mousedown.tt\",function(a){a.preventDefault()}),this.eventBus=c.eventBus||new l({el:f}),this.dropdown=new q({menu:e,datasets:c.datasets}).onSync(\"suggestionClicked\",this._onSuggestionClicked,this).onSync(\"cursorMoved\",this._onCursorMoved,this).onSync(\"cursorRemoved\",this._onCursorRemoved,this).onSync(\"opened\",this._onOpened,this).onSync(\"closed\",this._onClosed,this).onAsync(\"datasetRendered\",this._onDatasetRendered,this),this.input=new o({input:f,hint:g}).onSync(\"focused\",this._onFocused,this).onSync(\"blurred\",this._onBlurred,this).onSync(\"enterKeyed\",this._onEnterKeyed,this).onSync(\"tabKeyed\",this._onTabKeyed,this).onSync(\"escKeyed\",this._onEscKeyed,this).onSync(\"upKeyed\",this._onUpKeyed,this).onSync(\"downKeyed\",this._onDownKeyed,this).onSync(\"leftKeyed\",this._onLeftKeyed,this).onSync(\"rightKeyed\",this._onRightKeyed,this).onSync(\"queryChanged\",this._onQueryChanged,this).onSync(\"whitespaceChanged\",this._onWhitespaceChanged,this),this._setLanguageDirection()}function d(b,c){var d,f,h,i;d=a(b),f=a(j.wrapper).css(k.wrapper),h=a(j.dropdown).css(k.dropdown),i=d.clone().css(k.hint).css(e(d)),i.val(\"\").removeData().addClass(\"tt-hint\").removeAttr(\"id name placeholder\").prop(\"disabled\",!0).attr({autocomplete:\"off\",spellcheck:\"false\"}),d.data(g,{dir:d.attr(\"dir\"),autocomplete:d.attr(\"autocomplete\"),spellcheck:d.attr(\"spellcheck\"),style:d.attr(\"style\")}),d.addClass(\"tt-input\").attr({autocomplete:\"off\",spellcheck:!1}).css(c?k.input:k.inputWithNoHint);try{!d.attr(\"dir\")&&d.attr(\"dir\",\"auto\")}catch(l){}return d.wrap(f).parent().prepend(c?i:null).append(h)}function e(a){return{backgroundAttachment:a.css(\"background-attachment\"),backgroundClip:a.css(\"background-clip\"),backgroundColor:a.css(\"background-color\"),backgroundImage:a.css(\"background-image\"),backgroundOrigin:a.css(\"background-origin\"),backgroundPosition:a.css(\"background-position\"),backgroundRepeat:a.css(\"background-repeat\"),backgroundSize:a.css(\"background-size\")}}function f(a){var c=a.find(\".tt-input\");b.each(c.data(g),function(a,d){b.isUndefined(a)?c.removeAttr(d):c.attr(d,a)}),c.detach().removeData(g).removeClass(\"tt-input\").insertAfter(a),a.remove()}var g=\"ttAttrs\";return b.mixin(c.prototype,{_onSuggestionClicked:function(a,b){var c;(c=this.dropdown.getDatumForSuggestion(b))&&this._select(c)},_onCursorMoved:function(){var a=this.dropdown.getDatumForCursor();this.input.setInputValue(a.value,!0),this.eventBus.trigger(\"cursorchanged\",a.raw,a.datasetName)},_onCursorRemoved:function(){this.input.resetInputValue(),this._updateHint()},_onDatasetRendered:function(){this._updateHint()},_onOpened:function(){this._updateHint(),this.eventBus.trigger(\"opened\")},_onClosed:function(){this.input.clearHint(),this.eventBus.trigger(\"closed\")},_onFocused:function(){this.isActivated=!0,this.dropdown.open()},_onBlurred:function(){this.isActivated=!1,this.dropdown.empty(),this.dropdown.close()},_onEnterKeyed:function(a,b){var c,d;c=this.dropdown.getDatumForCursor(),d=this.dropdown.getDatumForTopSuggestion(),c?(this._select(c),b.preventDefault()):this.autoselect&&d&&(this._select(d),b.preventDefault())},_onTabKeyed:function(a,b){var c;(c=this.dropdown.getDatumForCursor())?(this._select(c),b.preventDefault()):this._autocomplete(!0)},_onEscKeyed:function(){this.dropdown.close(),this.input.resetInputValue()},_onUpKeyed:function(){var a=this.input.getQuery();this.dropdown.isEmpty&&a.length>=this.minLength?this.dropdown.update(a):this.dropdown.moveCursorUp(),this.dropdown.open()},_onDownKeyed:function(){var a=this.input.getQuery();this.dropdown.isEmpty&&a.length>=this.minLength?this.dropdown.update(a):this.dropdown.moveCursorDown(),this.dropdown.open()},_onLeftKeyed:function(){\"rtl\"===this.dir&&this._autocomplete()},_onRightKeyed:function(){\"ltr\"===this.dir&&this._autocomplete()},_onQueryChanged:function(a,b){this.input.clearHintIfInvalid(),b.length>=this.minLength?this.dropdown.update(b):this.dropdown.empty(),this.dropdown.open(),this._setLanguageDirection()},_onWhitespaceChanged:function(){this._updateHint(),this.dropdown.open()},_setLanguageDirection:function(){var a;this.dir!==(a=this.input.getLanguageDirection())&&(this.dir=a,this.$node.css(\"direction\",a),this.dropdown.setLanguageDirection(a))},_updateHint:function(){var a,c,d,e,f,g;a=this.dropdown.getDatumForTopSuggestion(),a&&this.dropdown.isVisible()&&!this.input.hasOverflow()?(c=this.input.getInputValue(),d=o.normalizeQuery(c),e=b.escapeRegExChars(d),f=new RegExp(\"^(?:\"+e+\")(.+$)\",\"i\"),g=f.exec(a.value),g?this.input.setHint(c+g[1]):this.input.clearHint()):this.input.clearHint()},_autocomplete:function(a){var b,c,d,e;b=this.input.getHint(),c=this.input.getQuery(),d=a||this.input.isCursorAtEnd(),b&&c!==b&&d&&(e=this.dropdown.getDatumForTopSuggestion(),e&&this.input.setInputValue(e.value),this.eventBus.trigger(\"autocompleted\",e.raw,e.datasetName))},_select:function(a){this.input.setQuery(a.value),this.input.setInputValue(a.value,!0),this._setLanguageDirection(),this.eventBus.trigger(\"selected\",a.raw,a.datasetName),this.dropdown.close(),b.defer(b.bind(this.dropdown.empty,this.dropdown))},open:function(){this.dropdown.open()},close:function(){this.dropdown.close()},setVal:function(a){this.isActivated?this.input.setInputValue(a):(this.input.setQuery(a),this.input.setInputValue(a,!0)),this._setLanguageDirection()},getVal:function(){return this.input.getQuery()},destroy:function(){this.input.destroy(),this.dropdown.destroy(),f(this.$node),this.$node=null}}),c}();!function(){var c,d,e;c=a.fn.typeahead,d=\"ttTypeahead\",e={initialize:function(c,e){function f(){var f,g,h=a(this);b.each(e,function(a){a.highlight=!!c.highlight}),g=new r({input:h,eventBus:f=new l({el:h}),withHint:b.isUndefined(c.hint)?!0:!!c.hint,minLength:c.minLength,autoselect:c.autoselect,datasets:e}),h.data(d,g)}return e=b.isArray(e)?e:[].slice.call(arguments,1),c=c||{},this.each(f)},open:function(){function b(){var b,c=a(this);(b=c.data(d))&&b.open()}return this.each(b)},close:function(){function b(){var b,c=a(this);(b=c.data(d))&&b.close()}return this.each(b)},val:function(b){function c(){var c,e=a(this);(c=e.data(d))&&c.setVal(b)}function e(a){var b,c;return(b=a.data(d))&&(c=b.getVal()),c}return arguments.length?this.each(c):e(this.first())},destroy:function(){function b(){var b,c=a(this);(b=c.data(d))&&(b.destroy(),c.removeData(d))}return this.each(b)}},a.fn.typeahead=function(a){return e[a]?e[a].apply(this,[].slice.call(arguments,1)):e.initialize.apply(this,arguments)},a.fn.typeahead.noConflict=function(){return a.fn.typeahead=c,this}}()}(window.jQuery);\n}.call(window));\n","/*!\n * jQuery JavaScript Library v3.5.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2020-05-04T22:49Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.5.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( _i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.5\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2020-03-14\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem.namespaceURI,\n\t\tdocElem = ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n};\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px\";\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = parseInt( trStyle.height ) > 3;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = (\n\t\t\t\t\tdataPriv.get( cur, \"events\" ) || Object.create( null )\n\t\t\t\t)[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\toriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script\n\t\t\tif ( !isSuccess && jQuery.inArray( \"script\", s.dataTypes ) > -1 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"