text: (function () {
      var requirejs, require, define, __inflate;
      (function (e) {
          function a(e, t) {
              var n = t && t.split("/"),
                  i = r.map,
                  s = i && i["*"] || {}, o, u, a, f, l, c, h;
              if (e && e.charAt(0) === "." && t) {
                  n = n.slice(0, n.length - 1), e = n.concat(e.split("/"));
                  for (l = 0; h = e[l]; l++) if (h === ".") e.splice(l, 1), l -= 1;
                      else if (h === "..") {
                      if (l === 1 && (e[2] === ".." || e[0] === "..")) return !0;
                      l > 0 && (e.splice(l - 1, 2), l -= 2)
                  }
                  e = e.join("/")
              }
              if ((n || s) && i) {
                  o = e.split("/");
                  for (l = o.length; l > 0; l -= 1) {
                      u = o.slice(0, l).join("/");
                      if (n) for (c = n.length; c > 0; c -= 1) {
                              a = i[n.slice(0, c).join("/")];
                              if (a) {
                                  a = a[u];
                                  if (a) {
                                      f = a;
                                      break
                                  }
                              }
                      }
                      f = f || s[u];
                      if (f) {
                          o.splice(0, l, f), e = o.join("/");
                          break
                      }
                  }
              }
              return e
          }
          function f(t, n) {
              return function () {
                  return u.apply(e, s.call(arguments, 0).concat([t, n]))
              }
          }
          function l(e) {
              return function (t) {
                  return a(t, e)
              }
          }
          function c(e) {
              return function (n) {
                  t[e] = n
              }
          }
          function h(r) {
              if (n.hasOwnProperty(r)) {
                  var s = n[r];
                  delete n[r], i[r] = !0, o.apply(e, s)
              }
              if (!t.hasOwnProperty(r)) throw new Error("No " + r);
              return t[r]
          }
          function p(e, t) {
              var n, r, i = e.indexOf("!");
              return i !== -1 ? (n = a(e.slice(0, i), t), e = e.slice(i + 1), r = h(n), r && r.normalize ? e = r.normalize(e, l(t)) : e = a(e, t)) : e = a(e, t), {
                  f: n ? n + "!" + e : e,
                  n: e,
                  p: r
              }
          }
          function d(e) {
              return function () {
                  return r && r.config && r.config[e] || {}
              }
          }
          var t = {}, n = {}, r = {}, i = {}, s = [].slice,
              o, u;
          o = function (r, s, o, u) {
              var a = [],
                  l, v, m, g, y, b;
              u = u || r, typeof o == "string" && (o = __inflate(r, o));
              if (typeof o == "function") {
                  s = !s.length && o.length ? ["require", "exports", "module"] : s;
                  for (b = 0; b < s.length; b++) {
                      y = p(s[b], u), m = y.f;
                      if (m === "require") a[b] = f(r);
                      else if (m === "exports") a[b] = t[r] = {}, l = !0;
                      else if (m === "module") v = a[b] = {
                              id: r,
                              uri: "",
                              exports: t[r],
                              config: d(r)
                      };
                      else if (t.hasOwnProperty(m) || n.hasOwnProperty(m)) a[b] = h(m);
                      else if (y.p) y.p.load(y.n, f(u, !0), c(m), {}), a[b] = t[m];
                      else if (!i[m]) throw new Error(r + " missing " + m)
                  }
                  g = o.apply(t[r], a);
                  if (r) if (v && v.exports !== e && v.exports !== t[r]) t[r] = v.exports;
                      else if (g !== e || !l) t[r] = g
              } else r && (t[r] = o)
          }, requirejs = require = u = function (t, n, i, s) {
              return typeof t == "string" ? h(p(t, n).f) : (t.splice || (r = t, n.splice ? (t = n, n = i, i = null) : t = e), n = n || function () {}, s ? o(e, t, n, i) : setTimeout(function () {
                  o(e, t, n, i)
              }, 15), u)
          }, u.config = function (e) {
              return r = e, u
          }, define = function (e, t, r) {
              t.splice || (r = t, t = []), n[e] = [e, t, r]
          }, define.amd = {
              jQuery: !0
          }
      })(), __inflate = function (name, src) {
          var r;
          return eval(["r = function(a,b,c){", "\n};\n//@ sourceURL=" + name + "\n"].join(src)), r
      }, define("lib/api/events", ["require", "exports", "module"], function (e, t, n) {
          t.api = {
              LOAD_PROGRESS: "loadProgres",
              PLAY_PROGRESS: "playProgress",
              PLAY: "play",
              PAUSE: "pause",
              FINISH: "finish",
              SEEK: "seek",
              READY: "ready",
              OPEN_SHARE_PANEL: "sharePanelOpened",
              SHARE: "share",
              CLICK_DOWNLOAD: "downloadClicked",
              CLICK_BUY: "buyClicked"
          }, t.bridge = {
              REMOVE_LISTENER: "removeEventListener",
              ADD_LISTENER: "addEventListener"
          }
      }), define("lib/api/getters", ["require", "exports", "module"], function (e, t, n) {
          n.exports = {
              GET_VOLUME: "getVolume",
              GET_DURATION: "getDuration",
              GET_POSITION: "getPosition",
              GET_SOUNDS: "getSounds",
              GET_CURRENT_SOUND: "getCurrentSound",
              GET_CURRENT_SOUND_INDEX: "getCurrentSoundIndex",
              IS_PAUSED: "isPaused"
          }
      }), define("lib/api/setters", ["require", "exports", "module"], function (e, t, n) {
          n.exports = {
              PLAY: "play",
              PAUSE: "pause",
              TOGGLE: "toggle",
              SEEK_TO: "seekTo",
              SET_VOLUME: "setVolume",
              NEXT: "next",
              PREV: "prev",
              SKIP: "skip"
          }
      }), define("lib/api/api", ["require", "exports", "module", "lib/api/events", "lib/api/getters", "lib/api/setters"], function (e, t, n) {
          function m(e) {
              return !!(e === "" || e && e.charCodeAt && e.substr)
          }
          function g(e) {
              return !!(e && e.constructor && e.call && e.apply)
          }
          function y(e) {
              return !!e && e.nodeType === 1 && e.nodeName.toUpperCase() === "IFRAME"
          }
          function b(e) {
              var t = !1,
                  n;
              for (n in i) if (i.hasOwnProperty(n) && i[n] === e) {
                      t = !0;
                      break
                  }
              return t
          }
          function w(e) {
              var t, n, r;
              for (t = 0, n = f.length; t < n; t++) {
                  r = e(f[t]);
                  if (r === !1) break
              }
          }
          function E(e) {
              var t = "",
                  n, r, i;
              e.substr(0, 2) === "//" && (e = window.location.protocol + e), i = e.split("/");
              for (n = 0, r = i.length; n < r; n++) {
                  if (!(n < 3)) break;
                  t += i[n], n < 2 && (t += "/")
              }
              return t
          }
          function S(e) {
              return e.contentWindow ? e.contentWindow : e.contentDocument && "parentWindow" in e.contentDocument ? e.contentDocument.parentWindow : null
          }
          function x(e) {
              var t = [],
                  n;
              for (n in e) e.hasOwnProperty(n) && t.push(e[n]);
              return t
          }
          function T(e, t, n) {
              n.callbacks[e] = n.callbacks[e] || [], n.callbacks[e].push(t)
          }
          function N(e, t) {
              var n = !0,
                  r;
              return t.callbacks[e] = [], w(function (t) {
                  r = t.callbacks[e] || [];
                  if (r.length) return n = !1, !1
              }), n
          }
          function C(e, t, n) {
              var r = S(n),
                  i, s;
              if (!r.postMessage) return !1;
              i = n.getAttribute("src").split("?")[0], s = JSON.stringify({
                  method: e,
                  value: t
              }), i.substr(0, 2) === "//" && (i = window.location.protocol + i), i = i.replace(/http:\/\/(w|wt).soundcloud.com/, "https://$1.soundcloud.com"), r.postMessage(s, i)
          }
          function k(e) {
              var t;
              return w(function (n) {
                  if (n.instance === e) return t = n, !1
              }), t
          }
          function L(e) {
              var t;
              return w(function (n) {
                  if (S(n.element) === e) return t = n, !1
              }), t
          }
          function A(e, t) {
              return function (n) {
                  var r = g(n),
                      i = k(this),
                      s = !r && t ? n : null,
                      o = r && !t ? n : null;
                  return o && T(e, o, i), C(e, s, i.element), this
              }
          }
          function O(e, t, n) {
              var r, i, s;
              for (r = 0, i = t.length; r < i; r++) s = t[r], e[s] = A(s, n)
          }
          function M(e, t, n) {
              return e + "?url=" + t + "&" + _(n)
          }
          function _(e) {
              var t, n, r = [];
              for (t in e) e.hasOwnProperty(t) && (n = e[t], r.push(t + "=" + (t === "start_track" ? parseInt(n, 10) : n ? "true" : "false")));
              return r.join("&")
          }
          function D(e, t, n) {
              var r = e.callbacks[t] || [],
                  i, s;
              for (i = 0, s = r.length; i < s; i++) r[i].apply(e.instance, n);
              if (b(t) || t === o.READY) e.callbacks[t] = []
          }
          function P(e) {
              var t, n, r, i, s;
              try {
                  n = JSON.parse(e.data)
              } catch (u) {}
              t = L(e.source), r = n.method, i = n.value, r === o.READY && (t ? (t.isReady = !0, D(t, l), N(l, t)) : a.push(e.source)), r === o.PLAY && !t.playEventFired && (t.playEventFired = !0), r === o.PLAY_PROGRESS && !t.playEventFired && (t.playEventFired = !0, D(t, o.PLAY, [i]));
              if (!t || H(e.origin) !== H(t.domain)) return !1;
              s = [], i !== undefined && s.push(i), D(t, r, s)
          }
          // Hack
          function H(e) {
              return e.replace(h, "")
          }
          var r = e("lib/api/events"),
              i = e("lib/api/getters"),
              s = e("lib/api/setters"),
              o = r.api,
              u = r.bridge,
              a = [],
              f = [],
              l = "__LATE_BINDING__",
              c = "http://wt.soundcloud.dev:9200/",
              h = /^http(?:s?)/,
              p, d, v;
          window.scwtf = P;
          window.fixSoundcloudShit = function() {
              window.removeEventListener ? window.removeEventListener("message", window.scwtf, !1) : window.detachEvent("onmessage", window.scwtf);
          }
          window.unfixSoundcloudShit = function() {
              window.addEventListener ? window.addEventListener("message", scwtf, !1) : window.attachEvent("onmessage", scwtf);
          }
              n.exports = v = function (e, t, n) {
              m(e) && (e = document.getElementById(e));
              if (!y(e)) throw new Error("SC.Widget function should be given either iframe element or a string specifying id attribute of iframe element.");
              t && (n = n || {}, e.src = M(c, t, n));
              var r = L(S(e)),
                  i, s;
              return r && r.instance ? r.instance : (i = a.indexOf(S(e)) > -1, s = new p(e), f.push(new d(s, e, i)), s)
          }, v.Events = o, window.SC = window.SC || {}, window.SC.Widget = v, d = function (e, t, n) {
              this.instance = e, this.element = t, this.domain = E(t.getAttribute("src")), this.isReady = !! n, this.callbacks = {}
          }, p = function () {}, p.prototype = {
              constructor: p,
              load: function (e, t) {
                  if (!e) return;
                  t = t || {};
                  var n = this,
                      r = k(this),
                      i = r.element,
                      s = i.src,
                      a = s.substr(0, s.indexOf("?"));
                  r.isReady = !1, r.playEventFired = !1, i.onload = function () {
                      n.bind(o.READY, function () {
                          var e, n = r.callbacks;
                          for (e in n) n.hasOwnProperty(e) && e !== o.READY && C(u.ADD_LISTENER, e, r.element);
                          t.callback && t.callback()
                      })
                  }, i.src = M(a, e, t)
              },
              bind: function (e, t) {
                  var n = this,
                      r = k(this);
                  return r && r.element && (e === o.READY && r.isReady ? setTimeout(t, 1) : r.isReady ? (T(e, t, r), C(u.ADD_LISTENER, e, r.element)) : T(l, function () {
                      n.bind(e, t)
                  }, r)), this
              },
              unbind: function (e) {
                  var t = k(this),
                      n;
                  t && t.element && (n = N(e, t), e !== o.READY && n && C(u.REMOVE_LISTENER, e, t.element))
              }
          }, O(p.prototype, x(i)), O(p.prototype, x(s), !0)
      }), window.SC = window.SC || {}, window.SC.Widget = require("lib/api/api")
  })()
  