{"version":3,"sources":["webpack://cloudinary/webpack/universalModuleDefinition","webpack://cloudinary/webpack/bootstrap","webpack://cloudinary/./src/cloudinary.js","webpack://cloudinary/./src/condition.js","webpack://cloudinary/./src/configuration.js","webpack://cloudinary/./src/constants.js","webpack://cloudinary/./src/crc32.js","webpack://cloudinary/./src/expression.js","webpack://cloudinary/./src/layer/fetchlayer.js","webpack://cloudinary/./src/layer/layer.js","webpack://cloudinary/./src/layer/subtitleslayer.js","webpack://cloudinary/./src/layer/textlayer.js","webpack://cloudinary/./src/namespace/cloudinary-core.js","webpack://cloudinary/./src/parameters.js","webpack://cloudinary/./src/tags/clienthintsmetatag.js","webpack://cloudinary/./src/tags/htmltag.js","webpack://cloudinary/./src/tags/imagetag.js","webpack://cloudinary/./src/tags/picturetag.js","webpack://cloudinary/./src/tags/sourcetag.js","webpack://cloudinary/./src/tags/videotag.js","webpack://cloudinary/./src/transformation.js","webpack://cloudinary/./src/url.js","webpack://cloudinary/./src/utf8_encode.js","webpack://cloudinary/./src/util/baseutil.js","webpack://cloudinary/./src/util/generateBreakpoints.js","webpack://cloudinary/./src/util/lodash.js","webpack://cloudinary/./src/util/srcsetUtils.js","webpack://cloudinary/external {\"commonjs\":\"lodash/assign\",\"commonjs2\":\"lodash/assign\",\"amd\":\"lodash/assign\",\"root\":[\"_\",\"assign\"]}","webpack://cloudinary/external {\"commonjs\":\"lodash/cloneDeep\",\"commonjs2\":\"lodash/cloneDeep\",\"amd\":\"lodash/cloneDeep\",\"root\":[\"_\",\"cloneDeep\"]}","webpack://cloudinary/external {\"commonjs\":\"lodash/compact\",\"commonjs2\":\"lodash/compact\",\"amd\":\"lodash/compact\",\"root\":[\"_\",\"compact\"]}","webpack://cloudinary/external {\"commonjs\":\"lodash/difference\",\"commonjs2\":\"lodash/difference\",\"amd\":\"lodash/difference\",\"root\":[\"_\",\"difference\"]}","webpack://cloudinary/external {\"commonjs\":\"lodash/functions\",\"commonjs2\":\"lodash/functions\",\"amd\":\"lodash/functions\",\"root\":[\"_\",\"functions\"]}","webpack://cloudinary/external {\"commonjs\":\"lodash/identity\",\"commonjs2\":\"lodash/identity\",\"amd\":\"lodash/identity\",\"root\":[\"_\",\"identity\"]}","webpack://cloudinary/external {\"commonjs\":\"lodash/includes\",\"commonjs2\":\"lodash/includes\",\"amd\":\"lodash/includes\",\"root\":[\"_\",\"includes\"]}","webpack://cloudinary/external {\"commonjs\":\"lodash/isArray\",\"commonjs2\":\"lodash/isArray\",\"amd\":\"lodash/isArray\",\"root\":[\"_\",\"isArray\"]}","webpack://cloudinary/external {\"commonjs\":\"lodash/isElement\",\"commonjs2\":\"lodash/isElement\",\"amd\":\"lodash/isElement\",\"root\":[\"_\",\"isElement\"]}","webpack://cloudinary/external {\"commonjs\":\"lodash/isEmpty\",\"commonjs2\":\"lodash/isEmpty\",\"amd\":\"lodash/isEmpty\",\"root\":[\"_\",\"isEmpty\"]}","webpack://cloudinary/external {\"commonjs\":\"lodash/isFunction\",\"commonjs2\":\"lodash/isFunction\",\"amd\":\"lodash/isFunction\",\"root\":[\"_\",\"isFunction\"]}","webpack://cloudinary/external {\"commonjs\":\"lodash/isPlainObject\",\"commonjs2\":\"lodash/isPlainObject\",\"amd\":\"lodash/isPlainObject\",\"root\":[\"_\",\"isPlainObject\"]}","webpack://cloudinary/external {\"commonjs\":\"lodash/isString\",\"commonjs2\":\"lodash/isString\",\"amd\":\"lodash/isString\",\"root\":[\"_\",\"isString\"]}","webpack://cloudinary/external {\"commonjs\":\"lodash/merge\",\"commonjs2\":\"lodash/merge\",\"amd\":\"lodash/merge\",\"root\":[\"_\",\"merge\"]}","webpack://cloudinary/external {\"commonjs\":\"lodash/trim\",\"commonjs2\":\"lodash/trim\",\"amd\":\"lodash/trim\",\"root\":[\"_\",\"trim\"]}"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;;AClFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAE4C;AACP;AACE;AACI;AACF;AACK;AACtB;AACe;;AAgBvB;;AAIK;;AAErB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mDAAK;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,eAAe,qDAAO;AACtB;AACA;AACA,IAAI,qDAAO;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA,6CAA6C,uBAAuB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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AgB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qDAAO,4BAA4B,qDAAO;AAChE,QAAQ,wDAAU;AAClB;AACA,KAAK;AACL,UAAU,sDAAQ;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,UAAU;AACtB,YAAY,OAAO,YAAY;AAC/B;AACA;AACA,sCAAsC;AACtC;AACA,QAAQ,qDAAO;AACf;AACA;AACA;AACA,cAAc,sDAAQ,GAAG;AACzB;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA;AACA,qBAAqB,oDAAM;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB,uDAAc;AACvC,QAAQ,qDAAO;AACf;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,wBAAwB;AACpC,YAAY,OAAO;AACnB,YAAY,eAAe;AAC3B;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qDAAO;AACrB;AACA;AACA;AACA,cAAc,sDAAQ;AACtB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sDAAQ;AAChB;AACA,gBAAgB,qDAAO,sBAAsB,qDAAO;AACpD,WAAW,qDAAO;AAClB;AACA;AACA,YAAY,qDAAO;AACnB;AACA;AACA;AACA;AACA;AACA,2GAA2G,cAAc;AACzH;AACA;AACA;AACA;AACA,iEAAiE,cAAc;AAC/E;AACA,YAAY,6DAAe;AAC3B;AACA,cAAc,6DAAe;AAC7B;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,UAAU,0DAAY;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc;AACd;AACA;AACA,WAAW,uDAAc;AACzB;;AAEA;;AAEe,yEAAU,EAAC;;;;;;;;;ACrlB1B;AAAA;AAAsC;;AAEtC,wCAAwC,mDAAU;AAClD;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,cAAc;AAC3B,cAAc,UAAU;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,cAAc;AAC3B,cAAc,UAAU;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,cAAc;AAC3B,cAAc,UAAU;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,cAAc;AAC3B,cAAc,UAAU;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,cAAc;AAC3B,cAAc,UAAU;AACxB;AACA;AACA;AACA;;AAEA;;AAEe,wEAAS,EAAC;;;;;;;;;AClFzB;AAAA;AAAA;AACA;AACA;AACA;;AAQgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA,0BAA0B;AAC1B,yBAAyB,uDAAS;AAClC,IAAI,sDAAQ;AACZ;;AAEA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,EAAE;AACf,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc,EAAE;AAChB;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB,IAAI,oDAAM,qBAAqB,uDAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oBAAoB;AACjC,aAAa,OAAO;AACpB,eAAe,EAAE;AACjB;AACA,WAAW,sBAAsB;AACjC,WAAW,mBAAmB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAQ;AACpB;AACA,YAAY,2DAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA,WAAW,uDAAS;AACpB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,4EAAa,EAAC;;;;;;;;;AC9M7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACP;AACA;AACA;;AAEO;;AAEA;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACO;AACP;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;;;;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;;AAEwC;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,oEAAK,EAAC;;;;;;;;;ACxCrB;AAAA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,eAAe;AAC5B,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,KAAK,GAAG,SAAS,GAAG,MAAM;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,cAAc;AAC3B,cAAc,WAAW;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,cAAc;AAC3B,cAAc,WAAW;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,cAAc;AAC3B,cAAc,WAAW;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,cAAc;AAC3B,cAAc,WAAW;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,cAAc;AAC3B,cAAc,WAAW;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEe,yEAAU,EAAC;;;;;;;;;ACpU1B;AAAA;AAAA;AAA4B;;AAKX;;AAEjB,4CAA4C,8CAAK;AACjD;AACA;AACA,aAAa,cAAc;AAC3B,aAAa,OAAO;AACpB;AACA;AACA;AACA,QAAQ,sDAAQ;AAChB;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,oBAAoB,6DAAe,mBAAmB;AACtD;;AAEA;;AAEe,yEAAU,EAAC;;;;;;;;;ACtC1B;AAAA;AAGiB;;AAEjB;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,uDAAS;AACzF,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qDAAO;AAClB;;AAEA;;AAEe,oEAAK,EAAC;;;;;;;;;ACtFrB;AAAA;AAAoC;;AAEpC,oDAAoD,kDAAS;AAC7D;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACe,6EAAc,EAAC;;;;;;;;;ACd9B;AAAA;AAAA;AAA4B;;AAQX;;AAEjB,wCAAwC,8CAAK;AAC7C;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,uDAAS;AACzF,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qDAAO;AAC5B,kBAAkB,qDAAO;AACzB;AACA;AACA;AACA;AACA;AACA,6EAA6E,2CAA2C;AACxH,mBAAmB,yDAAW;AAC9B;AACA;AACA,gBAAgB,yDAAW;AAC3B;AACA;AACA;AACA,cAAc,yDAAW;AACzB;AACA;AACA,WAAW,qDAAO;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,qDAAO,iCAAiC,0DAAY;AAC9D;AACA;AACA,UAAU,qDAAO,+BAA+B,0DAAY;AAC5D;AACA;AACA,SAAS,qDAAO,CAAC,qDAAO;AACxB,UAAU,qDAAO;AACjB,yCAAyC,WAAW;AACpD;AACA,UAAU,qDAAO,4BAA4B,0DAAY;AACzD;AACA;AACA;AACA;AACA,iBAAiB,qDAAO;AACxB;AACA;;AAEA;;AAEe,wEAAS,EAAC;;;;;;;;;AChKzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAGwB;;AAIN;;AAEc;;AAI9B;;AAIyB;;AAIL;;AAII;;AAID;;AAIC;;AAIE;;AAIF;;AAIU;;AAIZ;;AAIK;;AAID;;AAIK;;AAIV;;;;;;;;;ACnEvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACQ;;AAW9B;;AAEkB;;AAEQ;;AAEU;;AAER;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA,aAAa,SAAS;AACtB;AACA;AACA,yCAAyC,8CAAQ;AACjD;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,EAAE;AACf,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,YAAY,qDAAO,SAAS,2DAAa,SAAS,sDAAQ,SAAS,qDAAO;AAC1E;AACA,gBAAgB,eAAe,GAAG,IAAI;AACtC,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ,qDAAO;AACf;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B,aAAa,OAAO;AACpB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,qDAAO;AACjB;AACA,OAAO,UAAU,sDAAQ;AACzB,kBAAkB,eAAe,GAAG,WAAW;AAC/C,OAAO;AACP,qCAAqC,wDAAU;AAC/C,kBAAkB,eAAe,GAAG,KAAK;AACzC;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,QAAQ,qDAAO;AACf;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,+BAA+B,qDAAO;AACtC;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,qDAAO;AACf;AACA,KAAK,UAAU,wDAAU;AACzB;AACA,WAAW,qDAAO;AAClB,kBAAkB,eAAe,GAAG,OAAO;AAC3C,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA,YAAY,sDAAQ,QAAQ,qDAAO;AACnC,oBAAoB,eAAe,GAAG,EAAE;AACxC,SAAS,UAAU,wDAAU;AAC7B;AACA,SAAS,UAAU,2DAAa,QAAQ,qDAAO;AAC/C,qBAAqB,uDAAc;AACnC,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,QAAQ,qDAAO;AACf;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,yCAAyC,8CAAQ;AACjD;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2DAAa;AACrB,qBAAqB,+DAAiB;AACtC;AACA,qBAAqB,wDAAS;AAC9B,OAAO;AACP,qBAAqB,6DAAc;AACnC,OAAO;AACP,qBAAqB,yDAAU;AAC/B,OAAO;AACP,qBAAqB,oDAAK;AAC1B;AACA,KAAK,UAAU,sDAAQ;AACvB,mBAAmB,yDAAU;AAC7B,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,wDAAS;AACzB;;AAEA;;AAEA;AACA;AACA,WAAW,mDAAU;AACrB;;AAEA;;AAUE;;;;;;;;;AChVF;AAAA;AAAA;AAAA;AACA;AACA;AACA;;AAEgC;;AAIf;;AAEjB,0DAA0D,gDAAO;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oDAAM;AAChC;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;;AAEe,iFAAkB,EAAC;;;;;;;;;AC/BlC;AAAA;AAAA;AAAA;AACA;AACA;AACA;;AAQiB;;AAE8B;;AAE/C;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,yCAAyC,aAAa;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,2DAAa;AACvB;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,yBAAyB,uDAAc;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,cAAc;AACd,yCAAyC,aAAa;AACtD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,SAAS,2DAAa;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA,MAAM,mDAAK;AACX;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA,sCAAsC,KAAK;AAC3C;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe;AACf;AACA;AACA,qCAAqC,KAAK;AAC1C;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe;AACf;AACA;AACA;AACA,uDAAuD,KAAK;AAC5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,SAAS,wDAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,qDAAO,sBAAsB,qDAA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JxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACF;AACQ;;AAgB5B;;AASM;;AAEtB;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+DAA+D,qBAAqB;AACpF;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,wBAAwB,qDAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,eAAe;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,wDAAU;AACtB;AACA,SAAS;AACT,oBAAoB,8CAAQ;AAC5B;AACA;AACA,wBAAwB,iDAAK;AAC7B;AACA;AACA;AACA;AACA,yEAAyE,8CAAQ;AACjF;AACA,wBAAwB,oDAAQ;AAChC;AACA;AACA;AACA,2EAA2E,8CAAQ;AACnF;AACA,wBAAwB,sDAAU;AAClC;AACA;AACA;AACA,2FAA2F,8CAAQ;AACnG;AACA,wBAAwB,sDAAU;AAClC;AACA;AACA;AACA,+FAA+F,8CAAQ;AACvG;AACA,wBAAwB,+DAAmB;AAC3C;AACA;AACA;AACA,wBAAwB,sDAAU;AAClC;AACA;;AAEA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,EAAE;AAClB,yBAAyB,UAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,uDAAS;AACjE;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2DAAa;AACzB,sBAAsB,uDAAS;AAC/B;AACA;AACA,WAAW,qDAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qDAAO;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO,YAAY;AAChC,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,8BAA8B;AAC9B,UAAU,sDAAQ,aAAa,qDAAO;AACtC;AACA;AACA;AACA;AACA,gBAAgB,uDAAS;AACzB;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,EAAE;AACf,eAAe,eAAe;AAC9B;AACA;AACA;AACA,eAAe,uDAAS;AACxB,QAAQ,sDAAQ;AAChB;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wDAAU;AAC1B;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA,4BAA4B,mDAAU;AACtC,OAAO;AACP;AACA;AACA;AACA;AACA,YAAY,sDAAQ;AACpB;AACA;AACA,YAAY,qDAAO;AACnB;AACA;AACA;AACA;AACA;AACA,mDAAmD,UAAU;AAC7D;AACA,YAAY,qDAAO,YAAY,qDAAO,YAAY,qDAAO;AACzD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK,WAAW,qDAAO;AACvB;AACA;AACA,2BAA2B,qDAAO;AAClC,SAAS,qDAAO;AAChB;AACA;AACA,WAAW,qDAAO;AAClB;;AAEA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,sDAAQ,6BAA6B,uDAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uDAAS;AACzB;AACA,KAAK;AACL,uDAAuD,sDAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,uDAAS;AACnD;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA,8CAA8C,mBAAmB;AACjE,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;;AAGA;AACA;AACA;AACA,MAAM,wDAAU;AAChB;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,MAAM,qDAAO;AACb;AACA,sCAAsC,SAAS;AAC/C;AACA,sBAAsB,KAAK,GAAG,mDAAU,cAAc;AACtD;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wCAAwC;AACjF;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,cAAc;AACd,mDAAmD,wCAAwC;AAC3F;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD,mDAAU;AAC/D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mDAAmD,mDAAU;AAC7D;;AAEA;AACA,gDAAgD,iDAAK;AACrD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU,2DAAa;AACvB,iBAAiB,oDAAM,GAAG;AAC1B;AACA;AACA,SAAS;AACT,kBAAkB,aAAa,WAAW,iDAAK,0BAA0B;AACzE,OAAO;AACP;AACA;AACA,KAAK;AACL;;AAEA;AACA,4CAA4C,iDAAK;AACjD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,eAAe,mDAAU;AACzB;AACA,KAAK;AACL;;AAEA;AACA,sDAAsD,mDAAU;AAChE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU,sDAAQ;AAClB;AACA,OAAO,UAAU,qDAAO;AACxB;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,eAAe,mDAAU;AACzB,OAAO;AACP;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kDAAS;AACxB;AACA;AACA,iBAAiB,kDAAS;AAC1B,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,wDAAU,8DAA8D,qDAAO;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,mDAAU;AACvD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6CAA6C,mDAAU;AACvD;;AAEA;AACA,4CAA4C,mDAAU;AACtD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,wDAAU;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kDAAkD,iDAAK;AACvD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,mDAAU;AACzB,OAAO;AACP;AACA;AACA,KAAK;AACL;;AAEA;AACA,uCAAuC,mDAAU;AACjD;;AAEA;AACA,uCAAuC,mDAAU;AACjD;;AAEA;AACA,0CAA0C,mDAAU;AACpD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wDAAwD,+CAAS,SAAS,sDAAa;;AAExE,6EAAc,EAAC;;;;;;;;;;;;;;;;ACz1BgB;;AAOzB;;AAML;;AAEY;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,sDAAK;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,gEAAqB,oCAAoC,qDAAU;AACpJ;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,gDAAgD,sDAAK;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,MAAM,2DAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oDAAS,IAAI,aAAa,GAAG,KAAK;AACrD;AACA;AACA,uDAAuD;AACvD;AACA;AACA,oBAAoB,oDAAS;AAC7B;AACA;AACA;AACA,OAAO,gBAAgB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO,mFAAmF,qBAAqB;AAC1H,iCAAiC,oBAAoB;AACrD,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACe,mCAAmC,aAAa;AAC/D;AACA;AACA;AACA;AACA,yBAAyB,uDAAc;AACvC;AACA;AACA,YAAY,sDAAQ,GAAG,mBAAmB,+DAAoB;AAC9D;AACA;AACA;AACA;AACA,uBAAuB,uDAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qDAAO;AACvB;;;;;;;;;ACxMA;AAAA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;ACxDF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACiC;AACD;AACC;;AAEjC;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACO;AACP,mCAAmC,8CAAQ;AAC3C;;AAEA;AACA;AACA;AACA,UAAU,MAAM;AAChB,UAAU,EAAE;AACZ,WAAW,MAAM;AACjB;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA,UAAU,EAAE;AACZ,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACO;AACP;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,YAAY,OAAO;AACnB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACO;;AAEP;AACA;AACA;AACA;AACO;;AAEP;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;;AAEP;AACA;AACA;AACA,UAAU,EAAE;AACZ,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,UAAU,OAAO;AACjB,WAAW,OAAO;AAClB;AACO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACO;AACP;AACA;AACA;AACA;;AAEO,+CAA+C,8CAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA,SAAS,qDAAO;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACO;AACP;AACA;;AAEA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB,WAAW,OAAO;AAClB;AACO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;;;AAGA;AACA;AACA;AACA;AACA;AACO,oCAAoC;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;ACzSA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,YAAY,SAAS;AACrB;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA;;;;;;;;;ACvCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAIuB;;AAIG;;AAIF;;AAIG;;AAID;;AAID;;AAIA;;AAID;;AAIA;;AAIM;;AAIL;;AAIH;;AAIG;;AAEqB;;AAEE;;AAEZ;;AAIlC;;AAIA;;AAEyB;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB;AACA;AACA;AACO;AACP;AACA;AACA;AACA,UAAU,+CAAU;AACpB,0CAA0C,KAAK;AAC/C,UAAU,+CAAU;AACpB,qCAAqC,KAAK;AAC1C,UAAU,+CAAU;AACpB;AACA,WAAW,+CAAU,kEAAkE,8CAAS;AAChG;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACO;AACP;AACA;AACA;AACA,UAAU,+CAAU;AACpB,0CAA0C,KAAK;AAC/C,UAAU,+CAAU;AACpB,qCAAqC,KAAK;AAC1C,UAAU,+CAAU;AACpB;AACA,WAAW,+CAAU,kEAAkE,8CAAS;AAChG;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACO;AACP;AACA;AACA;AACA,UAAU,+CAAU;AACpB;AACA,UAAU,+CAAU;AACpB;AACA,UAAU,+CAAU;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACO;AACP;AACA;AACA;AACA,UAAU,+CAAU;AACpB;AACA,UAAU,+CAAU;AACpB;AACA,UAAU,+CAAU;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB;AACO;AACP;AACA;AACA;AACA,UAAU,+CAAU;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACO;AACP,MAAM,8CAAS;AACf,oDAAoD,KAAK;AACzD;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB;AACO;AACP,gDAAgD,KAAK;AACrD,+BAA+B,yCAAI,IAAI,kBAAkB,GAAG,KAAK;AACjE;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;;AAEP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,KAAK;AAC/C;AACA;AACA;AACA,yCAAyC,KAAK;AAC9C;AACA,OAAO;AACP;AACA,wCAAwC,KAAK;AAC7C;AACA;AACA,yCAAyC,KAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;;;;;;;;;AC9cA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiC;AACjC,gBAAgB,6CAAa;AAC2B;AACT;AACtB;;AAEzB;AACA;AACA,aAAa,OAAO;AACpB,cAAc,oBAAoB;AAClC,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,cAAc;AAC5B,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,cAAc,oBAAoB;AAClC,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,cAAc;AAC5B,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB;AACA,YAAY,OAAO;AACnB;AACO,iEAAiE;AACxE,qBAAqB,sDAAsB;AAC3C;AACA,wCAAwC,uDAAc,EAAE,2CAAW,GAAG,oBAAoB,4BAA4B;;AAEtH,SAAS,oDAAG;AACZ;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACO,sDAAsD,YAAY;AACzE,SAAS,oEAAmB;AAC5B;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACO;AACP,YAAY,+CAAe;AAC3B,EAAE,sDAAsB;AACxB,mCAAmC,qDAAqD,GAAG,MAAM;AACjG;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,YAAY,OAAO;AACnB;AACO;AACP,+CAA+C,MAAM,MAAM,MAAM;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACO,kEAAkE,eAAe,YAAY;AACpG;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,cAAc;AACzB,WAAW,cAAc;AACzB,YAAY,OAAO;AACnB;AACO,qCAAqC;AAC5C;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;;AAEO;;;;;;;;ACtJP,2D;;;;;;;ACAA,8D;;;;;;;ACAA,4D;;;;;;;ACAA,+D;;;;;;;ACAA,8D;;;;;;;ACAA,6D;;;;;;;ACAA,6D;;;;;;;ACAA,4D;;;;;;;ACAA,8D;;;;;;;ACAA,4D;;;;;;;ACAA,+D;;;;;;;ACAA,kE;;;;;;;ACAA,6D;;;;;;;ACAA,0D;;;;;;;ACAA,yD","file":"./cloudinary-core.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"lodash/assign\"), require(\"lodash/cloneDeep\"), require(\"lodash/compact\"), require(\"lodash/difference\"), require(\"lodash/functions\"), require(\"lodash/identity\"), require(\"lodash/includes\"), require(\"lodash/isArray\"), require(\"lodash/isElement\"), require(\"lodash/isEmpty\"), require(\"lodash/isFunction\"), require(\"lodash/isPlainObject\"), require(\"lodash/isString\"), require(\"lodash/merge\"), require(\"lodash/trim\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"lodash/assign\", \"lodash/cloneDeep\", \"lodash/compact\", \"lodash/difference\", \"lodash/functions\", \"lodash/identity\", \"lodash/includes\", \"lodash/isArray\", \"lodash/isElement\", \"lodash/isEmpty\", \"lodash/isFunction\", \"lodash/isPlainObject\", \"lodash/isString\", \"lodash/merge\", \"lodash/trim\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cloudinary\"] = factory(require(\"lodash/assign\"), require(\"lodash/cloneDeep\"), require(\"lodash/compact\"), require(\"lodash/difference\"), require(\"lodash/functions\"), require(\"lodash/identity\"), require(\"lodash/includes\"), require(\"lodash/isArray\"), require(\"lodash/isElement\"), require(\"lodash/isEmpty\"), require(\"lodash/isFunction\"), require(\"lodash/isPlainObject\"), require(\"lodash/isString\"), require(\"lodash/merge\"), require(\"lodash/trim\"));\n\telse\n\t\troot[\"cloudinary\"] = factory(root[\"_\"][\"assign\"], root[\"_\"][\"cloneDeep\"], root[\"_\"][\"compact\"], root[\"_\"][\"difference\"], root[\"_\"][\"functions\"], root[\"_\"][\"identity\"], root[\"_\"][\"includes\"], root[\"_\"][\"isArray\"], root[\"_\"][\"isElement\"], root[\"_\"][\"isEmpty\"], root[\"_\"][\"isFunction\"], root[\"_\"][\"isPlainObject\"], root[\"_\"][\"isString\"], root[\"_\"][\"merge\"], root[\"_\"][\"trim\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_lodash_assign__, __WEBPACK_EXTERNAL_MODULE_lodash_cloneDeep__, __WEBPACK_EXTERNAL_MODULE_lodash_compact__, __WEBPACK_EXTERNAL_MODULE_lodash_difference__, __WEBPACK_EXTERNAL_MODULE_lodash_functions__, __WEBPACK_EXTERNAL_MODULE_lodash_identity__, __WEBPACK_EXTERNAL_MODULE_lodash_includes__, __WEBPACK_EXTERNAL_MODULE_lodash_isArray__, __WEBPACK_EXTERNAL_MODULE_lodash_isElement__, __WEBPACK_EXTERNAL_MODULE_lodash_isEmpty__, __WEBPACK_EXTERNAL_MODULE_lodash_isFunction__, __WEBPACK_EXTERNAL_MODULE_lodash_isPlainObject__, __WEBPACK_EXTERNAL_MODULE_lodash_isString__, __WEBPACK_EXTERNAL_MODULE_lodash_merge__, __WEBPACK_EXTERNAL_MODULE_lodash_trim__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/namespace/cloudinary-core.js\");\n","var applyBreakpoints, closestAbove, defaultBreakpoints, findContainerWidth, maxWidth, updateDpr;\n\nimport Configuration from './configuration';\nimport HtmlTag from './tags/htmltag';\nimport ImageTag from './tags/imagetag';\nimport PictureTag from './tags/picturetag';\nimport SourceTag from './tags/sourcetag';\nimport Transformation from './transformation';\nimport url from './url';\nimport VideoTag from './tags/videotag';\n\nimport {\n addClass,\n assign,\n defaults,\n getData,\n isArray,\n isEmpty,\n isFunction,\n isString,\n merge,\n removeAttribute,\n setAttribute,\n setData,\n width\n} from './util';\n\nimport {\n DEFAULT_POSTER_OPTIONS\n} from './constants';\n\ndefaultBreakpoints = function(width, steps = 100) {\n return steps * Math.ceil(width / steps);\n};\n\nclosestAbove = function(list, value) {\n var i;\n i = list.length - 2;\n while (i >= 0 && list[i] >= value) {\n i--;\n }\n return list[i + 1];\n};\n\napplyBreakpoints = function(tag, width, steps, options) {\n var ref, ref1, ref2, responsive_use_breakpoints;\n responsive_use_breakpoints = (ref = (ref1 = (ref2 = options['responsive_use_breakpoints']) != null ? ref2 : options['responsive_use_stoppoints']) != null ? ref1 : this.config('responsive_use_breakpoints')) != null ? ref : this.config('responsive_use_stoppoints');\n if ((!responsive_use_breakpoints) || (responsive_use_breakpoints === 'resize' && !options.resizing)) {\n return width;\n } else {\n return this.calc_breakpoint(tag, width, steps);\n }\n};\n\nfindContainerWidth = function(element) {\n var containerWidth, style;\n containerWidth = 0;\n while (((element = element != null ? element.parentNode : void 0) instanceof Element) && !containerWidth) {\n style = window.getComputedStyle(element);\n if (!/^inline/.test(style.display)) {\n containerWidth = width(element);\n }\n }\n return containerWidth;\n};\n\nupdateDpr = function(dataSrc, roundDpr) {\n return dataSrc.replace(/\\bdpr_(1\\.0|auto)\\b/g, 'dpr_' + this.device_pixel_ratio(roundDpr));\n};\n\nmaxWidth = function(requiredWidth, tag) {\n var imageWidth;\n imageWidth = getData(tag, 'width') || 0;\n if (requiredWidth > imageWidth) {\n imageWidth = requiredWidth;\n setData(tag, 'width', requiredWidth);\n }\n return imageWidth;\n};\n\nvar Cloudinary = class Cloudinary {\n /**\n * Main Cloudinary class\n * @class Cloudinary\n * @param {Object} options - options to configure Cloudinary\n * @see Configuration for more details\n * @example\n * var cl = new cloudinary.Cloudinary( { cloud_name: \"mycloud\"});\n * var imgTag = cl.image(\"myPicID\");\n */\n constructor(options) {\n var configuration;\n this.devicePixelRatioCache = {};\n this.responsiveConfig = {};\n this.responsiveResizeInitialized = false;\n configuration = new Configuration(options);\n // Provided for backward compatibility\n this.config = function(newConfig, newValue) {\n return configuration.config(newConfig, newValue);\n };\n /**\n * Use \\ tags in the document to configure this Cloudinary instance.\n * @return {Cloudinary} this for chaining\n */\n this.fromDocument = function() {\n configuration.fromDocument();\n return this;\n };\n /**\n * Use environment variables to configure this Cloudinary instance.\n * @return {Cloudinary} this for chaining\n */\n this.fromEnvironment = function() {\n configuration.fromEnvironment();\n return this;\n };\n /**\n * Initialize configuration.\n * @function Cloudinary#init\n * @see Configuration#init\n * @return {Cloudinary} this for chaining\n */\n this.init = function() {\n configuration.init();\n return this;\n };\n }\n\n /**\n * Convenience constructor\n * @param {Object} options\n * @return {Cloudinary}\n * @example cl = cloudinary.Cloudinary.new( { cloud_name: \"mycloud\"})\n */\n static new(options) {\n return new this(options);\n }\n\n /**\n * Generate an resource URL.\n * @function Cloudinary#url\n * @param {string} publicId - the public ID of the resource\n * @param {Object} [options] - options for the tag and transformations, possible values include all {@link Transformation} parameters\n * and {@link Configuration} parameters\n * @param {string} [options.type='upload'] - the classification of the resource\n * @param {Object} [options.resource_type='image'] - the type of the resource\n * @return {string} The resource URL\n */\n url(publicId, options = {}) {\n return url(publicId, options, this.config());\n }\n\n /**\n * Generate an video resource URL.\n * @function Cloudinary#video_url\n * @param {string} publicId - the public ID of the resource\n * @param {Object} [options] - options for the tag and transformations, possible values include all {@link Transformation} parameters\n * and {@link Configuration} parameters\n * @param {string} [options.type='upload'] - the classification of the resource\n * @return {string} The video URL\n */\n video_url(publicId, options) {\n options = assign({\n resource_type: 'video'\n }, options);\n return this.url(publicId, options);\n }\n\n /**\n * Generate an video thumbnail URL.\n * @function Cloudinary#video_thumbnail_url\n * @param {string} publicId - the public ID of the resource\n * @param {Object} [options] - options for the tag and transformations, possible values include all {@link Transformation} parameters\n * and {@link Configuration} parameters\n * @param {string} [options.type='upload'] - the classification of the resource\n * @return {string} The video thumbnail URL\n */\n video_thumbnail_url(publicId, options) {\n options = assign({}, DEFAULT_POSTER_OPTIONS, options);\n return this.url(publicId, options);\n }\n\n /**\n * Generate a string representation of the provided transformation options.\n * @function Cloudinary#transformation_string\n * @param {Object} options - the transformation options\n * @returns {string} The transformation string\n */\n transformation_string(options) {\n return new Transformation(options).serialize();\n }\n\n /**\n * Generate an image tag.\n * @function Cloudinary#image\n * @param {string} publicId - the public ID of the image\n * @param {Object} [options] - options for the tag and transformations\n * @return {HTMLImageElement} an image tag element\n */\n image(publicId, options = {}) {\n var client_hints, img, ref, ref1;\n img = this.imageTag(publicId, options);\n client_hints = (ref = (ref1 = options.client_hints) != null ? ref1 : this.config('client_hints')) != null ? ref : false;\n if (!((options.src != null) || client_hints)) {\n // src must be removed before creating the DOM element to avoid loading the image\n img.setAttr(\"src\", '');\n }\n img = img.toDOM();\n if (!client_hints) {\n // cache the image src\n setData(img, 'src-cache', this.url(publicId, options));\n // set image src taking responsiveness in account\n this.cloudinary_update(img, options);\n }\n return img;\n }\n\n /**\n * Creates a new ImageTag instance, configured using this own's configuration.\n * @function Cloudinary#imageTag\n * @param {string} publicId - the public ID of the resource\n * @param {Object} options - additional options to pass to the new ImageTag instance\n * @return {ImageTag} An ImageTag that is attached (chained) to this Cloudinary instance\n */\n imageTag(publicId, options) {\n var tag;\n tag = new ImageTag(publicId, this.config());\n tag.transformation().fromOptions(options);\n return tag;\n }\n\n /**\n * Creates a new PictureTag instance, configured using this own's configuration.\n * @function Cloudinary#PictureTag\n * @param {string} publicId - the public ID of the resource\n * @param {Object} options - additional options to pass to the new ImageTag instance\n * @return {PictureTag} An PictureTag that is attached (chained) to this Cloudinary instance\n */\n pictureTag(publicId, options) {\n var tag;\n tag = new PictureTag(publicId, this.config());\n tag.transformation().fromOptions(options);\n return tag;\n }\n\n /**\n * Creates a new SourceTag instance, configured using this own's configuration.\n * @function Cloudinary#SourceTag\n * @param {string} publicId - the public ID of the resource\n * @param {Object} options - additional options to pass to the new ImageTag instance\n * @return {SourceTag} An PictureTag that is attached (chained) to this Cloudinary instance\n */\n sourceTag(publicId, options) {\n var tag;\n tag = new SourceTag(publicId, this.config());\n tag.transformation().fromOptions(options);\n return tag;\n }\n\n /**\n * Generate an image tag for the video thumbnail.\n * @function Cloudinary#video_thumbnail\n * @param {string} publicId - the public ID of the video\n * @param {Object} [options] - options for the tag and transformations\n * @return {HTMLImageElement} An image tag element\n */\n video_thumbnail(publicId, options) {\n return this.image(publicId, merge({}, DEFAULT_POSTER_OPTIONS, options));\n }\n\n /**\n * @function Cloudinary#facebook_profile_image\n * @param {string} publicId - the public ID of the image\n * @param {Object} [options] - options for the tag and transformations\n * @return {HTMLImageElement} an image tag element\n */\n facebook_profile_image(publicId, options) {\n return this.image(publicId, assign({\n type: 'facebook'\n }, options));\n }\n\n /**\n * @function Cloudinary#twitter_profile_image\n * @param {string} publicId - the public ID of the image\n * @param {Object} [options] - options for the tag and transformations\n * @return {HTMLImageElement} an image tag element\n */\n twitter_profile_image(publicId, options) {\n return this.image(publicId, assign({\n type: 'twitter'\n }, options));\n }\n\n /**\n * @function Cloudinary#twitter_name_profile_image\n * @param {string} publicId - the public ID of the image\n * @param {Object} [options] - options for the tag and transformations\n * @return {HTMLImageElement} an image tag element\n */\n twitter_name_profile_image(publicId, options) {\n return this.image(publicId, assign({\n type: 'twitter_name'\n }, options));\n }\n\n /**\n * @function Cloudinary#gravatar_image\n * @param {string} publicId - the public ID of the image\n * @param {Object} [options] - options for the tag and transformations\n * @return {HTMLImageElement} an image tag element\n */\n gravatar_image(publicId, options) {\n return this.image(publicId, assign({\n type: 'gravatar'\n }, options));\n }\n\n /**\n * @function Cloudinary#fetch_image\n * @param {string} publicId - the public ID of the image\n * @param {Object} [options] - options for the tag and transformations\n * @return {HTMLImageElement} an image tag element\n */\n fetch_image(publicId, options) {\n return this.image(publicId, assign({\n type: 'fetch'\n }, options));\n }\n\n /**\n * @function Cloudinary#video\n * @param {string} publicId - the public ID of the image\n * @param {Object} [options] - options for the tag and transformations\n * @return {HTMLImageElement} an image tag element\n */\n video(publicId, options = {}) {\n return this.videoTag(publicId, options).toHtml();\n }\n\n /**\n * Creates a new VideoTag instance, configured using this own's configuration.\n * @function Cloudinary#videoTag\n * @param {string} publicId - the public ID of the resource\n * @param {Object} options - additional options to pass to the new VideoTag instance\n * @return {VideoTag} A VideoTag that is attached (chained) to this Cloudinary instance\n */\n videoTag(publicId, options) {\n options = defaults({}, options, this.config());\n return new VideoTag(publicId, options);\n }\n\n /**\n * Generate the URL of the sprite image\n * @function Cloudinary#sprite_css\n * @param {string} publicId - the public ID of the resource\n * @param {Object} [options] - options for the tag and transformations\n * @see {@link http://cloudinary.com/documentation/sprite_generation Sprite generation}\n */\n sprite_css(publicId, options) {\n options = assign({\n type: 'sprite'\n }, options);\n if (!publicId.match(/.css$/)) {\n options.format = 'css';\n }\n return this.url(publicId, options);\n }\n\n /**\n * Initialize the responsive behaviour.
\n * Calls {@link Cloudinary#cloudinary_update} to modify image tags.\n * @function Cloudinary#responsive\n * @param {Object} options\n * @param {String} [options.responsive_class='cld-responsive'] - provide an alternative class used to locate img tags\n * @param {number} [options.responsive_debounce=100] - the debounce interval in milliseconds.\n * @param {boolean} [bootstrap=true] if true processes the img tags by calling cloudinary_update. When false the tags will be processed only after a resize event.\n * @see {@link Cloudinary#cloudinary_update} for additional configuration parameters\n */\n responsive(options, bootstrap = true) {\n var ref, ref1, ref2, responsiveClass, responsiveResize, timeout;\n this.responsiveConfig = merge(this.responsiveConfig || {}, options);\n responsiveClass = (ref = this.responsiveConfig['responsive_class']) != null ? ref : this.config('responsive_class');\n if (bootstrap) {\n this.cloudinary_update(`img.${responsiveClass}, img.cld-hidpi`, this.responsiveConfig);\n }\n responsiveResize = (ref1 = (ref2 = this.responsiveConfig['responsive_resize']) != null ? ref2 : this.config('responsive_resize')) != null ? ref1 : true;\n if (responsiveResize && !this.responsiveResizeInitialized) {\n this.responsiveConfig.resizing = this.responsiveResizeInitialized = true;\n timeout = null;\n return window.addEventListener('resize', () => {\n var debounce, ref3, ref4, reset, run, wait, waitFunc;\n debounce = (ref3 = (ref4 = this.responsiveConfig['responsive_debounce']) != null ? ref4 : this.config('responsive_debounce')) != null ? ref3 : 100;\n reset = function() {\n if (timeout) {\n clearTimeout(timeout);\n return timeout = null;\n }\n };\n run = () => {\n return this.cloudinary_update(`img.${responsiveClass}`, this.responsiveConfig);\n };\n waitFunc = function() {\n reset();\n return run();\n };\n wait = function() {\n reset();\n return timeout = setTimeout(waitFunc, debounce);\n };\n if (debounce) {\n return wait();\n } else {\n return run();\n }\n });\n }\n }\n\n /**\n * @function Cloudinary#calc_breakpoint\n * @private\n * @ignore\n */\n calc_breakpoint(element, width, steps) {\n let breakpoints = getData(element, 'breakpoints') || getData(element, 'stoppoints') || this.config('breakpoints') || this.config('stoppoints') || defaultBreakpoints;\n if (isFunction(breakpoints)) {\n return breakpoints(width, steps);\n } else {\n if (isString(breakpoints)) {\n breakpoints = breakpoints.split(',').map(point=>parseInt(point)).sort((a, b) => a - b);\n }\n return closestAbove(breakpoints, width);\n }\n }\n\n /**\n * @function Cloudinary#calc_stoppoint\n * @deprecated Use {@link calc_breakpoint} instead.\n * @private\n * @ignore\n */\n calc_stoppoint(element, width, steps) {\n return this.calc_breakpoint(element, width, steps);\n }\n\n /**\n * @function Cloudinary#device_pixel_ratio\n * @private\n */\n device_pixel_ratio(roundDpr = true) {\n var dpr, dprString;\n dpr = (typeof window !== \"undefined\" && window !== null ? window.devicePixelRatio : void 0) || 1;\n if (roundDpr) {\n dpr = Math.ceil(dpr);\n }\n if (dpr <= 0 || dpr === (0/0)) {\n dpr = 1;\n }\n dprString = dpr.toString();\n if (dprString.match(/^\\d+$/)) {\n dprString += '.0';\n }\n return dprString;\n }\n\n /**\n * Finds all `img` tags under each node and sets it up to provide the image through Cloudinary\n * @param {Element[]} nodes the parent nodes to search for img under\n * @param {Object} [options={}] options and transformations params\n * @function Cloudinary#processImageTags\n */\n processImageTags(nodes, options = {}) {\n var images, imgOptions, node, publicId;\n if (isEmpty(nodes)) {\n // similar to `$.fn.cloudinary`\n return this;\n }\n options = defaults({}, options, this.config());\n images = (function() {\n var j, len, ref, results;\n results = [];\n for (j = 0, len = nodes.length; j < len; j++) {\n node = nodes[j];\n if (!(((ref = node.tagName) != null ? ref.toUpperCase() : void 0) === 'IMG')) {\n continue;\n }\n imgOptions = assign({\n width: node.getAttribute('width'),\n height: node.getAttribute('height'),\n src: node.getAttribute('src')\n }, options);\n publicId = imgOptions['source'] || imgOptions['src'];\n delete imgOptions['source'];\n delete imgOptions['src'];\n url = this.url(publicId, imgOptions);\n imgOptions = new Transformation(imgOptions).toHtmlAttributes();\n setData(node, 'src-cache', url);\n node.setAttribute('width', imgOptions.width);\n node.setAttribute('height', imgOptions.height);\n results.push(node);\n }\n return results;\n }).call(this);\n this.cloudinary_update(images, options);\n return this;\n }\n\n /**\n * Update hidpi (dpr_auto) and responsive (w_auto) fields according to the current container size and the device pixel ratio.\n * Only images marked with the cld-responsive class have w_auto updated.\n * @function Cloudinary#cloudinary_update\n * @param {(Array|string|NodeList)} elements - the elements to modify\n * @param {Object} options\n * @param {boolean|string} [options.responsive_use_breakpoints=true]\n * - when `true`, always use breakpoints for width\n * - when `\"resize\"` use exact width on first render and breakpoints on resize\n * - when `false` always use exact width\n * @param {boolean} [options.responsive] - if `true`, enable responsive on this element. Can be done by adding cld-responsive.\n * @param {boolean} [options.responsive_preserve_height] - if set to true, original css height is preserved.\n * Should only be used if the transformation supports different aspect ratios.\n */\n cloudinary_update(elements, options = {}) {\n var containerWidth, dataSrc, j, len, match, ref, ref1, ref2, ref3, ref4, ref5, requiredWidth, responsive, responsiveClass, roundDpr, setUrl, tag;\n if (elements === null) {\n return this;\n }\n responsive = (ref = (ref1 = options.responsive) != null ? ref1 : this.config('responsive')) != null ? ref : false;\n elements = (function() {\n switch (false) {\n case !isArray(elements):\n return elements;\n case elements.constructor.name !== \"NodeList\":\n return elements;\n case !isString(elements):\n return document.querySelectorAll(elements);\n default:\n return [elements];\n }\n })();\n responsiveClass = (ref2 = (ref3 = this.responsiveConfig['responsive_class']) != null ? ref3 : options['responsive_class']) != null ? ref2 : this.config('responsive_class');\n roundDpr = (ref4 = options['round_dpr']) != null ? ref4 : this.config('round_dpr');\n for (j = 0, len = elements.length; j < len; j++) {\n tag = elements[j];\n if (!((ref5 = tag.tagName) != null ? ref5.match(/img/i) : void 0)) {\n continue;\n }\n setUrl = true;\n if (responsive) {\n addClass(tag, responsiveClass);\n }\n dataSrc = getData(tag, 'src-cache') || getData(tag, 'src');\n if (!isEmpty(dataSrc)) {\n // Update dpr according to the device's devicePixelRatio\n dataSrc = updateDpr.call(this, dataSrc, roundDpr);\n if (HtmlTag.isResponsive(tag, responsiveClass)) {\n containerWidth = findContainerWidth(tag);\n if (containerWidth !== 0) {\n switch (false) {\n case !/w_auto:breakpoints/.test(dataSrc):\n requiredWidth = maxWidth(containerWidth, tag);\n dataSrc = dataSrc.replace(/w_auto:breakpoints([_0-9]*)(:[0-9]+)?/, `w_auto:breakpoints$1:${requiredWidth}`);\n break;\n case !(match = /w_auto(:(\\d+))?/.exec(dataSrc)):\n requiredWidth = applyBreakpoints.call(this, tag, containerWidth, match[2], options);\n requiredWidth = maxWidth(requiredWidth, tag);\n dataSrc = dataSrc.replace(/w_auto[^,\\/]*/g, `w_${requiredWidth}`);\n }\n removeAttribute(tag, 'width');\n if (!options.responsive_preserve_height) {\n removeAttribute(tag, 'height');\n }\n } else {\n // Container doesn't know the size yet - usually because the image is hidden or outside the DOM.\n setUrl = false;\n }\n }\n if (setUrl) {\n setAttribute(tag, 'src', dataSrc);\n }\n }\n }\n return this;\n }\n\n /**\n * Provide a transformation object, initialized with own's options, for chaining purposes.\n * @function Cloudinary#transformation\n * @param {Object} options\n * @return {Transformation}\n */\n transformation(options) {\n return Transformation.new(this.config()).fromOptions(options).setParent(this);\n }\n\n};\n\nexport default Cloudinary;\n","import Expression from './expression';\n\nvar Condition = class Condition extends Expression {\n /**\n * Represents a transformation condition\n * @param {string} conditionStr - a condition in string format\n * @class Condition\n * @example\n * // normally this class is not instantiated directly\n * var tr = cloudinary.Transformation.new()\n * .if().width( \">\", 1000).and().aspectRatio(\"<\", \"3:4\").then()\n * .width(1000)\n * .crop(\"scale\")\n * .else()\n * .width(500)\n * .crop(\"scale\")\n *\n * var tr = cloudinary.Transformation.new()\n * .if(\"w > 1000 and aspectRatio < 3:4\")\n * .width(1000)\n * .crop(\"scale\")\n * .else()\n * .width(500)\n * .crop(\"scale\")\n *\n */\n constructor(conditionStr) {\n super(conditionStr);\n }\n\n /**\n * @function Condition#height\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Condition} this condition\n */\n height(operator, value) {\n return this.predicate(\"h\", operator, value);\n }\n\n /**\n * @function Condition#width\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Condition} this condition\n */\n width(operator, value) {\n return this.predicate(\"w\", operator, value);\n }\n\n /**\n * @function Condition#aspectRatio\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Condition} this condition\n */\n aspectRatio(operator, value) {\n return this.predicate(\"ar\", operator, value);\n }\n\n /**\n * @function Condition#pages\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Condition} this condition\n */\n pageCount(operator, value) {\n return this.predicate(\"pc\", operator, value);\n }\n\n /**\n * @function Condition#faces\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Condition} this condition\n */\n faceCount(operator, value) {\n return this.predicate(\"fc\", operator, value);\n }\n\n};\n\nexport default Condition;\n","/**\n * Cloudinary configuration class\n * Depends on 'utils'\n */\n\nimport {\n defaults,\n assign,\n isString,\n isPlainObject,\n cloneDeep\n} from './util';\n\n/**\n * Defaults configuration.\n */\nvar Configuration = class Configuration {\n /**\n * Cloudinary configuration class\n * @constructor Configuration\n * @param {Object} options - configuration parameters\n */\n constructor(options = {}) {\n this.configuration = cloneDeep(options);\n defaults(this.configuration, DEFAULT_CONFIGURATION_PARAMS);\n }\n\n /**\n * Initialize the configuration.\n * The function first tries to retrieve the configuration form the environment and then from the document.\n * @function Configuration#init\n * @return {Configuration} returns this for chaining\n * @see fromDocument\n * @see fromEnvironment\n */\n init() {\n this.fromEnvironment();\n this.fromDocument();\n return this;\n }\n\n /**\n * Set a new configuration item\n * @function Configuration#set\n * @param {string} name - the name of the item to set\n * @param {*} value - the value to be set\n * @return {Configuration}\n *\n */\n set(name, value) {\n this.configuration[name] = value;\n return this;\n }\n\n /**\n * Get the value of a configuration item\n * @function Configuration#get\n * @param {string} name - the name of the item to set\n * @return {*} the configuration item\n */\n get(name) {\n return this.configuration[name];\n }\n\n merge(config = {}) {\n assign(this.configuration, cloneDeep(config));\n return this;\n }\n\n /**\n * Initialize Cloudinary from HTML meta tags.\n * @function Configuration#fromDocument\n * @return {Configuration}\n * @example \n *\n */\n fromDocument() {\n var el, i, len, meta_elements;\n meta_elements = typeof document !== \"undefined\" && document !== null ? document.querySelectorAll('meta[name^=\"cloudinary_\"]') : void 0;\n if (meta_elements) {\n for (i = 0, len = meta_elements.length; i < len; i++) {\n el = meta_elements[i];\n this.configuration[el.getAttribute('name').replace('cloudinary_', '')] = el.getAttribute('content');\n }\n }\n return this;\n }\n\n /**\n * Initialize Cloudinary from the `CLOUDINARY_URL` environment variable.\n *\n * This function will only run under Node.js environment.\n * @function Configuration#fromEnvironment\n * @requires Node.js\n */\n fromEnvironment() {\n var cloudinary_url, query, uri, uriRegex;\n if(typeof process !== \"undefined\" && process !== null && process.env && process.env.CLOUDINARY_URL ){\n cloudinary_url = process.env.CLOUDINARY_URL;\n uriRegex = /cloudinary:\\/\\/(?:(\\w+)(?:\\:([\\w-]+))?@)?([\\w\\.-]+)(?:\\/([^?]*))?(?:\\?(.+))?/;\n uri = uriRegex.exec(cloudinary_url);\n if (uri) {\n if (uri[3] != null) {\n this.configuration['cloud_name'] = uri[3];\n }\n if (uri[1] != null) {\n this.configuration['api_key'] = uri[1];\n }\n if (uri[2] != null) {\n this.configuration['api_secret'] = uri[2];\n }\n if (uri[4] != null) {\n this.configuration['private_cdn'] = uri[4] != null;\n }\n if (uri[4] != null) {\n this.configuration['secure_distribution'] = uri[4];\n }\n query = uri[5];\n if (query != null) {\n query.split('&').forEach(value=>{\n let [k, v] = value.split('=');\n if (v == null) {\n v = true;\n }\n this.configuration[k] = v;\n });\n }\n }\n }\n return this;\n }\n\n /**\n * Create or modify the Cloudinary client configuration\n *\n * Warning: `config()` returns the actual internal configuration object. modifying it will change the configuration.\n *\n * This is a backward compatibility method. For new code, use get(), merge() etc.\n * @function Configuration#config\n * @param {hash|string|boolean} new_config\n * @param {string} new_value\n * @returns {*} configuration, or value\n *\n * @see {@link fromEnvironment} for initialization using environment variables\n * @see {@link fromDocument} for initialization using HTML meta tags\n */\n config(new_config, new_value) {\n switch (false) {\n case new_value === void 0:\n this.set(new_config, new_value);\n return this.configuration;\n case !isString(new_config):\n return this.get(new_config);\n case !isPlainObject(new_config):\n this.merge(new_config);\n return this.configuration;\n default:\n // Backward compatibility - return the internal object\n return this.configuration;\n }\n }\n\n /**\n * Returns a copy of the configuration parameters\n * @function Configuration#toOptions\n * @returns {Object} a key:value collection of the configuration parameters\n */\n toOptions() {\n return cloneDeep(this.configuration);\n }\n\n};\n\nconst DEFAULT_CONFIGURATION_PARAMS = {\n responsive_class: 'cld-responsive',\n responsive_use_breakpoints: true,\n round_dpr: true,\n secure: (typeof window !== \"undefined\" && window !== null ? window.location ? window.location.protocol : void 0 : void 0) === 'https:'\n};\n\nConfiguration.CONFIG_PARAMS = [\n \"api_key\",\n \"api_secret\",\n \"callback\",\n \"cdn_subdomain\",\n \"cloud_name\",\n \"cname\",\n \"private_cdn\",\n \"protocol\",\n \"resource_type\",\n \"responsive\",\n \"responsive_class\",\n \"responsive_use_breakpoints\",\n \"responsive_width\",\n \"round_dpr\",\n \"secure\",\n \"secure_cdn_subdomain\",\n \"secure_distribution\",\n \"shorten\",\n \"type\",\n \"upload_preset\",\n \"url_suffix\",\n \"use_root_path\",\n \"version\"\n];\n\nexport default Configuration;\n","export var VERSION = \"2.5.0\";\n\nexport var CF_SHARED_CDN = \"d3jpl91pxevbkh.cloudfront.net\";\n\nexport var OLD_AKAMAI_SHARED_CDN = \"cloudinary-a.akamaihd.net\";\n\nexport var AKAMAI_SHARED_CDN = \"res.cloudinary.com\";\n\nexport var SHARED_CDN = AKAMAI_SHARED_CDN;\n\nexport var DEFAULT_POSTER_OPTIONS = {\n format: 'jpg',\n resource_type: 'video'\n};\n\nexport var DEFAULT_VIDEO_SOURCE_TYPES = ['webm', 'mp4', 'ogv'];\n\nexport var SEO_TYPES = {\n \"image/upload\": \"images\",\n \"image/private\": \"private_images\",\n \"image/authenticated\": \"authenticated_images\",\n \"raw/upload\": \"files\",\n \"video/upload\": \"videos\"\n};\n\n/**\n* @const {Object} Cloudinary.DEFAULT_IMAGE_PARAMS\n* Defaults values for image parameters.\n*\n* (Previously defined using option_consume() )\n */\nexport var DEFAULT_IMAGE_PARAMS = {\n resource_type: \"image\",\n transformation: [],\n type: 'upload'\n};\n\n/**\n* Defaults values for video parameters.\n* @const {Object} Cloudinary.DEFAULT_VIDEO_PARAMS\n* (Previously defined using option_consume() )\n */\nexport var DEFAULT_VIDEO_PARAMS = {\n fallback_content: '',\n resource_type: \"video\",\n source_transformation: {},\n source_types: DEFAULT_VIDEO_SOURCE_TYPES,\n transformation: [],\n type: 'upload'\n};\n","\n/**\n * CRC32 calculator\n * Depends on 'utf8_encode'\n */\nvar crc32;\n\nimport utf8_encode from './utf8_encode';\n\ncrc32 = function(str) {\n var crc, i, iTop, table, x, y;\n // http://kevin.vanzonneveld.net\n // + original by: Webtoolkit.info (http://www.webtoolkit.info/)\n // + improved by: T0bsn\n // + improved by: http://stackoverflow.com/questions/2647935/javascript-crc32-function-and-php-crc32-not-matching\n // - depends on: utf8_encode\n // * example 1: crc32('Kevin van Zonneveld');\n // * returns 1: 1249991249\n str = utf8_encode(str);\n table = '00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D';\n crc = 0;\n x = 0;\n y = 0;\n crc = crc ^ -1;\n i = 0;\n iTop = str.length;\n while (i < iTop) {\n y = (crc ^ str.charCodeAt(i)) & 0xFF;\n x = '0x' + table.substr(y * 9, 8);\n crc = crc >>> 8 ^ x;\n i++;\n }\n crc = crc ^ -1;\n //convert to unsigned 32-bit int if needed\n if (crc < 0) {\n crc += 4294967296;\n }\n return crc;\n};\n\nexport default crc32;\n","const Expression = class Expression {\n /**\n * Represents a transformation expression\n * @param {string} expressionStr - a expression in string format\n * @class Expression\n *\n */\n constructor(expressionStr) {\n /**\n * @protected\n * @inner Expression-expressions\n */\n this.expressions = [];\n if (expressionStr != null) {\n this.expressions.push(Expression.normalize(expressionStr));\n }\n }\n\n /**\n * Convenience constructor method\n * @function Expression.new\n */\n static new(expressionStr) {\n return new this(expressionStr);\n }\n\n /**\n * Normalize a string expression\n * @function Cloudinary#normalize\n * @param {string} expression a expression, e.g. \"w gt 100\", \"width_gt_100\", \"width > 100\"\n * @return {string} the normalized form of the value expression, e.g. \"w_gt_100\"\n */\n static normalize(expression) {\n var operators, pattern, replaceRE;\n if (expression == null) {\n return expression;\n }\n expression = String(expression);\n operators = \"\\\\|\\\\||>=|<=|&&|!=|>|=|<|/|-|\\\\+|\\\\*\";\n pattern = \"((\" + operators + \")(?=[ _])|\" + Object.keys(Expression.PREDEFINED_VARS).join(\"|\") + \")\";\n replaceRE = new RegExp(pattern, \"g\");\n expression = expression.replace(replaceRE, function (match) {\n return Expression.OPERATORS[match] || Expression.PREDEFINED_VARS[match];\n });\n return expression.replace(/[ _]+/g, '_');\n }\n\n /**\n * Serialize the expression\n * @return {string} the expression as a string\n */\n serialize() {\n return Expression.normalize(this.expressions.join(\"_\"));\n }\n\n toString() {\n return this.serialize();\n }\n\n /**\n * Get the parent transformation of this expression\n * @return Transformation\n */\n getParent() {\n return this.parent;\n }\n\n /**\n * Set the parent transformation of this expression\n * @param {Transformation} the parent transformation\n * @return {Expression} this expression\n */\n setParent(parent) {\n this.parent = parent;\n return this;\n }\n\n /**\n * Add a expression\n * @function Expression#predicate\n * @internal\n */\n predicate(name, operator, value) {\n if (Expression.OPERATORS[operator] != null) {\n operator = Expression.OPERATORS[operator];\n }\n this.expressions.push(`${name}_${operator}_${value}`);\n return this;\n }\n\n /**\n * @function Expression#and\n */\n and() {\n this.expressions.push(\"and\");\n return this;\n }\n\n /**\n * @function Expression#or\n */\n or() {\n this.expressions.push(\"or\");\n return this;\n }\n\n /**\n * Conclude expression\n * @function Expression#then\n * @return {Transformation} the transformation this expression is defined for\n */\n then() {\n return this.getParent().if(this.toString());\n }\n\n /**\n * @function Expression#height\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Expression} this expression\n */\n height(operator, value) {\n return this.predicate(\"h\", operator, value);\n }\n\n /**\n * @function Expression#width\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Expression} this expression\n */\n width(operator, value) {\n return this.predicate(\"w\", operator, value);\n }\n\n /**\n * @function Expression#aspectRatio\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Expression} this expression\n */\n aspectRatio(operator, value) {\n return this.predicate(\"ar\", operator, value);\n }\n\n /**\n * @function Expression#pages\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Expression} this expression\n */\n pageCount(operator, value) {\n return this.predicate(\"pc\", operator, value);\n }\n\n /**\n * @function Expression#faces\n * @param {string} operator the comparison operator (e.g. \"<\", \"lt\")\n * @param {string|number} value the right hand side value\n * @return {Expression} this expression\n */\n faceCount(operator, value) {\n return this.predicate(\"fc\", operator, value);\n }\n\n value(value) {\n this.expressions.push(value);\n return this;\n }\n\n /**\n */\n static variable(name, value) {\n return new this(name).value(value);\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"width\"\n * @function Expression.width\n */\n static width() {\n return new this(\"width\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"height\"\n * @function Expression.height\n */\n static height() {\n return new this(\"height\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"initialWidth\"\n * @function Expression.initialWidth\n */\n static initialWidth() {\n return new this(\"initialWidth\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"initialHeight\"\n * @function Expression.initialHeight\n */\n static initialHeight() {\n return new this(\"initialHeight\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"aspectRatio\"\n * @function Expression.aspectRatio\n */\n static aspectRatio() {\n return new this(\"aspectRatio\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"initialAspectRatio\"\n * @function Expression.initialAspectRatio\n */\n static initialAspectRatio() {\n return new this(\"initialAspectRatio\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"pageCount\"\n * @function Expression.pageCount\n */\n static pageCount() {\n return new this(\"pageCount\");\n }\n\n /**\n * @returns Expression new expression with the predefined variable \"faceCount\"\n * @function Expression.faceCount\n */\n static faceCount() {\n return new this(\"faceCount\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"currentPage\"\n * @function Expression.currentPage\n */\n static currentPage() {\n return new this(\"currentPage\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"tags\"\n * @function Expression.tags\n */\n static tags() {\n return new this(\"tags\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"pageX\"\n * @function Expression.pageX\n */\n static pageX() {\n return new this(\"pageX\");\n }\n\n /**\n * @returns Expression a new expression with the predefined variable \"pageY\"\n * @function Expression.pageY\n */\n static pageY() {\n return new this(\"pageY\");\n }\n\n};\n\n/**\n * @internal\n */\nExpression.OPERATORS = {\n \"=\": 'eq',\n \"!=\": 'ne',\n \"<\": 'lt',\n \">\": 'gt',\n \"<=\": 'lte',\n \">=\": 'gte',\n \"&&\": 'and',\n \"||\": 'or',\n \"*\": \"mul\",\n \"/\": \"div\",\n \"+\": \"add\",\n \"-\": \"sub\"\n};\n\n/**\n * @internal\n */\nExpression.PREDEFINED_VARS = {\n \"aspect_ratio\": \"ar\",\n \"aspectRatio\": \"ar\",\n \"current_page\": \"cp\",\n \"currentPage\": \"cp\",\n \"face_count\": \"fc\",\n \"faceCount\": \"fc\",\n \"height\": \"h\",\n \"initial_aspect_ratio\": \"iar\",\n \"initial_height\": \"ih\",\n \"initial_width\": \"iw\",\n \"initialAspectRatio\": \"iar\",\n \"initialHeight\": \"ih\",\n \"initialWidth\": \"iw\",\n \"page_count\": \"pc\",\n \"page_x\": \"px\",\n \"page_y\": \"py\",\n \"pageCount\": \"pc\",\n \"pageX\": \"px\",\n \"pageY\": \"py\",\n \"tags\": \"tags\",\n \"width\": \"w\"\n};\n\n/**\n * @internal\n */\nExpression.BOUNDRY = \"[ _]+\";\n\nexport default Expression;\n","import Layer from './layer';\n\nimport {\n base64EncodeURL,\n isString\n} from '../util';\n\nconst FetchLayer = class FetchLayer extends Layer {\n /**\n * @constructor FetchLayer\n * @param {Object|string} options - layer parameters or a url\n * @param {string} options.url the url of the image to fetch\n */\n constructor(options) {\n super(options);\n if (isString(options)) {\n this.options.url = options;\n } else if (options != null ? options.url : void 0) {\n this.options.url = options.url;\n }\n }\n\n url(url) {\n this.options.url = url;\n return this;\n }\n\n /**\n * generate the string representation of the layer\n * @function FetchLayer#toString\n * @return {String}\n */\n toString() {\n return `fetch:${base64EncodeURL(this.options.url)}`;\n }\n\n};\n\nexport default FetchLayer;\n","import {\n snakeCase,\n compact\n} from '../util';\n\nvar Layer = class Layer {\n /**\n * Layer\n * @constructor Layer\n * @param {Object} options - layer parameters\n */\n constructor(options) {\n this.options = {};\n if (options != null) {\n [\"resourceType\", \"type\", \"publicId\", \"format\"].forEach((key) => {\n var ref;\n return this.options[key] = (ref = options[key]) != null ? ref : options[snakeCase(key)];\n });\n }\n }\n\n resourceType(value) {\n this.options.resourceType = value;\n return this;\n }\n\n type(value) {\n this.options.type = value;\n return this;\n }\n\n publicId(value) {\n this.options.publicId = value;\n return this;\n }\n\n /**\n * Get the public ID, formatted for layer parameter\n * @function Layer#getPublicId\n * @return {String} public ID\n */\n getPublicId() {\n var ref;\n return (ref = this.options.publicId) != null ? ref.replace(/\\//g, \":\") : void 0;\n }\n\n /**\n * Get the public ID, with format if present\n * @function Layer#getFullPublicId\n * @return {String} public ID\n */\n getFullPublicId() {\n if (this.options.format != null) {\n return this.getPublicId() + \".\" + this.options.format;\n } else {\n return this.getPublicId();\n }\n }\n\n format(value) {\n this.options.format = value;\n return this;\n }\n\n /**\n * generate the string representation of the layer\n * @function Layer#toString\n */\n toString() {\n var components;\n components = [];\n if (this.options.publicId == null) {\n throw \"Must supply publicId\";\n }\n if (!(this.options.resourceType === \"image\")) {\n components.push(this.options.resourceType);\n }\n if (!(this.options.type === \"upload\")) {\n components.push(this.options.type);\n }\n components.push(this.getFullPublicId());\n return compact(components).join(\":\");\n }\n\n};\n\nexport default Layer;\n","import TextLayer from './textlayer';\n\nconst SubtitlesLayer = class SubtitlesLayer extends TextLayer {\n /**\n * Represent a subtitles layer\n * @constructor SubtitlesLayer\n * @param {Object} options - layer parameters\n */\n constructor(options) {\n super(options);\n this.options.resourceType = \"subtitles\";\n }\n\n};\nexport default SubtitlesLayer;\n","import Layer from './layer';\n\nimport {\n compact,\n isEmpty,\n isNumberLike,\n smartEscape,\n snakeCase\n} from '../util';\n\nvar TextLayer = class TextLayer extends Layer {\n /**\n * @constructor TextLayer\n * @param {Object} options - layer parameters\n */\n constructor(options) {\n var keys;\n super(options);\n keys = [\"resourceType\", \"resourceType\", \"fontFamily\", \"fontSize\", \"fontWeight\", \"fontStyle\", \"textDecoration\", \"textAlign\", \"stroke\", \"letterSpacing\", \"lineSpacing\", \"text\"];\n if (options != null) {\n keys.forEach((key) => {\n var ref;\n return this.options[key] = (ref = options[key]) != null ? ref : options[snakeCase(key)];\n });\n }\n this.options.resourceType = \"text\";\n }\n\n resourceType(resourceType) {\n throw \"Cannot modify resourceType for text layers\";\n }\n\n type(type) {\n throw \"Cannot modify type for text layers\";\n }\n\n format(format) {\n throw \"Cannot modify format for text layers\";\n }\n\n fontFamily(fontFamily) {\n this.options.fontFamily = fontFamily;\n return this;\n }\n\n fontSize(fontSize) {\n this.options.fontSize = fontSize;\n return this;\n }\n\n fontWeight(fontWeight) {\n this.options.fontWeight = fontWeight;\n return this;\n }\n\n fontStyle(fontStyle) {\n this.options.fontStyle = fontStyle;\n return this;\n }\n\n textDecoration(textDecoration) {\n this.options.textDecoration = textDecoration;\n return this;\n }\n\n textAlign(textAlign) {\n this.options.textAlign = textAlign;\n return this;\n }\n\n stroke(stroke) {\n this.options.stroke = stroke;\n return this;\n }\n\n letterSpacing(letterSpacing) {\n this.options.letterSpacing = letterSpacing;\n return this;\n }\n\n lineSpacing(lineSpacing) {\n this.options.lineSpacing = lineSpacing;\n return this;\n }\n\n text(text) {\n this.options.text = text;\n return this;\n }\n\n /**\n * generate the string representation of the layer\n * @function TextLayer#toString\n * @return {String}\n */\n toString() {\n var components, hasPublicId, hasStyle, publicId, re, res, start, style, text, textSource;\n style = this.textStyleIdentifier();\n if (this.options.publicId != null) {\n publicId = this.getFullPublicId();\n }\n if (this.options.text != null) {\n hasPublicId = !isEmpty(publicId);\n hasStyle = !isEmpty(style);\n if (hasPublicId && hasStyle || !hasPublicId && !hasStyle) {\n throw \"Must supply either style parameters or a public_id when providing text parameter in a text overlay/underlay, but not both!\";\n }\n re = /\\$\\([a-zA-Z]\\w*\\)/g;\n start = 0;\n // textSource = text.replace(new RegExp(\"[,/]\", 'g'), (c)-> \"%#{c.charCodeAt(0).toString(16).toUpperCase()}\")\n textSource = smartEscape(this.options.text, /[,\\/]/g);\n text = \"\";\n while (res = re.exec(textSource)) {\n text += smartEscape(textSource.slice(start, res.index));\n text += res[0];\n start = res.index + res[0].length;\n }\n text += smartEscape(textSource.slice(start));\n }\n components = [this.options.resourceType, style, publicId, text];\n return compact(components).join(\":\");\n }\n\n textStyleIdentifier() {\n var components;\n components = [];\n if (this.options.fontWeight !== \"normal\") {\n components.push(this.options.fontWeight);\n }\n if (this.options.fontStyle !== \"normal\") {\n components.push(this.options.fontStyle);\n }\n if (this.options.textDecoration !== \"none\") {\n components.push(this.options.textDecoration);\n }\n components.push(this.options.textAlign);\n if (this.options.stroke !== \"none\") {\n components.push(this.options.stroke);\n }\n if (!(isEmpty(this.options.letterSpacing) && !isNumberLike(this.options.letterSpacing))) {\n components.push(\"letter_spacing_\" + this.options.letterSpacing);\n }\n if (!(isEmpty(this.options.lineSpacing) && !isNumberLike(this.options.lineSpacing))) {\n components.push(\"line_spacing_\" + this.options.lineSpacing);\n }\n if (!isEmpty(compact(components))) {\n if (isEmpty(this.options.fontFamily)) {\n throw `Must supply fontFamily. ${components}`;\n }\n if (isEmpty(this.options.fontSize) && !isNumberLike(this.options.fontSize)) {\n throw \"Must supply fontSize.\";\n }\n }\n components.unshift(this.options.fontFamily, this.options.fontSize);\n components = compact(components).join(\"_\");\n return components;\n }\n\n};\n\nexport default TextLayer;\n"," /**\n * Creates the namespace for Cloudinary\n */\nexport {\n default as utf8_encode\n} from '../utf8_encode';\n\nexport {\n default as crc32\n} from '../crc32';\n\nimport * as Util from '../util';\n\nexport {\n Util\n};\n\nexport {\n default as Transformation\n} from '../transformation';\n\nexport {\n default as Condition\n} from '../condition';\n\nexport {\n default as Configuration\n} from '../configuration';\n\nexport {\n default as HtmlTag\n} from '../tags/htmltag';\n\nexport {\n default as ImageTag\n} from '../tags/imagetag';\n\nexport {\n default as PictureTag\n} from '../tags/picturetag';\n\nexport {\n default as VideoTag\n} from '../tags/videotag';\n\nexport {\n default as ClientHintsMetaTag\n} from '../tags/clienthintsmetatag';\n\nexport {\n default as Layer\n} from '../layer/layer';\n\nexport {\n default as FetchLayer\n} from '../layer/fetchlayer';\n\nexport {\n default as TextLayer\n} from '../layer/textlayer';\n\nexport {\n default as SubtitlesLayer\n} from '../layer/subtitleslayer';\n\nexport {\n default as Cloudinary\n} from '../cloudinary';\n","import Expression from './expression';\nimport Transformation from \"./transformation\";\n\nimport {\n allStrings,\n identity,\n isArray,\n isEmpty,\n isFunction,\n isPlainObject,\n isString,\n withCamelCaseKeys\n} from './util';\n\nimport Layer from './layer/layer';\n\nimport TextLayer from './layer/textlayer';\n\nimport SubtitlesLayer from './layer/subtitleslayer';\n\nimport FetchLayer from './layer/fetchlayer';\n\n/**\n * Transformation parameters\n * Depends on 'util', 'transformation'\n */\nvar Param = class Param {\n /**\n * Represents a single parameter\n * @class Param\n * @param {string} name - The name of the parameter in snake_case\n * @param {string} shortName - The name of the serialized form of the parameter.\n * If a value is not provided, the parameter will not be serialized.\n * @param {function} [process=Util.identity ] - Manipulate origValue when value is called\n * @ignore\n */\n constructor(name, shortName, process = identity) {\n /**\n * The name of the parameter in snake_case\n * @member {string} Param#name\n */\n this.name = name;\n /**\n * The name of the serialized form of the parameter\n * @member {string} Param#shortName\n */\n this.shortName = shortName;\n /**\n * Manipulate origValue when value is called\n * @member {function} Param#process\n */\n this.process = process;\n }\n\n /**\n * Set a (unprocessed) value for this parameter\n * @function Param#set\n * @param {*} origValue - the value of the parameter\n * @return {Param} self for chaining\n */\n set(origValue) {\n this.origValue = origValue;\n return this;\n }\n\n /**\n * Generate the serialized form of the parameter\n * @function Param#serialize\n * @return {string} the serialized form of the parameter\n */\n serialize() {\n var val, valid;\n val = this.value();\n valid = isArray(val) || isPlainObject(val) || isString(val) ? !isEmpty(val) : val != null;\n if ((this.shortName != null) && valid) {\n return `${this.shortName}_${val}`;\n } else {\n return '';\n }\n }\n\n /**\n * Return the processed value of the parameter\n * @function Param#value\n */\n value() {\n return this.process(this.origValue);\n }\n\n static norm_color(value) {\n return value != null ? value.replace(/^#/, 'rgb:') : void 0;\n }\n\n build_array(arg = []) {\n if (isArray(arg)) {\n return arg;\n } else {\n return [arg];\n }\n }\n\n /**\n * Covert value to video codec string.\n *\n * If the parameter is an object,\n * @param {(string|Object)} param - the video codec as either a String or a Hash\n * @return {string} the video codec string in the format codec:profile:level\n * @example\n * vc_[ :profile : [level]]\n * or\n { codec: 'h264', profile: 'basic', level: '3.1' }\n * @ignore\n */\n static process_video_params(param) {\n var video;\n switch (param.constructor) {\n case Object:\n video = \"\";\n if ('codec' in param) {\n video = param['codec'];\n if ('profile' in param) {\n video += \":\" + param['profile'];\n if ('level' in param) {\n video += \":\" + param['level'];\n }\n }\n }\n return video;\n case String:\n return param;\n default:\n return null;\n }\n }\n\n};\n\nvar ArrayParam = class ArrayParam extends Param {\n /**\n * A parameter that represents an array\n * @param {string} name - The name of the parameter in snake_case\n * @param {string} shortName - The name of the serialized form of the parameter\n * If a value is not provided, the parameter will not be serialized.\n * @param {string} [sep='.'] - The separator to use when joining the array elements together\n * @param {function} [process=Util.identity ] - Manipulate origValue when value is called\n * @class ArrayParam\n * @extends Param\n * @ignore\n */\n constructor(name, shortName, sep = '.', process) {\n super(name, shortName, process);\n this.sep = sep;\n }\n\n serialize() {\n if (this.shortName != null) {\n let arrayValue = this.value();\n if (isEmpty(arrayValue)) {\n return '';\n } else if (isString(arrayValue)) {\n return `${this.shortName}_${arrayValue}`;\n } else {\n let flat = arrayValue.map(t=>isFunction(t.serialize) ? t.serialize() : t).join(this.sep);\n return `${this.shortName}_${flat}`;\n }\n } else {\n return '';\n }\n }\n\n value() {\n if (isArray(this.origValue)) {\n return this.origValue.map(v=>this.process(v));\n } else {\n return this.process(this.origValue);\n }\n }\n\n set(origValue) {\n if ((origValue == null) || isArray(origValue)) {\n return super.set(origValue);\n } else {\n return super.set([origValue]);\n }\n }\n\n};\n\nvar TransformationParam = class TransformationParam extends Param {\n /**\n * A parameter that represents a transformation\n * @param {string} name - The name of the parameter in snake_case\n * @param {string} [shortName='t'] - The name of the serialized form of the parameter\n * @param {string} [sep='.'] - The separator to use when joining the array elements together\n * @param {function} [process=Util.identity ] - Manipulate origValue when value is called\n * @class TransformationParam\n * @extends Param\n * @ignore\n */\n constructor(name, shortName = \"t\", sep = '.', process) {\n super(name, shortName, process);\n this.sep = sep;\n }\n\n serialize() {\n if (isEmpty(this.value())) {\n return '';\n } else if (allStrings(this.value())) {\n let joined = this.value().join(this.sep);\n if (!isEmpty(joined)) {\n return `${this.shortName}_${joined}`;\n } else {\n return '';\n }\n } else {\n return this.value().map(t=>{\n if (isString(t) && !isEmpty(t)) {\n return `${this.shortName}_${t}`;\n } else if (isFunction(t.serialize)) {\n return t.serialize();\n } else if (isPlainObject(t) && !isEmpty(t)) {\n return new Transformation(t).serialize();\n } else {\n return undefined;\n }\n }).filter(t=>t);\n }\n }\n\n set(origValue1) {\n this.origValue = origValue1;\n if (isArray(this.origValue)) {\n return super.set(this.origValue);\n } else {\n return super.set([this.origValue]);\n }\n }\n\n};\n\nvar RangeParam = class RangeParam extends Param {\n /**\n * A parameter that represents a range\n * @param {string} name - The name of the parameter in snake_case\n * @param {string} shortName - The name of the serialized form of the parameter\n * If a value is not provided, the parameter will not be serialized.\n * @param {function} [process=norm_range_value ] - Manipulate origValue when value is called\n * @class RangeParam\n * @extends Param\n * @ignore\n */\n constructor(name, shortName, process) {\n super(name, shortName, process);\n this.process || (this.process = this.norm_range_value);\n }\n\n static norm_range_value(value) {\n var modifier, offset;\n offset = String(value).match(new RegExp('^' + offset_any_pattern + '$'));\n if (offset) {\n modifier = offset[5] != null ? 'p' : '';\n value = (offset[1] || offset[4]) + modifier;\n }\n return value;\n }\n\n};\n\nvar RawParam = class RawParam extends Param {\n constructor(name, shortName, process = identity) {\n super(name, shortName, process);\n }\n\n serialize() {\n return this.value();\n }\n\n};\n\nconst LAYER_KEYWORD_PARAMS = [\n [\"font_weight\", \"normal\"],\n [\"font_style\", \"normal\"],\n [\"text_decoration\", \"none\"],\n [\"text_align\", null],\n [\"stroke\", \"none\"],\n [\"letter_spacing\", null],\n [\"line_spacing\", null]\n];\n\nclass LayerParam extends Param {\n // Parse layer options\n // @return [string] layer transformation string\n // @private\n value() {\n let result;\n let layerOptions = this.origValue;\n if (isPlainObject(layerOptions)) {\n layerOptions = withCamelCaseKeys(layerOptions);\n if (layerOptions.resourceType === \"text\" || (layerOptions.text != null)) {\n result = new TextLayer(layerOptions).toString();\n } else if (layerOptions.resourceType === \"subtitles\") {\n result = new SubtitlesLayer(layerOptions).toString();\n } else if (layerOptions.resourceType === \"fetch\" || (layerOptions.url != null)) {\n result = new FetchLayer(layerOptions).toString();\n } else {\n result = new Layer(layerOptions).toString();\n }\n } else if (isString(layerOptions) && /^fetch:.+/.test(layerOptions)) {\n result = new FetchLayer(layerOptions.substr(6)).toString();\n } else {\n result = layerOptions;\n }\n return result;\n }\n\n textStyle(layer) {\n return (new TextLayer(layer)).textStyleIdentifier();\n }\n\n}\n\nvar ExpressionParam = class ExpressionParam extends Param {\n serialize() {\n return Expression.normalize(super.serialize());\n }\n\n};\n\nexport {\n Param,\n ArrayParam,\n TransformationParam,\n RangeParam,\n RawParam,\n LayerParam,\n ExpressionParam\n};\n","/**\n * Image Tag\n * Depends on 'tags/htmltag', 'cloudinary'\n */\n\nimport HtmlTag from './htmltag';\n\nimport {\n assign\n} from '../util';\n\nvar ClientHintsMetaTag = class ClientHintsMetaTag extends HtmlTag {\n /**\n * Creates an HTML (DOM) Meta tag that enables client-hints.\n * @constructor ClientHintsMetaTag\n * @extends HtmlTag\n */\n constructor(options) {\n super('meta', void 0, assign({\n \"http-equiv\": \"Accept-CH\",\n content: \"DPR, Viewport-Width, Width\"\n }, options));\n }\n\n /** @override */\n closeTag() {\n return \"\";\n }\n\n};\n\nexport default ClientHintsMetaTag;\n","/**\n * Generic HTML tag\n * Depends on 'transformation', 'util'\n */\n\nimport {\n isPlainObject,\n isFunction,\n getData,\n hasClass,\n merge\n} from '../util';\n\nimport Transformation from '../transformation';\n\nvar HtmlTag = class HtmlTag {\n /**\n * Represents an HTML (DOM) tag\n * @constructor HtmlTag\n * @param {string} name - the name of the tag\n * @param {string} [publicId]\n * @param {Object} options\n * @example tag = new HtmlTag( 'div', { 'width': 10})\n */\n constructor(name, publicId, options) {\n var transformation;\n this.name = name;\n this.publicId = publicId;\n if (options == null) {\n if (isPlainObject(publicId)) {\n options = publicId;\n this.publicId = void 0;\n } else {\n options = {};\n }\n }\n transformation = new Transformation(options);\n transformation.setParent(this);\n this.transformation = function () {\n return transformation;\n };\n }\n\n /**\n * Convenience constructor\n * Creates a new instance of an HTML (DOM) tag\n * @function HtmlTag.new\n * @param {string} name - the name of the tag\n * @param {string} [publicId]\n * @param {Object} options\n * @return {HtmlTag}\n * @example tag = HtmlTag.new( 'div', { 'width': 10})\n */\n static new(name, publicId, options) {\n return new this(name, publicId, options);\n }\n\n /**\n * combine key and value from the `attr` to generate an HTML tag attributes string.\n * `Transformation::toHtmlTagOptions` is used to filter out transformation and configuration keys.\n * @protected\n * @param {Object} attrs\n * @return {string} the attributes in the format `'key1=\"value1\" key2=\"value2\"'`\n * @ignore\n */\n htmlAttrs(attrs) {\n var key, pairs, value;\n return pairs = ((function () {\n var results;\n results = [];\n for (key in attrs) {\n value = attrs[key];\n if (value) {\n results.push(toAttribute(key, value));\n }\n }\n return results;\n })()).sort().join(' ');\n }\n\n /**\n * Get all options related to this tag.\n * @function HtmlTag#getOptions\n * @returns {Object} the options\n *\n */\n getOptions() {\n return this.transformation().toOptions();\n }\n\n /**\n * Get the value of option `name`\n * @function HtmlTag#getOption\n * @param {string} name - the name of the option\n * @returns {*} Returns the value of the option\n *\n */\n getOption(name) {\n return this.transformation().getValue(name);\n }\n\n /**\n * Get the attributes of the tag.\n * @function HtmlTag#attributes\n * @returns {Object} attributes\n */\n attributes() {\n // The attributes are be computed from the options every time this method is invoked.\n let htmlAttributes = this.transformation().toHtmlAttributes();\n Object.keys(htmlAttributes ).forEach(key => {\n if(isPlainObject(htmlAttributes[key])){\n delete htmlAttributes[key];\n }\n });\n if( htmlAttributes.attributes) {\n // Currently HTML attributes are defined both at the top level and under 'attributes'\n merge(htmlAttributes, htmlAttributes.attributes);\n delete htmlAttributes.attributes;\n }\n\n return htmlAttributes;\n }\n\n /**\n * Set a tag attribute named `name` to `value`\n * @function HtmlTag#setAttr\n * @param {string} name - the name of the attribute\n * @param {string} value - the value of the attribute\n */\n setAttr(name, value) {\n this.transformation().set(`html_${name}`, value);\n return this;\n }\n\n /**\n * Get the value of the tag attribute `name`\n * @function HtmlTag#getAttr\n * @param {string} name - the name of the attribute\n * @returns {*}\n */\n getAttr(name) {\n return this.attributes()[`html_${name}`] || this.attributes()[name];\n }\n\n /**\n * Remove the tag attributed named `name`\n * @function HtmlTag#removeAttr\n * @param {string} name - the name of the attribute\n * @returns {*}\n */\n removeAttr(name) {\n var ref;\n return (ref = this.transformation().remove(`html_${name}`)) != null ? ref : this.transformation().remove(name);\n }\n\n /**\n * @function HtmlTag#content\n * @protected\n * @ignore\n */\n content() {\n return \"\";\n }\n\n /**\n * @function HtmlTag#openTag\n * @protected\n * @ignore\n */\n openTag() {\n let tag = \"<\" + this.name;\n let htmlAttrs = this.htmlAttrs(this.attributes());\n if(htmlAttrs && htmlAttrs.length > 0) {\n tag += \" \" + htmlAttrs\n }\n return tag + \">\";\n }\n\n /**\n * @function HtmlTag#closeTag\n * @protected\n * @ignore\n */\n closeTag() {\n return `${this.name}>`;\n }\n\n /**\n * Generates an HTML representation of the tag.\n * @function HtmlTag#toHtml\n * @returns {string} Returns HTML in string format\n */\n toHtml() {\n return this.openTag() + this.content() + this.closeTag();\n }\n\n /**\n * Creates a DOM object representing the tag.\n * @function HtmlTag#toDOM\n * @returns {Element}\n */\n toDOM() {\n var element, name, ref, value;\n if (!isFunction(typeof document !== \"undefined\" && document !== null ? document.createElement : void 0)) {\n throw \"Can't create DOM if document is not present!\";\n }\n element = document.createElement(this.name);\n ref = this.attributes();\n for (name in ref) {\n value = ref[name];\n element.setAttribute(name, value);\n }\n return element;\n }\n\n static isResponsive(tag, responsiveClass) {\n var dataSrc;\n dataSrc = getData(tag, 'src-cache') || getData(tag, 'src');\n return hasClass(tag, responsiveClass) && /\\bw_auto\\b/.exec(dataSrc);\n }\n\n};\n\n/**\n * Represent the given key and value as an HTML attribute.\n * @function toAttribute\n * @protected\n * @param {string} key - attribute name\n * @param {*|boolean} value - the value of the attribute. If the value is boolean `true`, return the key only.\n * @returns {string} the attribute\n *\n */\nfunction toAttribute(key, value) {\n if (!value) {\n return void 0;\n } else if (value === true) {\n return key;\n } else {\n return `${key}=\"${value}\"`;\n }\n}\n\nexport default HtmlTag;\n","/**\n * Image Tag\n * Depends on 'tags/htmltag', 'cloudinary'\n */\n\nimport HtmlTag from './htmltag';\n\nimport url from '../url';\nimport {isEmpty, isString, merge} from \"../util\";\nimport {generateImageResponsiveAttributes} from \"../util/srcsetUtils\";\n\nvar ImageTag = class ImageTag extends HtmlTag {\n /**\n * Creates an HTML (DOM) Image tag using Cloudinary as the source.\n * @constructor ImageTag\n * @extends HtmlTag\n * @param {string} [publicId]\n * @param {Object} [options]\n */\n constructor(publicId, options = {}) {\n super(\"img\", publicId, options);\n }\n\n /** @override */\n closeTag() {\n return \"\";\n }\n\n /** @override */\n attributes() {\n var attr, options, srcAttribute;\n attr = super.attributes() || {};\n options = this.getOptions();\n let srcsetParam = this.getOption('srcset');\n let attributes = this.getOption('attributes') || {};\n\n let responsiveAttributes = {};\n if (isString(srcsetParam)) {\n responsiveAttributes.srcset = srcsetParam\n } else {\n responsiveAttributes = generateImageResponsiveAttributes(this.publicId, attributes, srcsetParam, options);\n }\n if(!isEmpty(responsiveAttributes)) {\n delete options.width;\n delete options.height;\n }\n\n merge(attr, responsiveAttributes);\n srcAttribute = options.responsive && !options.client_hints ? 'data-src' : 'src';\n if (attr[srcAttribute] == null) {\n attr[srcAttribute] = url(this.publicId, this.getOptions());\n }\n return attr;\n }\n\n};\n\nexport default ImageTag;\n","import HtmlTag from './htmltag';\nimport ImageTag from './imagetag';\nimport Transformation from '../transformation';\nimport SourceTag from './sourcetag';\nimport {extractUrlParams} from \"../util\";\n\nconst PictureTag = class PictureTag extends HtmlTag {\n constructor(publicId, options = {}, sources) {\n super('picture', publicId, options);\n this.widthList = sources;\n }\n\n /** @override */\n content() {\n return this.widthList.map(({min_width, max_width, transformation}) => {\n let options = this.getOptions();\n let sourceTransformation = new Transformation(options);\n sourceTransformation.chain().fromOptions(typeof transformation === 'string' ? {\n raw_transformation: transformation\n } : transformation);\n options = extractUrlParams(options);\n options.media = {min_width, max_width};\n options.transformation = sourceTransformation;\n return new SourceTag(this.publicId, options).toHtml();\n }).join('') +\n new ImageTag(this.publicId, this.getOptions()).toHtml();\n }\n\n /** @override */\n attributes() {\n\n let attr = super.attributes();\n delete attr.width;\n delete attr.height;\n return attr;\n }\n\n /** @override */\n closeTag() {\n return \"\" + this.name + \">\";\n }\n\n};\n\nexport default PictureTag;\n","/**\n * Image Tag\n * Depends on 'tags/htmltag', 'cloudinary'\n */\nimport {generateImageResponsiveAttributes, generateMediaAttr} from \"../util/srcsetUtils\";\nimport {merge} from '../util';\nimport url from '../url';\nimport HtmlTag from './htmltag';\n\nconst SourceTag = class SourceTag extends HtmlTag {\n /**\n * Creates an HTML (DOM) Image tag using Cloudinary as the source.\n * @constructor SourceTag\n * @extends HtmlTag\n * @param {string} [publicId]\n * @param {Object} [options]\n */\n constructor(publicId, options = {}) {\n super(\"source\", publicId, options);\n }\n\n /** @override */\n closeTag() {\n return \"\";\n }\n\n /** @override */\n attributes() {\n let srcsetParam = this.getOption('srcset');\n let attr = super.attributes() || {};\n let options = this.getOptions();\n merge(attr, generateImageResponsiveAttributes(this.publicId, attr, srcsetParam, options));\n if(!attr.srcset){\n attr.srcset = url(this.publicId, options);\n }\n if(!attr.media && options.media){\n attr.media = generateMediaAttr(options.media);\n }\n\n return attr;\n }\n\n};\n\nexport default SourceTag;\n","/**\n * Video Tag\n * Depends on 'tags/htmltag', 'util', 'cloudinary'\n */\n\nimport {\n DEFAULT_VIDEO_PARAMS,\n DEFAULT_IMAGE_PARAMS\n} from '../constants';\n\nimport url from '../url';\n\nimport {\n defaults,\n isPlainObject,\n contains,\n isArray\n} from '../util';\n\nimport HtmlTag from './htmltag';\n\n\nconst VIDEO_TAG_PARAMS = ['source_types', 'source_transformation', 'fallback_content', 'poster'];\n\nconst DEFAULT_VIDEO_SOURCE_TYPES = ['webm', 'mp4', 'ogv'];\n\nconst DEFAULT_POSTER_OPTIONS = {\n format: 'jpg',\n resource_type: 'video'\n};\n\nconst VideoTag = class VideoTag extends HtmlTag {\n /**\n * Creates an HTML (DOM) Video tag using Cloudinary as the source.\n * @constructor VideoTag\n * @extends HtmlTag\n * @param {string} [publicId]\n * @param {Object} [options]\n */\n constructor(publicId, options = {}) {\n options = defaults({}, options, DEFAULT_VIDEO_PARAMS);\n super(\"video\", publicId.replace(/\\.(mp4|ogv|webm)$/, ''), options);\n }\n\n /**\n * Set the transformation to apply on each source\n * @function VideoTag#setSourceTransformation\n * @param {Object} an object with pairs of source type and source transformation\n * @returns {VideoTag} Returns this instance for chaining purposes.\n */\n setSourceTransformation(value) {\n this.transformation().sourceTransformation(value);\n return this;\n }\n\n /**\n * Set the source types to include in the video tag\n * @function VideoTag#setSourceTypes\n * @param {Array} an array of source types\n * @returns {VideoTag} Returns this instance for chaining purposes.\n */\n setSourceTypes(value) {\n this.transformation().sourceTypes(value);\n return this;\n }\n\n /**\n * Set the poster to be used in the video tag\n * @function VideoTag#setPoster\n * @param {string|Object} value\n * - string: a URL to use for the poster\n * - Object: transformation parameters to apply to the poster. May optionally include a public_id to use instead of the video public_id.\n * @returns {VideoTag} Returns this instance for chaining purposes.\n */\n setPoster(value) {\n this.transformation().poster(value);\n return this;\n }\n\n /**\n * Set the content to use as fallback in the video tag\n * @function VideoTag#setFallbackContent\n * @param {string} value - the content to use, in HTML format\n * @returns {VideoTag} Returns this instance for chaining purposes.\n */\n setFallbackContent(value) {\n this.transformation().fallbackContent(value);\n return this;\n }\n\n content() {\n var fallback, innerTags, type, sourceTransformation, sourceTypes, src, srcType, transformation, videoType;\n sourceTypes = this.transformation().getValue('source_types');\n sourceTransformation = this.transformation().getValue('source_transformation');\n fallback = this.transformation().getValue('fallback_content');\n if (isArray(sourceTypes)) {\n let options = this.getOptions();\n innerTags = (function () {\n var i, len, results;\n results = [];\n for (i = 0, len = sourceTypes.length; i < len; i++) {\n srcType = sourceTypes[i];\n transformation = sourceTransformation[srcType] || {};\n src = url(`${this.publicId}`, defaults({}, transformation, {\n resource_type: 'video',\n format: srcType\n }, options));\n videoType = srcType === 'ogv' ? 'ogg' : srcType;\n type = 'video/' + videoType;\n results.push(`