{"version":3,"file":"app.min.js","mappings":"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IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,KAAK,EAAI,KAAK,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,KAAK,EAAI,KAAK,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,KAAK,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,KAAK,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,KAAK,EAAI,KAAK,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,KAAK,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,KAAK,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,KAAK,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,EAAI,KAAK,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,KAAK,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,KAAK,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,EAAI,IAAI,IAAI,IAAI,IAAG3B,EAAE2B,OAAO,oBAAoB,CAAC,aAAY,SAASxC,GAAG,SAASY,EAAEb,EAAED,GAAGc,EAAEiC,UAAUF,YAAYC,KAAKxQ,KAAK,CAAC,OAAO4N,EAAE0C,OAAO9B,EAAEZ,EAAEqD,YAAYzC,EAAEK,UAAUwF,QAAQ,SAAS1G,GAAG,MAAM,IAAIkC,MAAM,yDAAyD,EAAErB,EAAEK,UAAU0K,MAAM,SAAS5L,EAAED,GAAG,MAAM,IAAImC,MAAM,uDAAuD,EAAErB,EAAEK,UAAU0C,KAAK,SAAS5D,EAAED,GAAG,EAAEc,EAAEK,UAAUmH,QAAQ,WAAW,EAAExH,EAAEK,UAAU2K,iBAAiB,SAAS7L,EAAED,GAAqB,OAAlBC,EAAEA,EAAEtG,GAAG,WAAkBsG,GAAGC,EAAEsD,cAAc,GAAG,MAAMxD,EAAErG,GAAGsG,GAAG,IAAID,EAAErG,GAAGiK,WAAW3D,GAAG,IAAIC,EAAEsD,cAAc,GAAGvD,CAAC,EAAEa,CAAC,IAAGC,EAAE2B,OAAO,sBAAsB,CAAC,SAAS,WAAW,WAAU,SAASzC,EAAEW,EAAEW,GAAG,SAASrB,EAAED,EAAED,GAAG1N,KAAKkT,SAASvF,EAAE3N,KAAKmT,QAAQzF,EAAEE,EAAE6C,UAAUF,YAAYC,KAAKxQ,KAAK,CAAC,OAAOsO,EAAEgC,OAAO1C,EAAED,GAAGC,EAAEiB,UAAUwF,QAAQ,SAAS1G,GAAG,IAAID,EAAE1N,KAAK2N,EAAEgD,MAAM9B,UAAUyF,IAAI9D,KAAKxQ,KAAKkT,SAAS,GAAGuG,iBAAiB,aAAY,SAAS9L,GAAG,OAAOD,EAAE1E,KAAKiG,EAAEtB,GAAG,IAAG,EAAEC,EAAEiB,UAAU6K,OAAO,SAAS1N,GAAG,IAAI2B,EAAEG,EAAE9N,KAAK,GAAGgM,EAAEwI,UAAS,EAAG,MAAMxI,EAAEuI,SAAS,WAAWvI,EAAEuI,QAAQoF,QAAQjI,cAAc,OAAO1F,EAAEuI,QAAQC,UAAS,OAAQxU,KAAKkT,SAAS7P,QAAQ,SAASA,QAAQ,UAAUrD,KAAKkT,SAASjQ,KAAK,YAAYjD,KAAKqU,SAAQ,SAAS1G,GAAG,IAAID,EAAE,IAAI1B,EAAE,CAACA,IAAI5E,KAAK2I,MAAM/D,EAAE2B,GAAG,IAAI,IAAIC,EAAE,EAAEA,EAAE5B,EAAEnM,OAAO+N,IAAI,CAAC,IAAIY,EAAExC,EAAE4B,GAAGvG,IAAI,IAAIqG,EAAEqF,QAAQvE,IAAId,EAAEtG,KAAKoH,EAAE,CAACV,EAAEoF,SAASjT,IAAIyN,GAAGI,EAAEoF,SAAS7P,QAAQ,SAASA,QAAQ,SAAS,KAAIsK,EAAE3B,EAAE3E,GAAGrH,KAAKkT,SAASjT,IAAI0N,GAAG3N,KAAKkT,SAAS7P,QAAQ,SAASA,QAAQ,UAAU,EAAEuK,EAAEiB,UAAU+K,SAAS,SAAS5N,GAAG,IAAI8B,EAAE9N,KAAK,GAAGA,KAAKkT,SAASjQ,KAAK,YAAY,CAAC,GAAG+I,EAAEwI,UAAS,EAAG,MAAMxI,EAAEuI,SAAS,WAAWvI,EAAEuI,QAAQoF,QAAQjI,cAAc,OAAO1F,EAAEuI,QAAQC,UAAS,OAAQxU,KAAKkT,SAAS7P,QAAQ,SAASA,QAAQ,UAAUrD,KAAKqU,SAAQ,SAAS1G,GAAG,IAAI,IAAID,EAAE,GAAGE,EAAE,EAAEA,EAAED,EAAE9N,OAAO+N,IAAI,CAAC,IAAIY,EAAEb,EAAEC,GAAGvG,GAAGmH,IAAIxC,EAAE3E,KAAK,IAAIqG,EAAEqF,QAAQvE,IAAId,EAAEtG,KAAKoH,EAAE,CAACV,EAAEoF,SAASjT,IAAIyN,GAAGI,EAAEoF,SAAS7P,QAAQ,SAASA,QAAQ,SAAS,GAAE,CAAC,EAAEuK,EAAEiB,UAAU0C,KAAK,SAAS5D,EAAED,GAAG,IAAIE,EAAE5N,MAAMA,KAAKkK,UAAUyD,GAAG5N,GAAG,UAAS,SAAS4N,GAAGC,EAAE8L,OAAO/L,EAAEnM,KAAK,IAAGmM,EAAE5N,GAAG,YAAW,SAAS4N,GAAGC,EAAEgM,SAASjM,EAAEnM,KAAK,GAAE,EAAEoM,EAAEiB,UAAUmH,QAAQ,WAAWhW,KAAKkT,SAASlU,KAAK,KAAK0E,MAAK,WAAW4K,EAAEqE,WAAW3S,KAAK,GAAE,EAAE4N,EAAEiB,UAAU0K,MAAM,SAAS7L,EAAEC,GAAG,IAAIC,EAAE,GAAGY,EAAExO,KAAKA,KAAKkT,SAAS9M,WAAW1C,MAAK,WAAW,IAAIiK,EAAE,WAAW3N,KAAK2Z,QAAQjI,eAAe,aAAa1R,KAAK2Z,QAAQjI,gBAAgB/D,EAAEsB,EAAEjP,MAAM2N,EAAEa,EAAExF,KAAK2E,GAAG,QAAQA,EAAEa,EAAEyG,QAAQvH,EAAEC,KAAKC,EAAExG,KAAKuG,GAAG,IAAGA,EAAE,CAACmG,QAAQlG,GAAG,EAAEA,EAAEiB,UAAUgL,WAAW,SAASlM,GAAG3N,KAAKkT,SAAS7M,OAAOsH,EAAE,EAAEC,EAAEiB,UAAUmF,OAAO,SAASrG,GAAG,IAAID,EAA6S,OAA3SC,EAAEvH,UAAUsH,EAAEjP,SAASqW,cAAc,aAAagF,MAAMnM,EAAE1O,UAAK,KAAUyO,EAAEjP,SAASqW,cAAc,WAAWiF,YAAYrM,EAAEqM,YAAYpM,EAAE1O,KAAKyO,EAAEsM,UAAUrM,EAAE1O,UAAK,IAAS0O,EAAEtG,KAAKqG,EAAEpO,MAAMqO,EAAEtG,IAAIsG,EAAEgH,WAAWjH,EAAEiH,UAAS,GAAIhH,EAAE6G,WAAW9G,EAAE8G,UAAS,GAAI7G,EAAE0H,QAAQ3H,EAAE2H,MAAM1H,EAAE0H,QAAO1H,EAAE3N,KAAKia,eAAetM,IAAY4G,QAAQ7G,EAAEY,EAAEmE,UAAU/E,EAAE,OAAOC,GAAGsB,EAAEvB,EAAE,EAAEE,EAAEiB,UAAU7F,KAAK,SAAS2E,GAAG,IAAID,EAAE,CAAC,EAAE,GAAG,OAAOA,EAAEY,EAAEoE,QAAQ/E,EAAE,GAAG,SAAS,OAAOD,EAAE,IAAIE,EAAED,EAAE,GAAG,GAAG,WAAWC,EAAE+L,QAAQjI,cAAchE,EAAE,CAACrG,GAAGsG,EAAE1N,MAAMhB,KAAK0O,EAAE1O,OAAO0V,SAAShH,EAAE1K,KAAK,YAAYuR,SAAS7G,EAAE1K,KAAK,YAAYoS,MAAM1H,EAAE1K,KAAK,eAAe,GAAG,aAAa2K,EAAE+L,QAAQjI,cAAc,CAAChE,EAAE,CAACzO,KAAK0O,EAAE1K,KAAK,SAASmD,SAAS,GAAGiP,MAAM1H,EAAE1K,KAAK,UAAU,IAAI,IAAIuL,EAAEb,EAAEvH,SAAS,UAAU4F,EAAE,GAAG8B,EAAE,EAAEA,EAAEU,EAAE3O,OAAOiO,IAAI,CAAC,IAAIC,EAAEkB,EAAET,EAAEV,IAAIC,EAAE/N,KAAKgJ,KAAK+E,GAAG/B,EAAE5E,KAAK2G,EAAE,CAACL,EAAEtH,SAAS4F,CAAC,CAAC,OAAO0B,EAAE1N,KAAKia,eAAevM,IAAI6G,QAAQ5G,EAAE,GAAGW,EAAEmE,UAAU9E,EAAE,GAAG,OAAOD,GAAGA,CAAC,EAAEE,EAAEiB,UAAUoL,eAAe,SAAStM,GAAoC,OAAjCA,IAAI/M,OAAO+M,KAAKA,EAAE,CAACtG,GAAGsG,EAAE1O,KAAK0O,IAAW,OAAOA,EAAEsB,EAAElK,OAAO,CAAC,EAAE,CAAC9F,KAAK,IAAI0O,IAAItG,KAAKsG,EAAEtG,GAAGsG,EAAEtG,GAAGiK,YAAY,MAAM3D,EAAE1O,OAAO0O,EAAE1O,KAAK0O,EAAE1O,KAAKqS,YAAY,MAAM3D,EAAEyH,WAAWzH,EAAEtG,IAAI,MAAMrH,KAAKkK,YAAYyD,EAAEyH,UAAUpV,KAAKwZ,iBAAiBxZ,KAAKkK,UAAUyD,IAAIsB,EAAElK,OAAO,CAAC,EAAE,CAACyP,UAAS,EAAGG,UAAS,GAAIhH,EAAE,EAAEC,EAAEiB,UAAUoG,QAAQ,SAAStH,EAAED,GAAG,OAAO1N,KAAKmT,QAAQjP,IAAI,UAAjBlE,CAA4B2N,EAAED,EAAE,EAAEE,CAAC,IAAGa,EAAE2B,OAAO,qBAAqB,CAAC,WAAW,WAAW,WAAU,SAASzC,EAAED,EAAEqB,GAAG,SAASP,EAAEb,EAAED,GAAG1N,KAAKka,eAAexM,EAAExJ,IAAI,SAAS,GAAGsK,EAAEiC,UAAUF,YAAYC,KAAKxQ,KAAK2N,EAAED,EAAE,CAAC,OAAOA,EAAE4C,OAAO9B,EAAEb,GAAGa,EAAEK,UAAU0C,KAAK,SAAS5D,EAAED,GAAGc,EAAEiC,UAAUc,KAAKf,KAAKxQ,KAAK2N,EAAED,GAAG1N,KAAK6Z,WAAW7Z,KAAKma,iBAAiBna,KAAKka,gBAAgB,EAAE1L,EAAEK,UAAU6K,OAAO,SAAS9L,GAAG,IAAID,EAAE3N,KAAKkT,SAASlU,KAAK,UAAU8T,QAAO,SAASnF,EAAED,GAAG,OAAOA,EAAEpO,OAAOsO,EAAEvG,GAAGiK,UAAU,IAAG,IAAI3D,EAAE9N,SAAS8N,EAAE3N,KAAKgU,OAAOpG,GAAG5N,KAAK6Z,WAAWlM,IAAIa,EAAEiC,UAAUiJ,OAAOlJ,KAAKxQ,KAAK4N,EAAE,EAAEY,EAAEK,UAAUsL,iBAAiB,SAASxM,GAAuG,IAApG,IAAID,EAAE1N,KAAK4N,EAAE5N,KAAKkT,SAASlU,KAAK,UAAUwP,EAAEZ,EAAE0G,KAAI,WAAW,OAAO5G,EAAE1E,KAAK+F,EAAE/O,OAAOqH,EAAE,IAAGnD,MAAM8H,EAAE,GAAW8B,EAAE,EAAEA,EAAEH,EAAE9N,OAAOiO,IAAI,CAAC,IAAIC,EAAEO,EAAEW,EAAEjP,KAAKia,eAAetM,EAAEG,IAAI,GAAGU,EAAEuE,QAAQ9D,EAAE5H,KAAK0G,EAAEH,EAAEkF,OAAO,SAASnF,GAAG,OAAO,WAAW,OAAOoB,EAAE/O,MAAMC,OAAO0N,EAAEtG,EAAE,CAAC,CAAzD,CAA2D4H,IAAIX,EAAEtO,KAAKgJ,KAAK+E,GAAGO,EAAES,EAAEhK,QAAO,EAAG,CAAC,EAAEkK,EAAEX,GAAGA,EAAEtO,KAAKgU,OAAO1F,GAAGP,EAAE5K,YAAYmL,KAAKA,EAAEtO,KAAKgU,OAAO/E,GAAGA,EAAE7I,WAAW6I,EAAEjP,KAAKma,iBAAiBlL,EAAE7I,UAAUkI,EAAEjI,OAAO4I,IAAIjD,EAAE5E,KAAKkH,GAAG,CAAC,OAAOtC,CAAC,EAAEwC,CAAC,IAAGC,EAAE2B,OAAO,oBAAoB,CAAC,UAAU,WAAW,WAAU,SAASzC,EAAED,EAAEI,GAAG,SAASF,EAAED,EAAED,GAAG1N,KAAKoa,YAAYpa,KAAKqa,eAAe3M,EAAExJ,IAAI,SAAS,MAAMlE,KAAKoa,YAAYE,iBAAiBta,KAAKsa,eAAeta,KAAKoa,YAAYE,gBAAgB1M,EAAE6C,UAAUF,YAAYC,KAAKxQ,KAAK2N,EAAED,EAAE,CAAC,OAAOA,EAAE4C,OAAO1C,EAAED,GAAGC,EAAEiB,UAAUwL,eAAe,SAAS1M,GAAG,IAAID,EAAE,CAAClM,KAAK,SAASmM,GAAG,OAAOG,EAAE/I,OAAO,CAAC,EAAE4I,EAAE,CAAC4M,EAAE5M,EAAEqL,MAAM,EAAEwB,UAAU,SAAS7M,EAAED,EAAEE,GAAe,OAAZD,EAAEG,EAAE9M,KAAK2M,IAAY9I,KAAK6I,GAAGC,EAAE8M,KAAK7M,GAAGD,CAAC,GAAG,OAAOG,EAAE/I,OAAO,CAAC,EAAE2I,EAAEC,GAAE,EAAG,EAAEC,EAAEiB,UAAUyL,eAAe,SAAS3M,GAAG,OAAOA,CAAC,EAAEC,EAAEiB,UAAU0K,MAAM,SAAS7L,EAAEE,GAAG,IAAIY,EAAExO,KAAK,MAAMA,KAAK0a,WAAW,mBAAmB1a,KAAK0a,SAASC,OAAO3a,KAAK0a,SAASC,QAAQ3a,KAAK0a,SAAS,MAAM,IAAI1O,EAAE8B,EAAE/I,OAAO,CAAC9D,KAAK,OAAOjB,KAAKoa,aAAa,SAASzM,IAAI,IAAIA,EAAE3B,EAAEwO,UAAUxO,GAAE,SAAS2B,GAAGA,EAAEa,EAAE8L,eAAe3M,EAAED,GAAGc,EAAE2E,QAAQjP,IAAI,UAAU/B,OAAOsF,SAASA,QAAQxF,QAAQ0L,GAAGA,EAAEmG,SAASnD,MAAMiK,QAAQjN,EAAEmG,UAAUrM,QAAQxF,MAAM,4FAA4F2L,EAAED,EAAE,IAAE,WAAW,WAAWA,IAAI,IAAIA,EAAE7L,QAAQ,MAAM6L,EAAE7L,SAAS0M,EAAEnL,QAAQ,kBAAkB,CAACqQ,QAAQ,gBAAgB,IAAGlF,EAAEkM,SAAS/M,CAAC,CAAC,mBAAmB3B,EAAE9K,MAAM8K,EAAE9K,IAAI8K,EAAE9K,IAAIsP,KAAKxQ,KAAKkT,SAASxF,IAAI,mBAAmB1B,EAAExK,OAAOwK,EAAExK,KAAKwK,EAAExK,KAAKgP,KAAKxQ,KAAKkT,SAASxF,IAAI1N,KAAKoa,YAAYS,OAAO,MAAMnN,EAAEsL,MAAMhZ,KAAK8a,eAAe3Y,OAAO4Y,aAAa/a,KAAK8a,eAAe9a,KAAK8a,cAAc3Y,OAAOqI,WAAWmD,EAAE3N,KAAKoa,YAAYS,QAAQlN,GAAG,EAAEC,CAAC,IAAGa,EAAE2B,OAAO,oBAAoB,CAAC,WAAU,SAAS1C,GAAG,SAASC,EAAEA,EAAED,EAAEE,GAAG,IAAIY,EAAEZ,EAAE1J,IAAI,QAAQ8H,EAAE4B,EAAE1J,IAAI,aAAiE,QAApD,IAAS8H,IAAIhM,KAAKgb,UAAUhP,QAA2B,KAAxBA,EAAE4B,EAAE1J,IAAI,gBAA6BlE,KAAKib,UAAUjP,GAAG2B,EAAE6C,KAAKxQ,KAAK0N,EAAEE,GAAG+C,MAAMiK,QAAQpM,GAAG,IAAI,IAAIV,EAAE,EAAEA,EAAEU,EAAE3O,OAAOiO,IAAI,CAAC,IAAIC,EAAES,EAAEV,GAAGC,EAAE/N,KAAKia,eAAelM,GAAGA,EAAE/N,KAAKgU,OAAOjG,GAAG/N,KAAKkT,SAAS7M,OAAO0H,EAAE,CAAC,CAAC,OAAOJ,EAAEkB,UAAU0K,MAAM,SAAS5L,EAAEoB,EAAEN,GAAG,IAAIiB,EAAE1P,KAAKA,KAAKkb,iBAAiB,MAAMnM,EAAEiK,MAAM,MAAMjK,EAAE3D,KAAKuC,EAAE6C,KAAKxQ,KAAK+O,GAAE,SAASpB,EAAED,EAAEE,GAAG,IAAI,IAAIY,EAAEd,EAAEoG,QAAQ9H,EAAE,EAAEA,EAAEwC,EAAE3O,OAAOmM,IAAI,CAAC,IAAI8B,EAAEU,EAAExC,GAAG+B,EAAE,MAAMD,EAAE1H,WAAWuH,EAAE,CAACmG,QAAQhG,EAAE1H,WAAU,GAAI,IAAI0H,EAAE7O,MAAM,IAAIkc,iBAAiBpM,EAAEiK,MAAM,IAAImC,eAAepN,EAAE,OAAOH,IAAIF,EAAElM,KAAKgN,OAAOC,EAAEf,GAAG,CAAC,GAAGE,EAAE,OAAM,EAAG,IAAIU,EAAEW,EAAES,EAAEsL,UAAUjM,GAAG,MAAME,KAAKX,EAAEoB,EAAEsE,OAAO/E,IAAIlQ,KAAK,mBAAmB,QAAQ2Q,EAAEmK,WAAW,CAACvL,IAAIoB,EAAEuL,UAAUzM,EAAES,IAAIvB,EAAEoG,QAAQtF,EAAEC,EAAEf,EAAE,IAAGC,EAAE6C,KAAKxQ,KAAK+O,EAAEN,EAAE,EAAEd,EAAEkB,UAAUmM,UAAU,SAASrN,EAAED,GAAG,OAAG,MAAMA,EAAEsL,MAAuC,MAAtBtL,EAAEA,EAAEsL,KAAKpZ,QAAd,KAAuC,CAACyH,GAAGqG,EAAEzO,KAAKyO,EAAE,EAAEC,EAAEkB,UAAUoM,UAAU,SAAStN,EAAED,EAAEE,GAAGF,EAAEkD,QAAQhD,EAAE,EAAED,EAAEkB,UAAUqM,eAAe,SAASvN,GAAG3N,KAAKkT,SAASlU,KAAK,4BAA4B0E,MAAK,WAAW1D,KAAKwU,UAAU9G,EAAE1N,MAAMyF,QAAQ,GAAE,EAAEkI,CAAC,IAAGc,EAAE2B,OAAO,yBAAyB,CAAC,WAAU,SAASrB,GAAG,SAASpB,EAAEA,EAAED,EAAEE,GAAG,IAAIY,EAAEZ,EAAE1J,IAAI,kBAAa,IAASsK,IAAIxO,KAAKob,UAAU5M,GAAGb,EAAE6C,KAAKxQ,KAAK0N,EAAEE,EAAE,CAAC,OAAOD,EAAEkB,UAAU0C,KAAK,SAAS5D,EAAED,EAAEE,GAAGD,EAAE6C,KAAKxQ,KAAK0N,EAAEE,GAAG5N,KAAKwY,QAAQ9K,EAAE2N,SAAS7C,SAAS9K,EAAE4N,UAAU9C,SAAS5K,EAAE5O,KAAK,yBAAyB,EAAE2O,EAAEkB,UAAU0K,MAAM,SAAS5L,EAAED,EAAEE,GAAG,IAAIY,EAAExO,KAAK0N,EAAEsL,KAAKtL,EAAEsL,MAAM,GAAG,IAAIhN,EAAEhM,KAAKob,UAAU1N,EAAE1N,KAAKmT,SAAQ,SAASxF,GAAG,IAAID,EAAEE,EAAEY,EAAEyL,eAAetM,GAAGa,EAAE0E,SAASlU,KAAK,UAAU8T,QAAO,WAAW,OAAO/D,EAAE/O,MAAMC,QAAQ2N,EAAEvG,EAAE,IAAGxH,UAAU6N,EAAEc,EAAEwF,OAAOpG,IAAI7O,KAAK,oBAAmB,GAAIyP,EAAE0M,iBAAiB1M,EAAEqL,WAAW,CAACnM,KAAKA,EAAEE,EAAEY,EAAEnL,QAAQ,SAAS,CAAC7B,KAAKkM,GAAG,IAAG1B,EAAEgN,OAAOtL,EAAEsL,OAAOhZ,KAAKwY,QAAQ3Y,SAASG,KAAKwY,QAAQvY,IAAI+L,EAAEgN,MAAMhZ,KAAKwY,QAAQnV,QAAQ,UAAUqK,EAAEsL,KAAKhN,EAAEgN,MAAMrL,EAAE6C,KAAKxQ,KAAK0N,EAAEE,EAAE,EAAED,EAAEkB,UAAUuM,UAAU,SAASzN,EAAED,EAAEE,EAAEY,GAAG,IAAI,IAAIxC,EAAE4B,EAAE1J,IAAI,oBAAoB,GAAG4J,EAAEJ,EAAEsL,KAAKjL,EAAE,EAAEO,EAAEtO,KAAKgb,WAAW,SAASrN,GAAG,MAAM,CAACtG,GAAGsG,EAAEqL,KAAK/Z,KAAK0O,EAAEqL,KAAK,EAAEjL,EAAED,EAAEjO,QAAQ,CAAC,IAAIoP,EAAEnB,EAAEC,IAAI,IAAI/B,EAAE+G,QAAQ9D,IAAIA,EAAEnB,EAAEyN,OAAO,EAAExN,GAAG,OAAOkB,EAAEX,EAAES,EAAEhK,OAAO,CAAC,EAAE2I,EAAE,CAACsL,KAAK/J,OAAOT,EAAES,GAAGnB,EAAEA,EAAEyN,OAAOxN,EAAE,IAAI,GAAGA,EAAE,GAAGA,KAAKA,GAAG,CAAC,MAAM,CAACiL,KAAKlL,EAAE,EAAEH,CAAC,IAAGc,EAAE2B,OAAO,kCAAkC,IAAG,WAAW,SAASzC,EAAEA,EAAED,EAAEE,GAAG5N,KAAKwb,mBAAmB5N,EAAE1J,IAAI,sBAAsByJ,EAAE6C,KAAKxQ,KAAK0N,EAAEE,EAAE,CAAC,OAAOD,EAAEkB,UAAU0K,MAAM,SAAS5L,EAAED,EAAEE,GAAGF,EAAEsL,KAAKtL,EAAEsL,MAAM,GAAGtL,EAAEsL,KAAKnZ,OAAOG,KAAKwb,mBAAmBxb,KAAKqD,QAAQ,kBAAkB,CAACqQ,QAAQ,gBAAgBC,KAAK,CAAC8H,QAAQzb,KAAKwb,mBAAmBhZ,MAAMkL,EAAEsL,KAAKrY,OAAO+M,KAAKC,EAAE6C,KAAKxQ,KAAK0N,EAAEE,EAAE,EAAED,CAAC,IAAGc,EAAE2B,OAAO,kCAAkC,IAAG,WAAW,SAASzC,EAAEA,EAAED,EAAEE,GAAG5N,KAAK0b,mBAAmB9N,EAAE1J,IAAI,sBAAsByJ,EAAE6C,KAAKxQ,KAAK0N,EAAEE,EAAE,CAAC,OAAOD,EAAEkB,UAAU0K,MAAM,SAAS5L,EAAED,EAAEE,GAAGF,EAAEsL,KAAKtL,EAAEsL,MAAM,GAAG,EAAEhZ,KAAK0b,oBAAoBhO,EAAEsL,KAAKnZ,OAAOG,KAAK0b,mBAAmB1b,KAAKqD,QAAQ,kBAAkB,CAACqQ,QAAQ,eAAeC,KAAK,CAACgI,QAAQ3b,KAAK0b,mBAAmBlZ,MAAMkL,EAAEsL,KAAKrY,OAAO+M,KAAKC,EAAE6C,KAAKxQ,KAAK0N,EAAEE,EAAE,EAAED,CAAC,IAAGc,EAAE2B,OAAO,sCAAsC,IAAG,WAAW,SAASzC,EAAEA,EAAED,EAAEE,GAAG5N,KAAK4b,uBAAuBhO,EAAE1J,IAAI,0BAA0ByJ,EAAE6C,KAAKxQ,KAAK0N,EAAEE,EAAE,CAAC,OAAOD,EAAEkB,UAAU0C,KAAK,SAAS5D,EAAED,EAAEE,GAAG,IAAIY,EAAExO,KAAK2N,EAAE6C,KAAKxQ,KAAK0N,EAAEE,GAAGF,EAAE3N,GAAG,UAAS,WAAWyO,EAAEqN,yBAAyB,GAAE,EAAElO,EAAEkB,UAAU0K,MAAM,SAAS5L,EAAED,EAAEE,GAAG,IAAIY,EAAExO,KAAKA,KAAK6b,yBAAwB,WAAWlO,EAAE6C,KAAKhC,EAAEd,EAAEE,EAAE,GAAE,EAAED,EAAEkB,UAAUgN,wBAAwB,SAASlO,EAAED,GAAG,IAAIE,EAAE5N,KAAKA,KAAKqU,SAAQ,SAAS1G,GAAGA,EAAE,MAAMA,EAAEA,EAAE9N,OAAO,EAAE,EAAE+N,EAAEgO,wBAAwBjO,GAAGC,EAAEgO,uBAAuBhO,EAAEvK,QAAQ,kBAAkB,CAACqQ,QAAQ,kBAAkBC,KAAK,CAACgI,QAAQ/N,EAAEgO,0BAA0BlO,GAAGA,GAAG,GAAE,EAAEC,CAAC,IAAGc,EAAE2B,OAAO,mBAAmB,CAAC,SAAS,YAAW,SAAS1C,EAAEC,GAAG,SAASC,EAAED,EAAED,GAAG1N,KAAKkT,SAASvF,EAAE3N,KAAKmT,QAAQzF,EAAEE,EAAE6C,UAAUF,YAAYC,KAAKxQ,KAAK,CAAC,OAAO2N,EAAE2C,OAAO1C,EAAED,EAAEsD,YAAYrD,EAAEiB,UAAUuE,OAAO,WAAW,IAAIzF,EAAED,EAAE,+EAA+E,OAAOC,EAAE5O,KAAK,MAAMiB,KAAKmT,QAAQjP,IAAI,QAAQlE,KAAK8b,UAAUnO,CAAC,EAAEC,EAAEiB,UAAU0C,KAAK,WAAW,EAAE3D,EAAEiB,UAAUrG,SAAS,SAASmF,EAAED,GAAG,EAAEE,EAAEiB,UAAUmH,QAAQ,WAAWhW,KAAK8b,UAAUrW,QAAQ,EAAEmI,CAAC,IAAGa,EAAE2B,OAAO,0BAA0B,CAAC,WAAU,SAAStC,GAAG,SAASH,IAAI,CAAC,OAAOA,EAAEkB,UAAUuE,OAAO,SAASzF,GAAG,IAAID,EAAEC,EAAE6C,KAAKxQ,MAAM4N,EAAE5N,KAAKmT,QAAQjP,IAAI,gBAAgBA,IAAI,UAAuP,OAA7OyJ,EAAEG,EAAE,yOAAgP9N,KAAKuY,iBAAiB5K,EAAE3N,KAAKwY,QAAQ7K,EAAE3O,KAAK,SAASgB,KAAKwY,QAAQvV,KAAK,eAAejD,KAAKmT,QAAQjP,IAAI,iBAAiBlE,KAAKwY,QAAQzZ,KAAK,aAAa6O,KAAKF,EAAEmH,QAAQlH,GAAGD,CAAC,EAAEC,EAAEkB,UAAU0C,KAAK,SAAS5D,EAAED,EAAEE,GAAG,IAAIY,EAAExO,KAAKgM,EAAE0B,EAAErG,GAAG,WAAWsG,EAAE6C,KAAKxQ,KAAK0N,EAAEE,GAAG5N,KAAKwY,QAAQzY,GAAG,WAAU,SAAS4N,GAAGa,EAAEnL,QAAQ,WAAWsK,GAAGa,EAAEmK,gBAAgBhL,EAAEiL,oBAAoB,IAAG5Y,KAAKwY,QAAQzY,GAAG,SAAQ,SAAS4N,GAAGG,EAAE9N,MAAM6X,IAAI,QAAQ,IAAG7X,KAAKwY,QAAQzY,GAAG,eAAc,SAAS4N,GAAGa,EAAEuK,aAAapL,EAAE,IAAGD,EAAE3N,GAAG,QAAO,WAAWyO,EAAEgK,QAAQzZ,KAAK,WAAW,GAAGyP,EAAEgK,QAAQzZ,KAAK,gBAAgBiN,GAAGwC,EAAEgK,QAAQnV,QAAQ,SAASlB,OAAOqI,YAAW,WAAWgE,EAAEgK,QAAQnV,QAAQ,QAAQ,GAAE,EAAE,IAAGqK,EAAE3N,GAAG,SAAQ,WAAWyO,EAAEgK,QAAQzZ,KAAK,YAAY,GAAGyP,EAAEgK,QAAQ/C,WAAW,iBAAiBjH,EAAEgK,QAAQ/C,WAAW,yBAAyBjH,EAAEgK,QAAQvY,IAAI,IAAIuO,EAAEgK,QAAQnV,QAAQ,OAAO,IAAGqK,EAAE3N,GAAG,SAAQ,WAAW2N,EAAE8H,UAAUhH,EAAEgK,QAAQnV,QAAQ,QAAQ,IAAGqK,EAAE3N,GAAG,eAAc,SAAS4N,GAAG,MAAMA,EAAE4L,MAAMP,MAAM,KAAKrL,EAAE4L,MAAMP,OAAOxK,EAAEuN,WAAWpO,GAAGa,EAAE+J,iBAAiB,GAAGjP,UAAU7D,OAAO,wBAAwB+I,EAAE+J,iBAAiB,GAAGjP,UAAUmL,IAAI,wBAAwB,IAAG/G,EAAE3N,GAAG,iBAAgB,SAAS4N,GAAGA,EAAEnM,KAAK4T,UAAU5G,EAAEgK,QAAQzZ,KAAK,wBAAwB4O,EAAEnM,KAAK4T,WAAW5G,EAAEgK,QAAQ/C,WAAW,wBAAwB,GAAE,EAAE9H,EAAEkB,UAAUkK,aAAa,SAASpL,GAAG,IAAID,EAAE1N,KAAK2Y,kBAAkBjL,EAAE1N,KAAKwY,QAAQvY,MAAMD,KAAKqD,QAAQ,QAAQ,CAAC2V,KAAKtL,KAAK1N,KAAK2Y,iBAAgB,CAAE,EAAEhL,EAAEkB,UAAUkN,WAAW,SAASpO,EAAED,GAAG,OAAM,CAAE,EAAEC,CAAC,IAAGc,EAAE2B,OAAO,mCAAmC,IAAG,WAAW,SAASzC,EAAEA,EAAED,EAAEE,EAAEY,GAAGxO,KAAKiY,YAAYjY,KAAKkY,qBAAqBtK,EAAE1J,IAAI,gBAAgByJ,EAAE6C,KAAKxQ,KAAK0N,EAAEE,EAAEY,EAAE,CAAC,OAAOb,EAAEkB,UAAUxI,OAAO,SAASsH,EAAED,GAAGA,EAAEoG,QAAQ9T,KAAKgc,kBAAkBtO,EAAEoG,SAASnG,EAAE6C,KAAKxQ,KAAK0N,EAAE,EAAEC,EAAEkB,UAAUqJ,qBAAqB,SAASvK,EAAED,GAAG,MAAS,iBAAiBA,EAAE,CAACrG,GAAG,GAAGpI,KAAKyO,GAAGA,CAAC,EAAEC,EAAEkB,UAAUmN,kBAAkB,SAASrO,EAAED,GAAG,IAAI,IAAIE,EAAEF,EAAE5G,MAAM,GAAG0H,EAAEd,EAAE7N,OAAO,EAAE,GAAG2O,EAAEA,IAAI,CAAC,IAAIxC,EAAE0B,EAAEc,GAAGxO,KAAKiY,YAAY5Q,KAAK2E,EAAE3E,IAAIuG,EAAEoC,OAAOxB,EAAE,EAAE,CAAC,OAAOZ,CAAC,EAAED,CAAC,IAAGc,EAAE2B,OAAO,kCAAkC,CAAC,WAAU,SAASxC,GAAG,SAASD,EAAEA,EAAED,EAAEE,EAAEY,GAAGxO,KAAKic,WAAW,CAAC,EAAEtO,EAAE6C,KAAKxQ,KAAK0N,EAAEE,EAAEY,GAAGxO,KAAKkc,aAAalc,KAAKmc,oBAAoBnc,KAAK4U,SAAQ,CAAE,CAAC,OAAOjH,EAAEkB,UAAUxI,OAAO,SAASsH,EAAED,GAAG1N,KAAKkc,aAAazW,SAASzF,KAAK4U,SAAQ,EAAGjH,EAAE6C,KAAKxQ,KAAK0N,GAAG1N,KAAKoc,gBAAgB1O,KAAK1N,KAAKqT,SAAShN,OAAOrG,KAAKkc,cAAclc,KAAKqc,mBAAmB,EAAE1O,EAAEkB,UAAU0C,KAAK,SAAS5D,EAAED,EAAEE,GAAG,IAAIY,EAAExO,KAAK2N,EAAE6C,KAAKxQ,KAAK0N,EAAEE,GAAGF,EAAE3N,GAAG,SAAQ,SAAS4N,GAAGa,EAAEyN,WAAWtO,EAAEa,EAAEoG,SAAQ,CAAE,IAAGlH,EAAE3N,GAAG,gBAAe,SAAS4N,GAAGa,EAAEyN,WAAWtO,EAAEa,EAAEoG,SAAQ,CAAE,IAAG5U,KAAKqT,SAAStT,GAAG,SAASC,KAAKqc,iBAAiB9K,KAAKvR,MAAM,EAAE2N,EAAEkB,UAAUwN,iBAAiB,WAAW,IAAI1O,EAAEC,EAAErE,SAAS9K,SAAS6d,gBAAgBtc,KAAKkc,aAAa,KAAKlc,KAAK4U,SAASjH,IAAIA,EAAE3N,KAAKqT,SAAS3K,SAASC,IAAI3I,KAAKqT,SAAS5K,aAAY,GAAIzI,KAAKkc,aAAaxT,SAASC,IAAI3I,KAAKkc,aAAazT,aAAY,IAAKkF,EAAE,IAAI3N,KAAKuc,WAAW,EAAE5O,EAAEkB,UAAU0N,SAAS,WAAWvc,KAAK4U,SAAQ,EAAG,IAAIjH,EAAEC,EAAE7I,OAAO,CAAC,EAAE,CAACqG,KAAK,GAAGpL,KAAKic,YAAYtO,EAAEvC,OAAOpL,KAAKqD,QAAQ,eAAesK,EAAE,EAAEA,EAAEkB,UAAUuN,gBAAgB,SAASzO,EAAED,GAAG,OAAOA,EAAE8O,YAAY9O,EAAE8O,WAAWC,IAAI,EAAE9O,EAAEkB,UAAUsN,kBAAkB,WAAW,IAAIxO,EAAEC,EAAE,kHAAkHF,EAAE1N,KAAKmT,QAAQjP,IAAI,gBAAgBA,IAAI,eAAe,OAAOyJ,EAAEvK,KAAKsK,EAAE1N,KAAKic,aAAatO,CAAC,EAAEA,CAAC,IAAGc,EAAE2B,OAAO,8BAA8B,CAAC,SAAS,aAAY,SAAS3B,EAAEV,GAAG,SAASJ,EAAEA,EAAED,EAAEE,GAAG5N,KAAK0c,gBAAgBjO,EAAEb,EAAE1J,IAAI,mBAAmBzF,SAASmZ,MAAMjK,EAAE6C,KAAKxQ,KAAK0N,EAAEE,EAAE,CAAC,OAAOD,EAAEkB,UAAU0C,KAAK,SAAS5D,EAAED,EAAEE,GAAG,IAAIY,EAAExO,KAAK2N,EAAE6C,KAAKxQ,KAAK0N,EAAEE,GAAGF,EAAE3N,GAAG,QAAO,WAAWyO,EAAEmO,gBAAgBnO,EAAEoO,0BAA0BlP,GAAGc,EAAEqO,6BAA6BnP,EAAE,IAAGA,EAAE3N,GAAG,SAAQ,WAAWyO,EAAEsO,gBAAgBtO,EAAEuO,0BAA0BrP,EAAE,IAAG1N,KAAKgd,mBAAmBjd,GAAG,aAAY,SAAS4N,GAAGA,EAAEmI,iBAAiB,GAAE,EAAEnI,EAAEkB,UAAUmH,QAAQ,SAASrI,GAAGA,EAAE6C,KAAKxQ,MAAMA,KAAKgd,mBAAmBvX,QAAQ,EAAEkI,EAAEkB,UAAUrG,SAAS,SAASmF,EAAED,EAAEE,GAAGF,EAAE3O,KAAK,QAAQ6O,EAAE7O,KAAK,UAAU2O,EAAE,GAAGpE,UAAU7D,OAAO,WAAWiI,EAAE,GAAGpE,UAAUmL,IAAI,2BAA2B/G,EAAEuL,IAAI,CAACzQ,SAAS,WAAWG,KAAK,SAAS3I,KAAKid,WAAWrP,CAAC,EAAED,EAAEkB,UAAUuE,OAAO,SAASzF,GAAG,IAAID,EAAEe,EAAE,iBAAgC,OAAfd,EAAEA,EAAE6C,KAAKxQ,MAAa0N,EAAErH,OAAOsH,GAAG3N,KAAKgd,mBAAmBtP,CAAC,EAAEC,EAAEkB,UAAUiO,cAAc,SAASnP,GAAG3N,KAAKgd,mBAAmBE,QAAQ,EAAEvP,EAAEkB,UAAUgO,6BAA6B,SAASlP,EAAED,GAAG,IAAIE,EAAE5N,KAAKmd,iCAAiCvP,EAAE5N,KAAK0N,EAAE3N,GAAG,eAAc,WAAW6N,EAAEwP,oBAAoBxP,EAAEyP,iBAAiB,IAAG3P,EAAE3N,GAAG,kBAAiB,WAAW6N,EAAEwP,oBAAoBxP,EAAEyP,iBAAiB,IAAG3P,EAAE3N,GAAG,mBAAkB,WAAW6N,EAAEwP,oBAAoBxP,EAAEyP,iBAAiB,IAAG3P,EAAE3N,GAAG,UAAS,WAAW6N,EAAEwP,oBAAoBxP,EAAEyP,iBAAiB,IAAG3P,EAAE3N,GAAG,YAAW,WAAW6N,EAAEwP,oBAAoBxP,EAAEyP,iBAAiB,IAAGrd,KAAKmd,gCAA+B,EAAG,EAAExP,EAAEkB,UAAU+N,0BAA0B,SAASjP,EAAED,GAAG,IAAIE,EAAE5N,KAAKwO,EAAE,kBAAkBd,EAAErG,GAAG2E,EAAE,kBAAkB0B,EAAErG,GAAGyG,EAAE,6BAA6BJ,EAAErG,IAAGqG,EAAE1N,KAAKid,WAAW5T,UAAUyJ,OAAO/E,EAAE4D,YAAajO,MAAK,WAAWqK,EAAE0E,UAAUzS,KAAK,0BAA0B,CAACgP,EAAEP,EAAEzO,MAAMsd,aAAalP,EAAEK,EAAEzO,MAAM6I,aAAa,IAAG6E,EAAE3N,GAAGyO,GAAE,SAASb,GAAG,IAAID,EAAEK,EAAE2E,QAAQ1S,KAAK,2BAA2ByO,EAAEzO,MAAM6I,UAAU6E,EAAEU,EAAE,IAAGK,EAAEtM,QAAQpC,GAAGyO,EAAE,IAAIxC,EAAE,IAAI8B,GAAE,SAASH,GAAGC,EAAEwP,oBAAoBxP,EAAEyP,iBAAiB,GAAE,EAAE1P,EAAEkB,UAAUkO,0BAA0B,SAASpP,EAAED,GAAG,IAAIE,EAAE,kBAAkBF,EAAErG,GAAGmH,EAAE,kBAAkBd,EAAErG,GAAGqG,EAAE,6BAA6BA,EAAErG,GAAGrH,KAAKid,WAAW5T,UAAUyJ,OAAO/E,EAAE4D,WAAWkG,IAAIjK,GAAGa,EAAEtM,QAAQ0V,IAAIjK,EAAE,IAAIY,EAAE,IAAId,EAAE,EAAEC,EAAEkB,UAAUuO,kBAAkB,WAAW,IAAIzP,EAAEc,EAAEtM,QAAQuL,EAAE1N,KAAK8b,UAAU,GAAGxS,UAAUC,SAAS,2BAA2BqE,EAAE5N,KAAK8b,UAAU,GAAGxS,UAAUC,SAAS,2BAA2BiF,EAAE,KAAKxC,EAAEhM,KAAKid,WAAWvU,SAASsD,EAAEuR,OAAOvR,EAAErD,IAAI3I,KAAKid,WAAWxU,aAAY,GAAI,IAAIqF,EAAE,CAAC9C,OAAOhL,KAAKid,WAAWxU,aAAY,IAAKqF,EAAEnF,IAAIqD,EAAErD,IAAImF,EAAEyP,OAAOvR,EAAErD,IAAImF,EAAE9C,OAAO,IAAI+C,EAAE/N,KAAK8b,UAAUrT,aAAY,GAAI6F,EAAEX,EAAE9E,YAAYoG,EAAEtB,EAAE9E,YAAY8E,EAAE3C,SAAS+D,EAAET,EAAEtC,EAAErD,IAAIoF,EAAEJ,EAAEsB,EAAEjD,EAAEuR,OAAOxP,EAAEO,EAAE,CAACkP,KAAKxR,EAAEwR,KAAK7U,IAAImF,EAAEyP,QAA+B,YAAvBtO,EAAEjP,KAAK0c,iBAA6BzD,IAAI,cAAchK,EAAEA,EAAEwO,gBAAgBzR,EAAE,CAACrD,IAAI,EAAE6U,KAAK,IAAI/O,EAAElF,SAAS9K,SAASmZ,KAAK3I,EAAE,KAAKA,EAAE,GAAGyO,eAAe1R,EAAEiD,EAAEvG,UAAU4F,EAAE3F,KAAKqD,EAAErD,IAAI2F,EAAEkP,MAAMxR,EAAEwR,KAAK9P,GAAGE,IAAIY,EAAE,SAASb,IAAIoB,GAAGrB,GAAGqB,GAAGpB,GAAGD,IAAIc,EAAE,SAASA,EAAE,SAAS,SAASA,GAAGd,GAAG,UAAUc,KAAKF,EAAE3F,IAAImF,EAAEnF,IAAIqD,EAAErD,IAAIoF,GAAG,MAAMS,IAAIxO,KAAK8b,UAAU,GAAGxS,UAAU7D,OAAO,2BAA2BzF,KAAK8b,UAAU,GAAGxS,UAAU7D,OAAO,2BAA2BzF,KAAK8b,UAAU,GAAGxS,UAAUmL,IAAI,qBAAqBjG,GAAGxO,KAAKid,WAAW,GAAG3T,UAAU7D,OAAO,4BAA4BzF,KAAKid,WAAW,GAAG3T,UAAU7D,OAAO,4BAA4BzF,KAAKid,WAAW,GAAG3T,UAAUmL,IAAI,sBAAsBjG,IAAIxO,KAAKgd,mBAAmB/D,IAAI3K,EAAE,EAAEX,EAAEkB,UAAUwO,gBAAgB,WAAW,IAAI1P,EAAE,CAAC1E,MAAMjJ,KAAKid,WAAWU,YAAW,GAAI,MAAM3d,KAAKmT,QAAQjP,IAAI,uBAAuByJ,EAAEiQ,SAASjQ,EAAE1E,MAAM0E,EAAEnF,SAAS,WAAWmF,EAAE1E,MAAM,QAAQjJ,KAAK8b,UAAU7C,IAAItL,EAAE,EAAEA,EAAEkB,UAAU8N,cAAc,SAAShP,GAAG3N,KAAKgd,mBAAmBa,SAAS7d,KAAK0c,iBAAiB1c,KAAKod,oBAAoBpd,KAAKqd,iBAAiB,EAAE1P,CAAC,IAAGc,EAAE2B,OAAO,2CAA2C,IAAG,WAAW,SAASzC,EAAEA,EAAED,EAAEE,EAAEY,GAAGxO,KAAK8d,wBAAwBlQ,EAAE1J,IAAI,2BAA2BlE,KAAK8d,wBAAwB,IAAI9d,KAAK8d,wBAAwB,KAAKnQ,EAAE6C,KAAKxQ,KAAK0N,EAAEE,EAAEY,EAAE,CAAC,OAAOb,EAAEkB,UAAUkN,WAAW,SAASpO,EAAED,GAAG,QAAQ,SAASC,EAAED,GAAG,IAAI,IAAIE,EAAE,EAAEY,EAAE,EAAEA,EAAEd,EAAE7N,OAAO2O,IAAI,CAAC,IAAIxC,EAAE0B,EAAEc,GAAGxC,EAAE5F,SAASwH,GAAGD,EAAE3B,EAAE5F,UAAUwH,GAAG,CAAC,OAAOA,CAAC,CAAjG,CAAmGF,EAAElM,KAAKsS,SAAS9T,KAAK8d,0BAA0BnQ,EAAE6C,KAAKxQ,KAAK0N,EAAE,EAAEC,CAAC,IAAGc,EAAE2B,OAAO,iCAAiC,CAAC,aAAY,SAAS5B,GAAG,SAASb,IAAI,CAAC,OAAOA,EAAEkB,UAAU0C,KAAK,SAAS5D,EAAED,EAAEE,GAAG,IAAIY,EAAExO,KAAK2N,EAAE6C,KAAKxQ,KAAK0N,EAAEE,GAAGF,EAAE3N,GAAG,SAAQ,SAAS4N,GAAGa,EAAEuP,qBAAqBpQ,EAAE,GAAE,EAAEA,EAAEkB,UAAUkP,qBAAqB,SAASpQ,EAAED,GAAG,GAAGA,GAAG,MAAMA,EAAEsQ,qBAAqB,CAAC,IAAIpQ,EAAEF,EAAEsQ,qBAAqB,GAAG,WAAWpQ,EAAEmD,OAAO,aAAanD,EAAEmD,MAAM,MAAM,EAACnD,EAAE5N,KAAK0V,yBAA0B7V,OAAO,GAAI,OAAO+N,EAAEY,EAAEkE,QAAQ9E,EAAE,GAAG,SAAS2G,SAAS3G,EAAE2G,QAAQC,UAAU,MAAM5G,EAAE2G,SAAS3G,EAAE4G,UAAUxU,KAAKqD,QAAQ,SAAS,CAAC7B,KAAKoM,GAAI,EAAED,CAAC,IAAGc,EAAE2B,OAAO,iCAAiC,IAAG,WAAW,SAASzC,IAAI,CAAC,OAAOA,EAAEkB,UAAU0C,KAAK,SAAS5D,EAAED,EAAEE,GAAG,IAAIY,EAAExO,KAAK2N,EAAE6C,KAAKxQ,KAAK0N,EAAEE,GAAGF,EAAE3N,GAAG,UAAS,SAAS4N,GAAGa,EAAEyP,iBAAiBtQ,EAAE,IAAGD,EAAE3N,GAAG,YAAW,SAAS4N,GAAGa,EAAEyP,iBAAiBtQ,EAAE,GAAE,EAAEA,EAAEkB,UAAUoP,iBAAiB,SAAStQ,EAAED,GAAG,IAAIE,EAAEF,EAAEqI,cAAcnI,IAAIA,EAAEsQ,SAAStQ,EAAEuQ,UAAUne,KAAKqD,QAAQ,QAAQ,CAAC0S,cAAcnI,EAAEoQ,qBAAqBtQ,GAAG,EAAEC,CAAC,IAAGc,EAAE2B,OAAO,+BAA+B,CAAC,aAAY,SAASxC,GAAG,SAASD,IAAI,CAAC,OAAOA,EAAEkB,UAAUuE,OAAO,SAASzF,GAAG,IAAID,EAAEC,EAAE6C,KAAKxQ,MAAiD,OAAO,KAAlD2N,EAAE3N,KAAKmT,QAAQjP,IAAI,qBAAqB,IAAgB6O,QAAQ,WAAWpF,EAAEA,EAAEtL,QAAQ,QAAQ,IAAIuL,EAAEiF,0BAA0BnF,EAAE,GAAG1N,KAAKkT,SAAS,KAAKxF,EAAEtO,SAASuO,GAAGD,CAAC,EAAEC,CAAC,IAAGc,EAAE2B,OAAO,uCAAuC,CAAC,aAAY,SAAS5B,GAAG,SAASb,IAAI,CAAC,OAAOA,EAAEkB,UAAUoF,mBAAmB,SAAStG,GAA4G,GAAG,GAAxGD,EAAE1N,KAAKqT,SAASrU,KAAK,iFAAuFa,OAAO,CAAC,IAAgB6N,EAAZE,EAAEF,EAAEwG,QAAyC,IAAjCxG,EAAEc,EAAEkE,QAAQ9E,EAAE,GAAG,QAAQ2G,UAAc7G,EAAE6E,cAAc,SAAS7E,EAAE6E,aAAa,oBAAoB,YAAY3E,EAAEvK,QAAQ,aAAa,CAACsK,EAAE6C,KAAKxQ,KAAK,EAAE2N,CAAC,IAAGc,EAAE2B,OAAO,kBAAkB,IAAG,WAAW,MAAM,CAACgO,aAAa,WAAW,MAAM,kCAAkC,EAAEC,aAAa,SAAS1Q,GAAG,IAAID,EAAEC,EAAEnL,MAAM3C,OAAO8N,EAAEgO,QAA0C,OAAlChO,EAAE,iBAAiBD,EAAE,aAAoB,GAAGA,IAAIC,GAAG,KAAKA,CAAC,EAAE2Q,cAAc,SAAS3Q,GAAG,MAAM,iBAAiBA,EAAE8N,QAAQ9N,EAAEnL,MAAM3C,QAAQ,qBAAqB,EAAE0e,YAAY,WAAW,MAAM,uBAAuB,EAAEC,gBAAgB,SAAS7Q,GAAG,IAAID,EAAE,uBAAuBC,EAAEgO,QAAQ,QAAQ,OAAO,GAAGhO,EAAEgO,UAAUjO,GAAG,KAAKA,CAAC,EAAE+Q,UAAU,WAAW,MAAM,kBAAkB,EAAEC,UAAU,WAAW,MAAM,YAAY,EAAEC,eAAe,WAAW,MAAM,kBAAkB,EAAEC,WAAW,WAAW,MAAM,aAAa,EAAEC,OAAO,WAAW,MAAM,QAAQ,EAAE,IAAGpQ,EAAE2B,OAAO,mBAAmB,CAAC,SAAS,YAAY,qBAAqB,uBAAuB,0BAA0B,yBAAyB,qBAAqB,2BAA2B,yBAAyB,UAAU,gBAAgB,eAAe,gBAAgB,eAAe,cAAc,cAAc,mBAAmB,4BAA4B,4BAA4B,gCAAgC,aAAa,oBAAoB,6BAA6B,4BAA4B,wBAAwB,qCAAqC,2BAA2B,2BAA2B,yBAAyB,iCAAiC,cAAa,SAASnB,EAAEnB,EAAEC,EAAEO,EAAES,EAAEN,EAAEiB,EAAE7B,EAAEG,EAAEC,EAAEC,EAAER,EAAES,EAAEC,EAAEC,EAAEE,EAAEqB,EAAEjR,EAAE0Q,EAAEL,EAAEW,EAAEmP,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAE7E,EAAE8E,EAAE1R,GAAG,SAASC,IAAI5N,KAAKsf,OAAO,CAAC,OAAO1R,EAAEiB,UAAUkB,MAAM,SAASpC,GAAG,IAAID,EAAE,OAAOC,EAAEsB,EAAElK,QAAO,EAAG,CAAC,EAAE/E,KAAKuf,SAAS5R,IAAI6R,cAAc,MAAM7R,EAAE3M,KAAK2M,EAAE6R,YAAYnR,EAAE,MAAMV,EAAEnM,KAAKmM,EAAE6R,YAAYpR,EAAET,EAAE6R,YAAYrR,EAAE,EAAER,EAAE6N,qBAAqB7N,EAAE6R,YAAYvR,EAAEyC,SAAS/C,EAAE6R,YAAY7gB,IAAI,EAAEgP,EAAE+N,qBAAqB/N,EAAE6R,YAAYvR,EAAEyC,SAAS/C,EAAE6R,YAAYnQ,IAAI,EAAE1B,EAAEiO,yBAAyBjO,EAAE6R,YAAYvR,EAAEyC,SAAS/C,EAAE6R,YAAYxQ,IAAIrB,EAAE8R,OAAO9R,EAAE6R,YAAYvR,EAAEyC,SAAS/C,EAAE6R,YAAYjR,IAAI,MAAMZ,EAAE+R,iBAAiB,MAAM/R,EAAEyN,YAAYzN,EAAE6R,YAAYvR,EAAEyC,SAAS/C,EAAE6R,YAAY5P,KAAK,MAAMjC,EAAEgS,iBAAiBhS,EAAEgS,eAAe7R,EAAE,MAAMH,EAAE3M,OAAO2M,EAAEgS,eAAe1R,EAAEyC,SAAS/C,EAAEgS,eAAeX,IAAI,MAAMrR,EAAEsK,cAActK,EAAEgS,eAAe1R,EAAEyC,SAAS/C,EAAEgS,eAAeZ,IAAIpR,EAAEiS,gBAAgBjS,EAAEgS,eAAe1R,EAAEyC,SAAS/C,EAAEgS,eAAeR,IAAIxR,EAAE8R,OAAO9R,EAAEgS,eAAe1R,EAAEyC,SAAS/C,EAAEgS,eAAeN,KAAK,MAAM1R,EAAEkS,kBAAkBlS,EAAEmS,SAASnS,EAAEkS,gBAAgBlQ,GAAGjC,EAAEO,EAAEyC,SAASf,EAAEmP,GAAGnR,EAAEkS,gBAAgBnS,GAAG,IAAIC,EAAEmQ,0BAA0BnQ,EAAEkS,gBAAgB5R,EAAEyC,SAAS/C,EAAEkS,gBAAgBX,IAAIvR,EAAEoS,gBAAgBpS,EAAEkS,gBAAgB5R,EAAEyC,SAAS/C,EAAEkS,gBAAgBT,IAAI,MAAMzR,EAAEqS,mBAAmBrS,EAAEkS,gBAAgB5R,EAAEyC,SAAS/C,EAAEkS,gBAAgBtF,IAAI5M,EAAEkS,gBAAgB5R,EAAEyC,SAAS/C,EAAEkS,gBAAgBZ,IAAI,MAAMtR,EAAEsS,mBAAmBtS,EAAEmS,SAASnS,EAAEsS,iBAAiB3R,EAAEX,EAAEsS,iBAAiBlS,EAAE,MAAMJ,EAAEsK,cAActK,EAAEsS,iBAAiBhS,EAAEyC,SAAS/C,EAAEsS,iBAAiBlR,IAAIpB,EAAEuS,aAAavS,EAAEsS,iBAAiBhS,EAAEyC,SAAS/C,EAAEsS,iBAAiBxR,IAAId,EAAEmS,WAAWnS,EAAEsS,iBAAiBhS,EAAEyC,SAAS/C,EAAEsS,iBAAiBvQ,IAAI,MAAM/B,EAAEwS,oBAAoBxS,EAAEsS,iBAAiBhS,EAAEyC,SAAS/C,EAAEsS,iBAAiBpS,IAAIF,EAAEsS,iBAAiBhS,EAAEyC,SAAS/C,EAAEsS,iBAAiBjS,IAAIL,EAAEyS,SAASpgB,KAAKqgB,iBAAiB1S,EAAEyS,UAAUzS,EAAEyS,SAAShZ,KAAK,MAAM,IAAI,IAAIwG,EAAE,GAAGY,EAAE,EAAEA,EAAEb,EAAEyS,SAASvgB,OAAO2O,IAAI,CAAC,IAAIxC,EAAE2B,EAAEyS,SAAS5R,IAAI,IAAIZ,EAAEmF,QAAQ/G,IAAI4B,EAAExG,KAAK4E,EAAE,CAAC,OAAO2B,EAAEyS,SAASxS,EAAED,EAAE2S,aAAatgB,KAAKugB,qBAAqB5S,EAAEyS,SAASzS,EAAE6S,OAAO7S,CAAC,EAAEC,EAAEiB,UAAUyQ,MAAM,WAAW,SAAShR,EAAEX,GAAG,OAAOA,EAAEtL,QAAQ,qBAAoB,SAASsL,GAAG,OAAOD,EAAEC,IAAIA,CAAC,GAAE,CAAC3N,KAAKuf,SAAS,CAACkB,gBAAgB,UAAUC,aAAa,MAAMX,eAAc,EAAGS,OAAM,EAAGG,mBAAkB,EAAGxO,aAAalE,EAAEkE,aAAaiO,SAAS,CAAC,EAAEQ,QAAQ,SAASjT,EAAED,EAAEE,GAAG,GAAG,MAAMF,EAAEsL,MAAM,KAAKtL,EAAEsL,KAAKpZ,OAAO,OAAOgO,EAAE,GAAGA,EAAExH,UAAU,EAAEwH,EAAExH,SAASvG,OAAO,CAAC,IAAI,IAAI2O,EAAES,EAAElK,QAAO,EAAG,CAAC,EAAE6I,GAAG5B,EAAE4B,EAAExH,SAASvG,OAAO,EAAE,GAAGmM,EAAEA,IAAI,MAAM2B,EAAED,EAAEE,EAAExH,SAAS4F,KAAKwC,EAAEpI,SAAS4J,OAAOhE,EAAE,GAAG,OAAO,EAAEwC,EAAEpI,SAASvG,OAAO2O,EAAEb,EAAED,EAAEc,EAAE,CAAC,IAAIV,EAAEQ,EAAEV,EAAE3O,MAAMkc,cAAcpN,EAAEO,EAAEZ,EAAEsL,MAAMmC,cAAc,OAAO,EAAErN,EAAEiF,QAAQhF,GAAGH,EAAE,IAAI,EAAE4N,mBAAmB,EAAEE,mBAAmB,EAAEE,uBAAuB,EAAEkC,wBAAwB,EAAE8B,eAAc,EAAGiB,mBAAkB,EAAGC,OAAO,SAASnT,GAAG,OAAOA,CAAC,EAAEoT,eAAe,SAASpT,GAAG,OAAOA,EAAE1O,IAAI,EAAE+hB,kBAAkB,SAASrT,GAAG,OAAOA,EAAE1O,IAAI,EAAEgiB,MAAM,UAAUhY,MAAM,UAAU,EAAE2E,EAAEiB,UAAUqS,iBAAiB,SAASvT,EAAED,GAAG,IAAIE,EAAED,EAAEyS,SAAS5R,EAAExO,KAAKuf,SAASa,SAASpU,EAAE0B,EAAEzK,KAAK,QAA8K,OAAtKyK,EAAEA,EAAEvN,QAAQ,UAAU8C,KAAK,QAAQyK,EAAEiD,MAAM9B,UAAUmE,OAAOxC,KAAKxQ,KAAKqgB,iBAAiBrU,GAAGhM,KAAKqgB,iBAAiBzS,GAAG5N,KAAKqgB,iBAAiB7R,GAAGxO,KAAKqgB,iBAAiB3S,IAAWC,EAAEyS,SAAS1S,EAAEC,CAAC,EAAEC,EAAEiB,UAAUwR,iBAAiB,SAAS1S,GAAG,IAAIA,EAAE,MAAM,GAAG,GAAGsB,EAAEkS,cAAcxT,GAAG,MAAM,GAAG,GAAGsB,EAAEmS,cAAczT,GAAG,MAAM,CAACA,GAAG,IAAI,IAAID,EAAEE,EAAE+C,MAAMiK,QAAQjN,GAAGA,EAAE,CAACA,GAAGa,EAAE,GAAGxC,EAAE,EAAEA,EAAE4B,EAAE/N,OAAOmM,IAAIwC,EAAEpH,KAAKwG,EAAE5B,IAAI,iBAAiB4B,EAAE5B,IAAI,EAAE4B,EAAE5B,GAAG+G,QAAQ,OAAOrF,EAAEE,EAAE5B,GAAGyF,MAAM,KAAK,GAAGjD,EAAEpH,KAAKsG,IAAI,OAAOc,CAAC,EAAEZ,EAAEiB,UAAU0R,qBAAqB,SAAS5S,EAAED,GAAG,IAAI,IAAIE,EAAE,IAAIM,EAAEM,EAAE,EAAEA,EAAEb,EAAE9N,OAAO2O,IAAI,CAAC,IAAIxC,EAAE,IAAIkC,EAAEJ,EAAEH,EAAEa,GAAG,GAAG,iBAAiBV,EAAE,IAAI9B,EAAEkC,EAAEoL,SAASxL,EAAE,CAAC,MAAMH,GAAG,IAAIG,EAAE9N,KAAKuf,SAASkB,gBAAgB3S,EAAE9B,EAAEkC,EAAEoL,SAASxL,EAAE,CAAC,MAAMH,GAAGD,GAAGvL,OAAOsF,SAASA,QAAQ4Z,MAAM5Z,QAAQ4Z,KAAK,mCAAmCvT,EAAE,wEAAwE,CAAC,MAAM9B,EAAEiD,EAAEmS,cAActT,GAAG,IAAII,EAAEJ,GAAGA,EAAEF,EAAE7I,OAAOiH,EAAE,CAAC,OAAO4B,CAAC,EAAEA,EAAEiB,UAAUyS,IAAI,SAAS3T,EAAED,GAAG,IAAIE,EAAE,CAAC,EAAEA,EAAEqB,EAAEsS,UAAU5T,IAAID,EAAEE,EAAEK,EAAEuD,aAAa5D,GAAGqB,EAAElK,QAAO,EAAG/E,KAAKuf,SAAS3R,EAAE,EAAE,IAAIA,CAAC,IAAGa,EAAE2B,OAAO,kBAAkB,CAAC,SAAS,aAAa,YAAW,SAASrB,EAAEnB,EAAEa,GAAG,SAASd,EAAEA,EAAED,GAAG1N,KAAKmT,QAAQxF,EAAE,MAAMD,GAAG1N,KAAKwhB,YAAY9T,GAAG,MAAMA,IAAI1N,KAAKmT,QAAQvF,EAAEsT,iBAAiBlhB,KAAKmT,QAAQzF,IAAI1N,KAAKmT,QAAQvF,EAAEmC,MAAM/P,KAAKmT,QAAQ,CAAC,OAAOxF,EAAEkB,UAAU2S,YAAY,SAAS7T,GAAG,IAAID,EAAE,CAAC,WAAW,MAAM1N,KAAKmT,QAAQ2M,WAAW9f,KAAKmT,QAAQ2M,SAASnS,EAAE1K,KAAK,aAAa,MAAMjD,KAAKmT,QAAQwB,WAAW3U,KAAKmT,QAAQwB,SAAShH,EAAE1K,KAAK,aAAa,MAAMjD,KAAKmT,QAAQuN,cAAc/S,EAAE1K,KAAK,kBAAkBjD,KAAKmT,QAAQuN,aAAa/S,EAAE1K,KAAK,iBAAiB,MAAMjD,KAAKmT,QAAQsO,MAAM9T,EAAE1K,KAAK,OAAOjD,KAAKmT,QAAQsO,IAAI9T,EAAE1K,KAAK,OAAO0K,EAAExN,QAAQ,SAAS8C,KAAK,OAAOjD,KAAKmT,QAAQsO,IAAI9T,EAAExN,QAAQ,SAAS8C,KAAK,OAAOjD,KAAKmT,QAAQsO,IAAI,OAAO9T,EAAE1K,KAAK,WAAWjD,KAAKmT,QAAQwB,UAAUhH,EAAE1K,KAAK,WAAWjD,KAAKmT,QAAQ2M,UAAUrR,EAAEiE,QAAQ/E,EAAE,GAAG,iBAAiB3N,KAAKmT,QAAQqN,OAAOre,OAAOsF,SAASA,QAAQ4Z,MAAM5Z,QAAQ4Z,KAAK,2KAA2K5S,EAAEgE,UAAU9E,EAAE,GAAG,OAAOc,EAAEiE,QAAQ/E,EAAE,GAAG,gBAAgBc,EAAEgE,UAAU9E,EAAE,GAAG,QAAO,IAAKc,EAAEiE,QAAQ/E,EAAE,GAAG,aAAa3N,KAAKmT,QAAQqN,OAAOre,OAAOsF,SAASA,QAAQ4Z,MAAM5Z,QAAQ4Z,KAAK,gKAAgK1T,EAAE5O,KAAK,YAAY0P,EAAEiE,QAAQ/E,EAAE,GAAG,YAAYc,EAAEgE,UAAU9E,EAAE,GAAG,WAAWc,EAAEiE,QAAQ/E,EAAE,GAAG,aAAa,IAAIC,EAAE,CAAC,EAAE,SAASY,EAAEb,EAAED,GAAG,OAAOA,EAAEyN,aAAa,CAAC,IAAI,IAAInP,EAAE,EAAEA,EAAE2B,EAAE,GAAG+T,WAAW7hB,OAAOmM,IAAI,CAAC,IAAI8B,EAAEH,EAAE,GAAG+T,WAAW1V,GAAGrI,KAAKoK,EAAE,QAAQD,EAAEyN,OAAO,EAAExN,EAAElO,SAASkO,IAAID,EAAEA,EAAE/J,UAAUgK,EAAElO,QAAQkO,EAAEU,EAAEiE,QAAQ/E,EAAE,GAAGG,GAAGF,EAAEE,EAAEzL,QAAQ,YAAYmM,IAAIT,EAAE,CAACgB,EAAEhN,GAAG4f,QAAQ,MAAM5S,EAAEhN,GAAG4f,OAAOpG,OAAO,EAAE,IAAI5N,EAAE,GAAGiU,UAAUhU,EAAEmB,EAAEhK,QAAO,EAAG,CAAC,EAAE4I,EAAE,GAAGiU,QAAQhU,IAAI,IAAIU,EAAEW,EAAEF,EAAEhK,QAAO,EAAG,CAAC,EAAE0J,EAAEiE,QAAQ/E,EAAE,IAAIC,GAAG,IAAIU,KAAKW,EAAER,EAAE+C,aAAavC,IAAI,EAAEvB,EAAEqF,QAAQzE,KAAKS,EAAEqS,cAAcphB,KAAKmT,QAAQ7E,IAAIS,EAAEhK,OAAO/E,KAAKmT,QAAQ7E,GAAGW,EAAEX,IAAItO,KAAKmT,QAAQ7E,GAAGW,EAAEX,IAAI,OAAOtO,IAAI,EAAE2N,EAAEkB,UAAU3K,IAAI,SAASyJ,GAAG,OAAO3N,KAAKmT,QAAQxF,EAAE,EAAEA,EAAEkB,UAAUyS,IAAI,SAAS3T,EAAED,GAAG1N,KAAKmT,QAAQxF,GAAGD,CAAC,EAAEC,CAAC,IAAGc,EAAE2B,OAAO,eAAe,CAAC,SAAS,YAAY,UAAU,WAAU,SAAS1C,EAAE1B,EAAE8B,EAAEU,GAAG,IAAIT,EAAE,SAASJ,EAAED,GAAG,MAAMI,EAAE4E,QAAQ/E,EAAE,GAAG,YAAYG,EAAE4E,QAAQ/E,EAAE,GAAG,WAAWqI,UAAUhW,KAAKkT,SAASvF,EAAE3N,KAAKqH,GAAGrH,KAAK6hB,YAAYlU,GAAGD,EAAEA,GAAG,CAAC,EAAE1N,KAAKmT,QAAQ,IAAInH,EAAE0B,EAAEC,GAAGI,EAAE0C,UAAUF,YAAYC,KAAKxQ,MAAM,IAAI4N,EAAED,EAAE5O,KAAK,aAAa,EAAE+O,EAAE2E,UAAU9E,EAAE,GAAG,eAAeC,GAAGD,EAAE5O,KAAK,WAAW,MAAM2O,EAAE1N,KAAKmT,QAAQjP,IAAI,eAAelE,KAAKwf,YAAY,IAAI9R,EAAEC,EAAE3N,KAAKmT,SAASvF,EAAE5N,KAAKoT,SAASpT,KAAK8hB,gBAAgBlU,GAAGF,EAAE1N,KAAKmT,QAAQjP,IAAI,oBAAoBlE,KAAKsb,UAAU,IAAI5N,EAAEC,EAAE3N,KAAKmT,SAASnT,KAAKqX,WAAWrX,KAAKsb,UAAUlI,SAASpT,KAAKsb,UAAU9S,SAASxI,KAAKqX,WAAWzJ,GAAGF,EAAE1N,KAAKmT,QAAQjP,IAAI,mBAAmBlE,KAAKqb,SAAS,IAAI3N,EAAEC,EAAE3N,KAAKmT,SAASnT,KAAK8b,UAAU9b,KAAKqb,SAASjI,SAASpT,KAAKqb,SAAS7S,SAASxI,KAAK8b,UAAUlO,GAAGA,EAAE5N,KAAKmT,QAAQjP,IAAI,kBAAkBlE,KAAK8T,QAAQ,IAAIlG,EAAED,EAAE3N,KAAKmT,QAAQnT,KAAKwf,aAAaxf,KAAKqT,SAASrT,KAAK8T,QAAQV,SAASpT,KAAK8T,QAAQtL,SAASxI,KAAKqT,SAASrT,KAAK8b,WAAW,IAAItN,EAAExO,KAAKA,KAAK+hB,gBAAgB/hB,KAAKgiB,qBAAqBhiB,KAAKiiB,sBAAsBjiB,KAAKkiB,2BAA2BliB,KAAKmiB,0BAA0BniB,KAAKoiB,yBAAyBpiB,KAAKqiB,kBAAkBriB,KAAKwf,YAAYnL,SAAQ,SAAS1G,GAAGa,EAAEnL,QAAQ,mBAAmB,CAAC7B,KAAKmM,GAAG,IAAGA,EAAE,GAAGrE,UAAUmL,IAAI,6BAA6B9G,EAAE5O,KAAK,cAAc,QAAQiB,KAAKsiB,kBAAkBxU,EAAE2E,UAAU9E,EAAE,GAAG,UAAU3N,MAAM2N,EAAEnM,KAAK,UAAUxB,KAAK,EAAE,OAAO8N,EAAEwC,OAAOvC,EAAED,EAAEmD,YAAYlD,EAAEc,UAAUgT,YAAY,SAASlU,GAAG,MAAM,YAAY,MAAMA,EAAE5O,KAAK,MAAM4O,EAAE5O,KAAK,MAAM,MAAM4O,EAAE5O,KAAK,QAAQ4O,EAAE5O,KAAK,QAAQ,IAAI+O,EAAEoD,cAAc,GAAGpD,EAAEoD,cAAc,IAAI7O,QAAQ,kBAAkB,GAAG,EAAE0L,EAAEc,UAAUiT,gBAAgB,SAASnU,GAAGA,EAAE4U,YAAYviB,KAAKkT,UAAU,IAAIxF,EAAE1N,KAAKwiB,cAAcxiB,KAAKkT,SAASlT,KAAKmT,QAAQjP,IAAI,UAAU,MAAMwJ,GAAGC,EAAEsL,IAAI,QAAQvL,EAAE,EAAEK,EAAEc,UAAU2T,cAAc,SAAS7U,EAAED,GAAG,IAAIE,EAAE,gEAAgE,GAAG,WAAWF,EAAE,CAAC,IAAIc,EAAExO,KAAKwiB,cAAc7U,EAAE,SAAS,OAAO,MAAMa,EAAEA,EAAExO,KAAKwiB,cAAc7U,EAAE,UAAU,CAAC,GAAG,WAAWD,EAAsB,OAAnBc,EAAEb,EAAEgQ,YAAW,KAAc,EAAE,OAAOnP,EAAE,KAAK,GAAG,SAASd,EAAE,MAAM,iBAAiBA,EAAEA,EAAEvL,OAAOsgB,iBAAiB9U,EAAE,IAAI1E,MAAwB,GAAG,iBAArB0E,EAAEA,EAAE5O,KAAK,UAA+B,OAAO,KAAK,IAAI,IAAIiN,EAAE2B,EAAE8D,MAAM,KAAK3D,EAAE,EAAEC,EAAE/B,EAAEnM,OAAOiO,EAAEC,EAAED,GAAG,EAAE,CAAC,IAAIQ,EAAEtC,EAAE8B,GAAGzL,QAAQ,MAAM,IAAIvC,MAAM8N,GAAG,GAAG,OAAOU,GAAG,GAAGA,EAAEzO,OAAO,OAAOyO,EAAE,EAAE,CAAC,OAAO,IAAI,EAAEP,EAAEc,UAAUkT,cAAc,WAAW/hB,KAAKwf,YAAYjO,KAAKvR,KAAKA,KAAKid,YAAYjd,KAAKsb,UAAU/J,KAAKvR,KAAKA,KAAKid,YAAYjd,KAAKqb,SAAS9J,KAAKvR,KAAKA,KAAKid,YAAYjd,KAAK8T,QAAQvC,KAAKvR,KAAKA,KAAKid,WAAW,EAAElP,EAAEc,UAAUmT,mBAAmB,WAAW,IAAItU,EAAE1N,KAAKA,KAAKkT,SAASnT,GAAG,kBAAiB,WAAW2N,EAAE8R,YAAYnL,SAAQ,SAAS1G,GAAGD,EAAErK,QAAQ,mBAAmB,CAAC7B,KAAKmM,GAAG,GAAE,IAAG3N,KAAKkT,SAASnT,GAAG,iBAAgB,SAAS4N,GAAGD,EAAErK,QAAQ,QAAQsK,EAAE,IAAG3N,KAAK0iB,OAAO5U,EAAEyD,KAAKvR,KAAKsiB,gBAAgBtiB,MAAMA,KAAK2iB,OAAO7U,EAAEyD,KAAKvR,KAAK4iB,aAAa5iB,MAAMA,KAAK6iB,UAAU,IAAI1gB,OAAO2gB,kBAAiB,SAASnV,GAAGD,EAAEgV,SAAShV,EAAEiV,OAAOhV,EAAE,IAAG3N,KAAK6iB,UAAUE,QAAQ/iB,KAAKkT,SAAS,GAAG,CAACwO,YAAW,EAAGsB,WAAU,EAAGC,SAAQ,GAAI,EAAElV,EAAEc,UAAUoT,oBAAoB,WAAW,IAAIrU,EAAE5N,KAAKA,KAAKwf,YAAYzf,GAAG,KAAI,SAAS4N,EAAED,GAAGE,EAAEvK,QAAQsK,EAAED,EAAE,GAAE,EAAEK,EAAEc,UAAUqT,yBAAyB,WAAW,IAAItU,EAAE5N,KAAKwO,EAAE,CAAC,SAAS,SAASxO,KAAKsb,UAAUvb,GAAG,UAAS,WAAW6N,EAAEsV,gBAAgB,IAAGljB,KAAKsb,UAAUvb,GAAG,SAAQ,SAAS4N,GAAGC,EAAEnH,MAAMkH,EAAE,IAAG3N,KAAKsb,UAAUvb,GAAG,KAAI,SAAS4N,EAAED,IAAI,IAAIc,EAAEuE,QAAQpF,IAAIC,EAAEvK,QAAQsK,EAAED,EAAE,GAAE,EAAEK,EAAEc,UAAUsT,wBAAwB,WAAW,IAAIvU,EAAE5N,KAAKA,KAAKqb,SAAStb,GAAG,KAAI,SAAS4N,EAAED,GAAGE,EAAEvK,QAAQsK,EAAED,EAAE,GAAE,EAAEK,EAAEc,UAAUuT,uBAAuB,WAAW,IAAIxU,EAAE5N,KAAKA,KAAK8T,QAAQ/T,GAAG,KAAI,SAAS4N,EAAED,GAAGE,EAAEvK,QAAQsK,EAAED,EAAE,GAAE,EAAEK,EAAEc,UAAUwT,gBAAgB,WAAW,IAAIzU,EAAE5N,KAAKA,KAAKD,GAAG,QAAO,WAAW6N,EAAEqP,WAAW,GAAG3T,UAAUmL,IAAI,0BAA0B,IAAGzU,KAAKD,GAAG,SAAQ,WAAW6N,EAAEqP,WAAW,GAAG3T,UAAU7D,OAAO,0BAA0B,IAAGzF,KAAKD,GAAG,UAAS,WAAW6N,EAAEqP,WAAW,GAAG3T,UAAU7D,OAAO,8BAA8B,IAAGzF,KAAKD,GAAG,WAAU,WAAW6N,EAAEqP,WAAW,GAAG3T,UAAUmL,IAAI,8BAA8B,IAAGzU,KAAKD,GAAG,QAAO,WAAW6N,EAAEqP,WAAW,GAAG3T,UAAU7D,OAAO,2BAA2B,IAAGzF,KAAKD,GAAG,SAAQ,SAAS2N,GAAGE,EAAE4H,UAAU5H,EAAEvK,QAAQ,OAAO,CAAC,GAAGrD,KAAKwf,YAAYjG,MAAM7L,GAAE,SAASC,GAAGC,EAAEvK,QAAQ,cAAc,CAAC7B,KAAKmM,EAAE4L,MAAM7L,GAAG,GAAE,IAAG1N,KAAKD,GAAG,gBAAe,SAAS2N,GAAG1N,KAAKwf,YAAYjG,MAAM7L,GAAE,SAASC,GAAGC,EAAEvK,QAAQ,iBAAiB,CAAC7B,KAAKmM,EAAE4L,MAAM7L,GAAG,GAAE,IAAG1N,KAAKD,GAAG,YAAW,SAAS4N,GAAG,IAAID,EAAEC,EAAE4J,MAAM3J,EAAE4H,SAAS9H,IAAIc,EAAEiI,KAAK/I,IAAIc,EAAEwI,IAAIrJ,EAAEwV,QAAQvV,EAAEwV,MAAMzV,GAAGA,EAAEjN,kBAAkBgN,IAAIc,EAAE6H,OAAO3I,IAAIc,EAAE4H,KAAKxI,EAAEvK,QAAQ,iBAAiB,CAAC,GAAGsK,EAAEjN,kBAAkBgN,IAAIc,EAAEkI,OAAO/I,EAAEuQ,SAAStQ,EAAEvK,QAAQ,iBAAiB,CAAC,GAAGsK,EAAEjN,kBAAkBgN,IAAIc,EAAEwI,IAAIpJ,EAAEvK,QAAQ,mBAAmB,CAAC,GAAGsK,EAAEjN,kBAAkBgN,IAAIc,EAAE0I,OAAOtJ,EAAEvK,QAAQ,eAAe,CAAC,GAAGsK,EAAEjN,mBAAmBgN,IAAIc,EAAE6H,OAAO3I,IAAIc,EAAEkI,OAAOhJ,IAAIc,EAAE0I,MAAMvJ,EAAEwV,UAAUvV,EAAEyV,OAAO1V,EAAEjN,iBAAiB,GAAE,EAAEqN,EAAEc,UAAUyT,gBAAgB,WAAWtiB,KAAKmT,QAAQmO,IAAI,WAAWthB,KAAKkT,SAASjQ,KAAK,aAAajD,KAAK+X,cAAc/X,KAAKwV,UAAUxV,KAAKojB,QAAQpjB,KAAKqD,QAAQ,UAAU,CAAC,IAAIrD,KAAKqD,QAAQ,SAAS,CAAC,EAAE,EAAE0K,EAAEc,UAAUyU,kBAAkB,SAAS3V,GAAG,IAAID,EAAE1N,KAAK,GAAG2N,EAAE4V,YAAY,EAAE5V,EAAE4V,WAAW1jB,QAAQ,IAAI,IAAI+N,EAAE,EAAEA,EAAED,EAAE4V,WAAW1jB,OAAO+N,IAAI,GAAGD,EAAE4V,WAAW3V,GAAG4G,SAAS,OAAM,MAAO,CAAC,GAAG7G,EAAE6V,cAAc,EAAE7V,EAAE6V,aAAa3jB,OAAO,OAAM,EAAG,GAAG8Q,MAAMiK,QAAQjN,GAAG,OAAOA,EAAE8V,MAAK,SAAS9V,GAAG,OAAOD,EAAE4V,kBAAkB3V,EAAE,GAAE,CAAC,OAAM,CAAE,EAAEI,EAAEc,UAAU+T,aAAa,SAASjV,GAAOA,EAAE3N,KAAKsjB,kBAAkB3V,GAA7B,IAAgCD,EAAE1N,KAAK2N,GAAG3N,KAAKwf,YAAYnL,SAAQ,SAAS1G,GAAGD,EAAErK,QAAQ,mBAAmB,CAAC7B,KAAKmM,GAAG,GAAE,EAAEI,EAAEc,UAAUxL,QAAQ,SAASsK,EAAED,GAAG,IAAIE,EAAEG,EAAE0C,UAAUpN,QAAsG,QAAG,IAASqK,IAAIA,EAAE,CAAC,GAAGC,KAApHa,EAAE,CAAC6U,KAAK,UAAUD,MAAM,UAAU1J,OAAO,YAAYE,SAAS,cAActG,MAAM,aAAyC,CAAC,IAAItH,EAAEwC,EAAEb,GAAGa,EAAE,CAAC8J,WAAU,EAAG3U,KAAKgK,EAAEgG,KAAKjG,GAAG,GAAGE,EAAE4C,KAAKxQ,KAAKgM,EAAEwC,GAAGA,EAAE8J,UAAU,YAAY5K,EAAE4K,WAAU,EAAG,CAAC1K,EAAE4C,KAAKxQ,KAAK2N,EAAED,EAAE,EAAEK,EAAEc,UAAUqU,eAAe,WAAWljB,KAAK+X,eAAe/X,KAAKwV,SAASxV,KAAKojB,QAAQpjB,KAAKqjB,OAAO,EAAEtV,EAAEc,UAAUwU,KAAK,WAAWrjB,KAAKwV,UAAUxV,KAAK+X,cAAc/X,KAAKqD,QAAQ,QAAQ,CAAC,EAAE,EAAE0K,EAAEc,UAAUuU,MAAM,SAASzV,GAAG3N,KAAKwV,UAAUxV,KAAKqD,QAAQ,QAAQ,CAAC0S,cAAcpI,GAAG,EAAEI,EAAEc,UAAUiJ,UAAU,WAAW,OAAO9X,KAAK+X,YAAY,EAAEhK,EAAEc,UAAUkJ,WAAW,WAAW,OAAO/X,KAAKmT,QAAQjP,IAAI,WAAW,EAAE6J,EAAEc,UAAU2G,OAAO,WAAW,OAAOxV,KAAKid,WAAW,GAAG3T,UAAUC,SAAS,0BAA0B,EAAEwE,EAAEc,UAAU6U,SAAS,WAAW,OAAO1jB,KAAKid,WAAW,GAAG3T,UAAUC,SAAS,2BAA2B,EAAEwE,EAAEc,UAAUpI,MAAM,SAASkH,GAAG3N,KAAK0jB,aAAa1jB,KAAKid,WAAW,GAAG3T,UAAUmL,IAAI,4BAA4BzU,KAAKqD,QAAQ,QAAQ,CAAC,GAAG,EAAE0K,EAAEc,UAAU8U,OAAO,SAAShW,GAAG3N,KAAKmT,QAAQjP,IAAI,UAAU/B,OAAOsF,SAASA,QAAQ4Z,MAAM5Z,QAAQ4Z,KAAK,qJAAqJ1T,IAAIA,EAAE,MAAMA,GAAG,IAAIA,EAAE9N,OAAO,EAAC,GAAI8N,GAAG,GAAG3N,KAAKkT,SAASjQ,KAAK,WAAW0K,EAAE,EAAEI,EAAEc,UAAUrN,KAAK,WAAWxB,KAAKmT,QAAQjP,IAAI,UAAU,EAAE2M,UAAUhR,QAAQsC,OAAOsF,SAASA,QAAQ4Z,MAAM5Z,QAAQ4Z,KAAK,qIAAqI,IAAI3T,EAAE,GAAG,OAAO1N,KAAKwf,YAAYnL,SAAQ,SAAS1G,GAAGD,EAAEC,CAAC,IAAGD,CAAC,EAAEK,EAAEc,UAAU5O,IAAI,SAAS0N,GAAG,GAAG3N,KAAKmT,QAAQjP,IAAI,UAAU/B,OAAOsF,SAASA,QAAQ4Z,MAAM5Z,QAAQ4Z,KAAK,uIAAuI,MAAM1T,GAAG,IAAIA,EAAE9N,OAAO,OAAOG,KAAKkT,SAASjT,MAAM0N,EAAEA,EAAE,GAAGgD,MAAMiK,QAAQjN,KAAKA,EAAEA,EAAE2G,KAAI,SAAS3G,GAAG,OAAOA,EAAE2D,UAAU,KAAItR,KAAKkT,SAASjT,IAAI0N,GAAGtK,QAAQ,SAASA,QAAQ,SAAS,EAAE0K,EAAEc,UAAUmH,QAAQ,WAAWlI,EAAE6E,WAAW3S,KAAKid,WAAW,IAAIjd,KAAKid,WAAWxX,SAASzF,KAAK6iB,UAAUe,aAAa5jB,KAAK6iB,UAAU,KAAK7iB,KAAK0iB,OAAO,KAAK1iB,KAAK2iB,OAAO,KAAK3iB,KAAKkT,SAAS2E,IAAI,YAAY7X,KAAKkT,SAASnU,KAAK,WAAW+O,EAAE4E,QAAQ1S,KAAKkT,SAAS,GAAG,iBAAiBlT,KAAKkT,SAAS,GAAG5J,UAAU7D,OAAO,6BAA6BzF,KAAKkT,SAASnU,KAAK,cAAc,SAAS+O,EAAE6E,WAAW3S,KAAKkT,SAAS,IAAIlT,KAAKkT,SAAS2Q,WAAW,WAAW7jB,KAAKwf,YAAYxJ,UAAUhW,KAAKsb,UAAUtF,UAAUhW,KAAKqb,SAASrF,UAAUhW,KAAK8T,QAAQkC,UAAUhW,KAAKwf,YAAY,KAAKxf,KAAKsb,UAAU,KAAKtb,KAAKqb,SAAS,KAAKrb,KAAK8T,QAAQ,IAAI,EAAE/F,EAAEc,UAAUuE,OAAO,WAAW,IAAIzF,EAAED,EAAE,2IAA2I,OAAOC,EAAE5O,KAAK,MAAMiB,KAAKmT,QAAQjP,IAAI,QAAQlE,KAAKid,WAAWtP,EAAE3N,KAAKid,WAAW,GAAG3T,UAAUmL,IAAI,sBAAsBzU,KAAKmT,QAAQjP,IAAI,UAAU4J,EAAE2E,UAAU9E,EAAE,GAAG,UAAU3N,KAAKkT,UAAUvF,CAAC,EAAEI,CAAC,IAAGU,EAAE2B,OAAO,oBAAoB,CAAC,WAAU,SAASzC,GAAG,OAAOA,CAAC,IAAGc,EAAE2B,OAAO,iBAAiB,CAAC,SAAS,oBAAoB,iBAAiB,qBAAqB,oBAAmB,SAASpE,EAAE2B,EAAEG,EAAEJ,EAAEK,GAAG,IAAIO,EAAE,OAAO,MAAMtC,EAAEjK,GAAG2M,UAAUJ,EAAE,CAAC,OAAO,QAAQ,WAAWtC,EAAEjK,GAAG2M,QAAQ,SAAShB,GAAG,GAAG,iBAAiBA,EAAEA,GAAG,CAAC,GAAG,OAAO1N,KAAK0D,MAAK,WAAW,IAAIiK,EAAE3B,EAAEjH,QAAO,EAAG,CAAC,EAAE2I,GAAG,IAAII,EAAE9B,EAAEhM,MAAM2N,EAAE,IAAG3N,KAAK,GAAG,iBAAiB0N,EAAE,MAAM,IAAImC,MAAM,kCAAkCnC,GAAG,IAAIE,EAAEY,EAAEmC,MAAM9B,UAAU/H,MAAM0J,KAAKK,UAAU,GAAG,OAAO7Q,KAAK0D,MAAK,WAAW,IAAIiK,EAAEI,EAAE2E,QAAQ1S,KAAK,WAAW,MAAM2N,GAAGxL,OAAOsF,SAASA,QAAQxF,OAAOwF,QAAQxF,MAAM,gBAAgByL,EAAE,iEAAiEE,EAAED,EAAED,GAAGqC,MAAMpC,EAAEa,EAAE,KAAI,EAAEF,EAAEyE,QAAQrF,GAAG1N,KAAK4N,CAAC,GAAG,MAAM5B,EAAEjK,GAAG2M,QAAQ6Q,WAAWvT,EAAEjK,GAAG2M,QAAQ6Q,SAAS7R,GAAGI,CAAC,IAAG,CAACsC,OAAO3B,EAAE2B,OAAOhB,QAAQX,EAAEW,UAAU,SAASQ,EAAEjC,EAAED,GAAG,OAAO1B,EAAEwE,KAAK7C,EAAED,EAAE,CAAC,SAASuB,EAAEtB,EAAED,GAAG,IAAIE,EAAEY,EAAExC,EAAE8B,EAAEC,EAAEO,EAAEW,EAAEF,EAAEN,EAAEiB,EAAE7B,EAAEH,GAAGA,EAAE+D,MAAM,KAAKzD,EAAEI,EAAEkG,IAAIrG,EAAED,GAAGA,EAAE,MAAM,CAAC,EAAE,GAAGL,EAAE,CAAC,IAAID,GAAGC,EAAEA,EAAE8D,MAAM,MAAM5R,OAAO,EAAEuO,EAAE0V,cAAcvV,EAAEpJ,KAAKwI,EAAED,MAAMC,EAAED,GAAGC,EAAED,GAAGrL,QAAQkM,EAAE,KAAK,MAAMZ,EAAE,GAAGoW,OAAO,IAAIlW,IAAIF,EAAEE,EAAE/G,MAAM,EAAE+G,EAAEhO,OAAO,GAAGmT,OAAOrF,IAAIoB,EAAE,EAAEA,EAAEpB,EAAE9N,OAAOkP,IAAI,OAAOW,EAAE/B,EAAEoB,KAAKpB,EAAEqC,OAAOjB,EAAE,KAAKA,GAAG,OAAOW,IAAI,IAAIX,GAAG,IAAIA,GAAG,OAAOpB,EAAE,IAAI,OAAOA,EAAEoB,EAAE,IAAI,EAAEA,IAAIpB,EAAEqC,OAAOjB,EAAE,EAAE,GAAGA,GAAG,IAAIpB,EAAEA,EAAEsF,KAAK,IAAI,CAAC,IAAIpF,GAAGI,IAAID,EAAE,CAAC,IAAIe,GAAGnB,EAAED,EAAE8D,MAAM,MAAM5R,OAAO,EAAEkP,IAAIA,EAAE,CAAC,GAAGP,EAAEZ,EAAE9G,MAAM,EAAEiI,GAAGkE,KAAK,KAAKpF,EAAE,IAAIY,EAAEZ,EAAEhO,OAAO,EAAE4O,IAAIA,EAAE,GAA+BzC,GAA5BA,EAAEgC,EAAEH,EAAE/G,MAAM,EAAE2H,GAAGwE,KAAK,QAAWjH,EAAEwC,GAAG,CAACV,EAAE9B,EAAE+B,EAAEgB,EAAE,KAAK,CAAC,GAAGjB,EAAE,OAAOQ,GAAGL,GAAGA,EAAEO,KAAKF,EAAEL,EAAEO,GAAGS,EAAEF,EAAE,EAAEjB,GAAGQ,IAAIR,EAAEQ,EAAEP,EAAEkB,GAAGnB,IAAIF,EAAEoC,OAAO,EAAEjC,EAAED,GAAGH,EAAEC,EAAEqF,KAAK,KAAK,CAAC,OAAOtF,CAAC,CAAC,SAAS0B,EAAE3B,EAAEE,GAAG,OAAO,WAAW,IAAID,EAAEW,EAAEkC,KAAKK,UAAU,GAAG,MAAM,iBAAiBlD,EAAE,IAAI,IAAIA,EAAE9N,QAAQ8N,EAAEvG,KAAK,MAAM2G,EAAEgC,MAAMlC,EAAEF,EAAEqF,OAAO,CAACtF,EAAEE,IAAI,CAAC,CAAC,SAASoB,EAAErB,GAAG,IAAID,EAAE,GAAGkC,EAAEzB,EAAER,KAAKD,EAAES,EAAER,UAAUQ,EAAER,GAAGU,EAAEV,IAAG,EAAGG,EAAEiC,MAAMlC,EAAEH,KAAKkC,EAAE1B,EAAEP,KAAKiC,EAAEvB,EAAEV,GAAG,MAAM,IAAIkC,MAAM,MAAMlC,GAAG,OAAOO,EAAEP,EAAE,CAAC,SAASoB,EAAEpB,GAAG,IAAID,EAAEE,EAAED,EAAEA,EAAEoF,QAAQ,MAAM,EAAE,OAAO,EAAEnF,IAAIF,EAAEC,EAAE5J,UAAU,EAAE6J,GAAGD,EAAEA,EAAE5J,UAAU6J,EAAE,EAAED,EAAE9N,SAAS,CAAC6N,EAAEC,EAAE,CAAC,SAASgC,EAAEhC,GAAG,OAAOA,EAAEoB,EAAEpB,GAAG,EAAE,CAAC,IAAIc,EAAED,EAAEY,QAAQ,kBAAkB,OAAO1B,EAAE3L,GAAG2M,QAAQC,IAAIH,EAAEC,CAAC,GAAjgsE,8B,WCDtEjQ,OAAOC,UAAUC,OAAM,SAASC,GAE/B,SAASqlB,EAAsBzP,GAE9B5V,EAAE4V,GAAShT,YAAY,eAAe,GACtCiJ,YAAW,KACV7L,EAAE4V,GAAShT,YAAY,eAAe,EAAM,GAC1C,IACJ,CAuBA5C,EAAE,cAAcoB,GAAG,SAAS,SAASU,GACpCA,EAAMC,iBAtBP,SAA0B6T,EAAS0P,GAElC,GAAIC,UAAUC,UACbD,UAAUC,UAAUC,UAAUH,GAASpf,MAAK,KAC3Cmf,EAAsBzP,EAAQ,IAC7B,KACD,IAAInR,EAAOzE,EAAE4V,GAASvV,KAAK,iBAAiBoE,OAC5CzE,EAAEoD,GAAGC,YAAY,CAACoB,GAAM,QAEnB,CACN,IAAIihB,EAAa5lB,SAASqW,cAAc,YACxCuP,EAAW/kB,MAAQ2kB,EACnBxlB,SAASmZ,KAAK0M,YAAYD,GAC1BA,EAAW3K,SACXjb,SAAS8lB,YAAY,QACrB9lB,SAASmZ,KAAK4M,YAAYH,GAE1BL,EAAsBzP,EACvB,CACD,CAOCkQ,CAAiBzkB,KAFHrB,EAAEqB,MAAMwB,KAAK,OAG5B,IAEA7C,EAAE,uBAAuBoB,GAAG,SAAS,SAASU,GACvCA,EAAMC,iBAEZ,IAIUgkB,EAAa,oBAHL/lB,EAAEqB,MAAMwB,KAAK,OAIzBW,OAAOC,SAAW,oCAAuDsiB,CAC7E,GAEJ,G,WClDAlmB,OAAOC,UAAUC,OAAM,SAASC,GAE5BA,EAAE,uBAAuBkB,QAC3BlB,EAAE,uBAAuB+P,QAAQ,CAChCoP,wBAAyB6G,MAI3BhmB,EAAE,oCAAoCoB,GAAG,SAAS,SAASU,GAC1DA,EAAMC,iBAEA,IAAIkkB,EAASjmB,EAAEqB,MAAMjB,KAAK,gBAEhCJ,EAAE,kBAAkBQ,YAAY,WAChCR,EAAEqB,MAAM+G,IAAI,sBAAsB3H,SAAS,WAE3CT,EAAE,qBAAqBS,SAAS,UAChCT,EAAE,kBAAkBimB,EAAO,KAAKzlB,YAAY,UAE5CR,EAAE,uBAAuBsB,IAAI2kB,GAAQvhB,QAAQ,iBAC3C,IAEH1E,EAAE,uBAAuBoB,GAAG,UAAU,WAErC,IAAI6kB,EAASjmB,EAAEqB,MAAMC,MAErBtB,EAAE,oCAAoCimB,EAAO,MAAMvhB,QAAQ,QACzD,IAEH1E,EAAE,QAAQoB,GAAG,QAAS,kCAAkC,SAASU,GAGhE,GAFAA,EAAMC,iBAEH/B,EAAEqB,MAAMK,SAAS,YAAa,OAAO,EAGxC,IAAIM,EAAQpB,EAAKV,EAFjBF,EAAEqB,MAAMZ,SAAS,YAIjBuB,EAAU,IAAIC,OACd/B,EAAYF,EAAEqB,MACdT,EAAQV,EAASsB,QAAQ,QAEzBQ,EAAOgG,MAAQpH,EAAIP,KAAK,uBAAuBiB,MAC/CU,EAAO8C,QAAUlE,EAAIP,KAAK,yBAAyBiB,MAEnDtB,EAAEqC,KAAK,CACGC,KAAM,OACNC,IAAKC,QAAQC,QACtBC,WAAY,WACC9B,EAAI+B,SAAS,cAAcC,YAAY,UAAU,EACrD,EACTC,KAAM,CACLC,OAAQ,gCACRD,KAAOb,EACPe,SAAUP,QAAQQ,cAEVC,QAAS,SAASC,GACdhD,EAASM,YAAY,YACjCI,EAAIP,KAAK,UAAUG,YAAY,WAC/BI,EAAI+B,SAAS,cAAcC,YAAY,UAAU,GAE3B,GAAnBM,EAAIL,KAAKM,SACXnD,EAAEoD,GAAGC,YAAYH,EAAIL,KAAKS,MAAMC,MAChC3C,EAAIP,KAAK,uBAAuBiB,IAAI,KAGf,GAAnB4B,EAAIL,KAAKM,SACXnD,EAAEoD,GAAGC,YAAYH,EAAIL,KAAKS,MAAMC,MAChCvD,EAAEoD,GAAGQ,QAAQhD,EAAKsC,EAAIL,KAAKS,MAAMO,OAE1B,GAER,GAEJ,G,0DC7DA,SAASqiB,EAAStlB,GACd,OAAgB,OAARA,GACW,iBAARA,GACP,gBAAiBA,GACjBA,EAAIgR,cAAgB3P,MAC5B,CACA,SAASmE,EAAOqE,EAAQ4D,QACL,IAAX5D,IAAqBA,EAAS,CAAC,QACvB,IAAR4D,IAAkBA,EAAM,CAAC,GAC7BpM,OAAOkkB,KAAK9X,GAAK+X,SAAQ,SAAU7b,QACJ,IAAhBE,EAAOF,GACdE,EAAOF,GAAO8D,EAAI9D,GACb2b,EAAS7X,EAAI9D,KAClB2b,EAASzb,EAAOF,KAChBtI,OAAOkkB,KAAK9X,EAAI9D,IAAMrJ,OAAS,GAC/BkF,EAAOqE,EAAOF,GAAM8D,EAAI9D,GAEhC,GACJ,CAEA,IAAI8b,EAA0B,oBAAbvmB,SAA2BA,SAAW,CAAC,EACpDwmB,EAAc,CACdrN,KAAM,CAAC,EACPsN,iBAAkB,WAAc,EAChCC,oBAAqB,WAAc,EACnCxN,cAAe,CACXyN,KAAM,WAAc,EACpBC,SAAU,IAEdC,cAAe,WACX,OAAO,IACX,EACA7L,iBAAkB,WACd,MAAO,EACX,EACA8L,eAAgB,WACZ,OAAO,IACX,EACAC,YAAa,WACT,MAAO,CACHC,UAAW,WAAc,EAEjC,EACA3Q,cAAe,WACX,MAAO,CACH1O,SAAU,GACVsf,WAAY,GACZ9T,MAAO,CAAC,EACRY,aAAc,WAAc,EAC5BmT,qBAAsB,WAClB,MAAO,EACX,EAER,EACAC,gBAAiB,WACb,MAAO,CAAC,CACZ,EACAC,WAAY,WACR,OAAO,IACX,EACAzjB,SAAU,CACNyB,KAAM,GACNiiB,KAAM,GACNC,SAAU,GACVzjB,KAAM,GACN0jB,OAAQ,GACRC,SAAU,GACVC,SAAU,GACVrH,OAAQ,KAGhB9Z,EAAOigB,EAAKC,GAEZ,IAAIkB,EAAwB,oBAAXhkB,OAAyBA,OAAS,CAAC,EA2CpD4C,EAAOohB,EA1CS,CACZ1nB,SAAUwmB,EACVf,UAAW,CACPkC,UAAW,IAEfhkB,SAAU,CACNyB,KAAM,GACNiiB,KAAM,GACNC,SAAU,GACVzjB,KAAM,GACN0jB,OAAQ,GACRC,SAAU,GACVC,SAAU,GACVrH,OAAQ,IAEZwH,QAAS,CACLC,aAAc,WAAc,EAC5BC,UAAW,WAAc,EACzBC,GAAI,WAAc,EAClBC,KAAM,WAAc,GAExBC,YAAa,WACT,OAAO1mB,IACX,EACAklB,iBAAkB,WAAc,EAChCC,oBAAqB,WAAc,EACnC1C,iBAAkB,WACd,MAAO,CACHkE,iBAAkB,WACd,MAAO,EACX,EAER,EACA5Z,MAAO,WAAc,EACrB6Z,KAAM,WAAc,EACpBC,OAAQ,CAAC,EACTrc,WAAY,WAAc,EAC1BuQ,aAAc,WAAc,EAC5B+L,WAAY,WACR,MAAO,CAAC,CACZ,IC/GJ,MAAMC,EACJ,WAAAxW,CAAYyW,GACV,MAAMC,EAAOjnB,KAEb,IAAK,IAAIgM,EAAI,EAAGA,EAAIgb,EAAInnB,OAAQmM,GAAK,EACnCib,EAAKjb,GAAKgb,EAAIhb,GAIhB,OAFAib,EAAKpnB,OAASmnB,EAAInnB,OAEXG,IACT,EAGF,SAASrB,EAAEgL,EAAUud,GACnB,MAAMF,EAAM,GACZ,IAAIhb,EAAI,EACR,GAAIrC,IAAaud,GACXvd,aAAoBod,EACtB,OAAOpd,EAGX,GAAIA,EAEF,GAAwB,iBAAbA,EAAuB,CAChC,IAAIwd,EACAC,EACJ,MAAMhkB,EAAOuG,EAAS/J,OACtB,GAAIwD,EAAK2P,QAAQ,MAAQ,GAAK3P,EAAK2P,QAAQ,MAAQ,EAAG,CACpD,IAAIsU,EAAW,MAQf,IAP4B,IAAxBjkB,EAAK2P,QAAQ,SAAcsU,EAAW,MACd,IAAxBjkB,EAAK2P,QAAQ,SAAcsU,EAAW,SACd,IAAxBjkB,EAAK2P,QAAQ,QAAwC,IAAxB3P,EAAK2P,QAAQ,SAAcsU,EAAW,MACxC,IAA3BjkB,EAAK2P,QAAQ,YAAiBsU,EAAW,SACb,IAA5BjkB,EAAK2P,QAAQ,aAAkBsU,EAAW,UAC9CD,EAAapC,EAASlQ,cAAcuS,GACpCD,EAAWlR,UAAY9S,EAClB4I,EAAI,EAAGA,EAAIob,EAAW1B,WAAW7lB,OAAQmM,GAAK,EACjDgb,EAAI5f,KAAKggB,EAAW1B,WAAW1Z,GAEnC,MAQE,IAFEmb,EALGD,GAA2B,MAAhBvd,EAAS,IAAeA,EAAS7J,MAAM,aAK9ConB,GAAWlC,GAAUvL,iBAAiB9P,EAAS/J,QAHhD,CAAColB,EAASO,eAAe5b,EAAS/J,OAAO6R,MAAM,KAAK,KAKvDzF,EAAI,EAAGA,EAAImb,EAAItnB,OAAQmM,GAAK,EAC3Bmb,EAAInb,IAAIgb,EAAI5f,KAAK+f,EAAInb,GAG/B,MAAO,GAAIrC,EAAS2d,UAAY3d,IAAawc,GAAUxc,IAAaqb,EAElEgC,EAAI5f,KAAKuC,QACJ,GAAIA,EAAS9J,OAAS,GAAK8J,EAAS,GAAG2d,SAE5C,IAAKtb,EAAI,EAAGA,EAAIrC,EAAS9J,OAAQmM,GAAK,EACpCgb,EAAI5f,KAAKuC,EAASqC,IAIxB,OAAO,IAAI+a,EAAKC,EAClB,CAMA,SAASO,EAAOP,GACd,MAAMQ,EAAc,GACpB,IAAK,IAAIxb,EAAI,EAAGA,EAAIgb,EAAInnB,OAAQmM,GAAK,GACE,IAAjCwb,EAAYzU,QAAQiU,EAAIhb,KAAYwb,EAAYpgB,KAAK4f,EAAIhb,IAE/D,OAAOwb,CACT,CAVA7oB,EAAEoD,GAAKglB,EAAKlY,UACZlQ,EAAE8oB,MAAQV,EACVpoB,EAAEooB,KAAOA,EA+pCS,gBAAkBtV,MAAM,KCjuC1C,MAAMiW,EAAU,CACdtoB,SD0FF,SAAkBwU,GAChB,QAAyB,IAAdA,EACT,OAAO5T,KAET,MAAM2nB,EAAU/T,EAAUnC,MAAM,KAChC,IAAK,IAAIzF,EAAI,EAAGA,EAAI2b,EAAQ9nB,OAAQmM,GAAK,EACvC,IAAK,IAAI4b,EAAI,EAAGA,EAAI5nB,KAAKH,OAAQ+nB,GAAK,OACb,IAAZ5nB,KAAK4nB,SAAmD,IAAtB5nB,KAAK4nB,GAAGte,WAA2BtJ,KAAK4nB,GAAGte,UAAUmL,IAAIkT,EAAQ3b,IAGlH,OAAOhM,IACT,ECpGEb,YDqGF,SAAqByU,GACnB,MAAM+T,EAAU/T,EAAUnC,MAAM,KAChC,IAAK,IAAIzF,EAAI,EAAGA,EAAI2b,EAAQ9nB,OAAQmM,GAAK,EACvC,IAAK,IAAI4b,EAAI,EAAGA,EAAI5nB,KAAKH,OAAQ+nB,GAAK,OACb,IAAZ5nB,KAAK4nB,SAAmD,IAAtB5nB,KAAK4nB,GAAGte,WAA2BtJ,KAAK4nB,GAAGte,UAAU7D,OAAOkiB,EAAQ3b,IAGrH,OAAOhM,IACT,EC5GEK,SD6GF,SAAkBuT,GAChB,QAAK5T,KAAK,IACHA,KAAK,GAAGsJ,UAAUC,SAASqK,EACpC,EC/GErS,YDgHF,SAAqBqS,GACnB,MAAM+T,EAAU/T,EAAUnC,MAAM,KAChC,IAAK,IAAIzF,EAAI,EAAGA,EAAI2b,EAAQ9nB,OAAQmM,GAAK,EACvC,IAAK,IAAI4b,EAAI,EAAGA,EAAI5nB,KAAKH,OAAQ+nB,GAAK,OACb,IAAZ5nB,KAAK4nB,SAAmD,IAAtB5nB,KAAK4nB,GAAGte,WAA2BtJ,KAAK4nB,GAAGte,UAAUtC,OAAO2gB,EAAQ3b,IAGrH,OAAOhM,IACT,ECvHEjB,KDwHF,SAAc8oB,EAAOvoB,GACnB,GAAyB,IAArBuR,UAAUhR,QAAiC,iBAAVgoB,EAEnC,OAAI7nB,KAAK,GAAWA,KAAK,GAAGuS,aAAasV,QACzC,EAIF,IAAK,IAAI7b,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EACpC,GAAyB,IAArB6E,UAAUhR,OAEZG,KAAKgM,GAAGwG,aAAaqV,EAAOvoB,QAI5B,IAAK,MAAMwoB,KAAYD,EACrB7nB,KAAKgM,GAAG8b,GAAYD,EAAMC,GAC1B9nB,KAAKgM,GAAGwG,aAAasV,EAAUD,EAAMC,IAI3C,OAAO9nB,IACT,EC7IEyV,WD+IF,SAAoB1W,GAClB,IAAK,IAAIiN,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EACpChM,KAAKgM,GAAG4G,gBAAgB7T,GAE1B,OAAOiB,IACT,ECnJEwB,KD0KF,SAAc0H,EAAK5J,GACjB,IAAImM,EACJ,QAAqB,IAAVnM,EAAX,CAkBA,IAAK,IAAI0M,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EACpCP,EAAKzL,KAAKgM,GACLP,EAAGsc,yBAAwBtc,EAAGsc,uBAAyB,CAAC,GAC7Dtc,EAAGsc,uBAAuB7e,GAAO5J,EAEnC,OAAOU,IARP,CAZE,GAFAyL,EAAKzL,KAAK,GAENyL,EAAI,CACN,GAAIA,EAAGsc,wBAA2B7e,KAAOuC,EAAGsc,uBAC1C,OAAOtc,EAAGsc,uBAAuB7e,GAGnC,MAAM8e,EAAUvc,EAAG8G,aAAa,QAAQrJ,KACxC,OAAI8e,QAGJ,CACF,CAWJ,ECnMEC,UDqQF,SAAmBA,GACjB,IAAK,IAAIjc,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAAG,CACvC,MAAMkc,EAAUloB,KAAKgM,GAAG4F,MACxBsW,EAAQC,gBAAkBF,EAC1BC,EAAQD,UAAYA,CACtB,CACA,OAAOjoB,IACT,EC3QEoI,WD4QF,SAAoBggB,GACM,iBAAbA,IACTA,EAAW,GAAGA,OAEhB,IAAK,IAAIpc,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAAG,CACvC,MAAMkc,EAAUloB,KAAKgM,GAAG4F,MACxBsW,EAAQG,yBAA2BD,EACnCF,EAAQI,mBAAqBF,CAC/B,CACA,OAAOpoB,IACT,ECrRED,GDuRF,YAAe4T,GACb,IAAK4U,EAAWC,EAAgBC,EAAUC,GAAW/U,EAOrD,SAASgV,EAAgBhb,GACvB,MAAMvE,EAASuE,EAAEvE,OACjB,IAAKA,EAAQ,OACb,MAAMwf,EAAYjb,EAAEvE,OAAOyf,eAAiB,GAI5C,GAHID,EAAU7V,QAAQpF,GAAK,GACzBib,EAAUhY,QAAQjD,GAEhBhP,EAAEyK,GAAQxF,GAAG4kB,GAAiBC,EAAS1Y,MAAM3G,EAAQwf,OACpD,CACH,MAAMvf,EAAU1K,EAAEyK,GAAQC,UAC1B,IAAK,IAAIyf,EAAI,EAAGA,EAAIzf,EAAQxJ,OAAQipB,GAAK,EACnCnqB,EAAE0K,EAAQyf,IAAIllB,GAAG4kB,IAAiBC,EAAS1Y,MAAM1G,EAAQyf,GAAIF,EAErE,CACF,CACA,SAASG,EAAYpb,GACnB,MAAMib,EAAYjb,GAAKA,EAAEvE,QAASuE,EAAEvE,OAAOyf,eAAsB,GAC7DD,EAAU7V,QAAQpF,GAAK,GACzBib,EAAUhY,QAAQjD,GAEpB8a,EAAS1Y,MAAM/P,KAAM4oB,EACvB,CA3BuB,mBAAZjV,EAAK,MACb4U,EAAWE,EAAUC,GAAW/U,EACjC6U,OAAiBQ,GAEdN,IAASA,GAAU,GAwBxB,MAAMO,EAASV,EAAU9W,MAAM,KAC/B,IAAImW,EACJ,IAAK,IAAI5b,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAAG,CACvC,MAAMP,EAAKzL,KAAKgM,GAChB,GAAKwc,EAaH,IAAKZ,EAAI,EAAGA,EAAIqB,EAAOppB,OAAQ+nB,GAAK,EAAG,CACrC,MAAMnnB,EAAQwoB,EAAOrB,GAChBnc,EAAGyd,oBAAmBzd,EAAGyd,kBAAoB,CAAC,GAC9Czd,EAAGyd,kBAAkBzoB,KAAQgL,EAAGyd,kBAAkBzoB,GAAS,IAChEgL,EAAGyd,kBAAkBzoB,GAAO2G,KAAK,CAC/BqhB,WACAU,cAAeR,IAEjBld,EAAGyZ,iBAAiBzkB,EAAOkoB,EAAiBD,EAC9C,MArBA,IAAKd,EAAI,EAAGA,EAAIqB,EAAOppB,OAAQ+nB,GAAK,EAAG,CACrC,MAAMnnB,EAAQwoB,EAAOrB,GAChBnc,EAAG2d,gBAAe3d,EAAG2d,cAAgB,CAAC,GACtC3d,EAAG2d,cAAc3oB,KAAQgL,EAAG2d,cAAc3oB,GAAS,IACxDgL,EAAG2d,cAAc3oB,GAAO2G,KAAK,CAC3BqhB,WACAU,cAAeJ,IAEjBtd,EAAGyZ,iBAAiBzkB,EAAOsoB,EAAaL,EAC1C,CAcJ,CACA,OAAO1oB,IACT,EClVE6X,IDmVF,YAAgBlE,GACd,IAAK4U,EAAWC,EAAgBC,EAAUC,GAAW/U,EAC9B,mBAAZA,EAAK,MACb4U,EAAWE,EAAUC,GAAW/U,EACjC6U,OAAiBQ,GAEdN,IAASA,GAAU,GAExB,MAAMO,EAASV,EAAU9W,MAAM,KAC/B,IAAK,IAAIzF,EAAI,EAAGA,EAAIid,EAAOppB,OAAQmM,GAAK,EAAG,CACzC,MAAMvL,EAAQwoB,EAAOjd,GACrB,IAAK,IAAI4b,EAAI,EAAGA,EAAI5nB,KAAKH,OAAQ+nB,GAAK,EAAG,CACvC,MAAMnc,EAAKzL,KAAK4nB,GAChB,IAAIyB,EAMJ,IALKb,GAAkB/c,EAAG2d,cACxBC,EAAW5d,EAAG2d,cAAc3oB,GACnB+nB,GAAkB/c,EAAGyd,oBAC9BG,EAAW5d,EAAGyd,kBAAkBzoB,IAE9B4oB,GAAYA,EAASxpB,OACvB,IAAK,IAAIipB,EAAIO,EAASxpB,OAAS,EAAGipB,GAAK,EAAGA,GAAK,EAAG,CAChD,MAAMQ,EAAUD,EAASP,GACrBL,GAAYa,EAAQb,WAAaA,GAG1BA,GAAYa,EAAQb,UAAYa,EAAQb,SAASc,WAAaD,EAAQb,SAASc,YAAcd,GAFtGhd,EAAG0Z,oBAAoB1kB,EAAO6oB,EAAQH,cAAeT,GACrDW,EAASrZ,OAAO8Y,EAAG,IAITL,IACVhd,EAAG0Z,oBAAoB1kB,EAAO6oB,EAAQH,cAAeT,GACrDW,EAASrZ,OAAO8Y,EAAG,GAEvB,CAEJ,CACF,CACA,OAAO9oB,IACT,ECvXEqD,QDyYF,YAAoBsQ,GAClB,MAAMsV,EAAStV,EAAK,GAAGlC,MAAM,KACvBmX,EAAYjV,EAAK,GACvB,IAAK,IAAI3H,EAAI,EAAGA,EAAIid,EAAOppB,OAAQmM,GAAK,EAAG,CACzC,MAAMvL,EAAQwoB,EAAOjd,GACrB,IAAK,IAAI4b,EAAI,EAAGA,EAAI5nB,KAAKH,OAAQ+nB,GAAK,EAAG,CACvC,MAAMnc,EAAKzL,KAAK4nB,GAChB,IAAI4B,EACJ,IACEA,EAAM,IAAIrD,EAAOO,YAAYjmB,EAAO,CAClCgpB,OAAQb,EACRc,SAAS,EACTC,YAAY,GAEhB,CAAE,MAAOhc,GACP6b,EAAMxE,EAASQ,YAAY,SAC3BgE,EAAI/D,UAAUhlB,GAAO,GAAM,GAC3B+oB,EAAIC,OAASb,CACf,CAEAnd,EAAGod,cAAgBlV,EAAKb,QAAO,CAACtR,EAAMooB,IAAcA,EAAY,IAChEne,EAAGoe,cAAcL,GACjB/d,EAAGod,cAAgB,UACZpd,EAAGod,aACZ,CACF,CACA,OAAO7oB,IACT,ECnaE8pB,cDoaF,SAAuB5Z,GACrB,MAAM+Y,EAAS,CAAC,sBAAuB,iBACjCc,EAAM/pB,KACZ,IAAIgM,EACJ,SAASge,EAAarc,GAEpB,GAAIA,EAAEvE,SAAWpJ,KAEjB,IADAkQ,EAASM,KAAKxQ,KAAM2N,GACf3B,EAAI,EAAGA,EAAIid,EAAOppB,OAAQmM,GAAK,EAClC+d,EAAIlS,IAAIoR,EAAOjd,GAAIge,EAEvB,CACA,GAAI9Z,EACF,IAAKlE,EAAI,EAAGA,EAAIid,EAAOppB,OAAQmM,GAAK,EAClC+d,EAAIhqB,GAAGkpB,EAAOjd,GAAIge,GAGtB,OAAOhqB,IACT,ECrbE2d,WDodF,SAAoBsM,GAClB,GAAIjqB,KAAKH,OAAS,EAAG,CACnB,GAAIoqB,EAAgB,CAElB,MAAMC,EAASlqB,KAAKkqB,SACpB,OAAOlqB,KAAK,GAAGmqB,YAAcC,WAAWF,EAAOvD,iBAAiB,iBAAmByD,WAAWF,EAAOvD,iBAAiB,eACxH,CACA,OAAO3mB,KAAK,GAAGmqB,WACjB,CACA,OAAO,IACT,EC7dE1hB,YDyeF,SAAqBwhB,GACnB,GAAIjqB,KAAKH,OAAS,EAAG,CACnB,GAAIoqB,EAAgB,CAElB,MAAMC,EAASlqB,KAAKkqB,SACpB,OAAOlqB,KAAK,GAAGqqB,aAAeD,WAAWF,EAAOvD,iBAAiB,eAAiByD,WAAWF,EAAOvD,iBAAiB,iBACvH,CACA,OAAO3mB,KAAK,GAAGqqB,YACjB,CACA,OAAO,IACT,EClfE3hB,ODmfF,WACE,GAAI1I,KAAKH,OAAS,EAAG,CACnB,MAAM4L,EAAKzL,KAAK,GACVsqB,EAAM7e,EAAG8e,wBACT3S,EAAOoN,EAASpN,KAChB4S,EAAY/e,EAAG+e,WAAa5S,EAAK4S,WAAa,EAC9CC,EAAahf,EAAGgf,YAAc7S,EAAK6S,YAAc,EACjD5hB,EAAY4C,IAAO0a,EAASA,EAAOuE,QAAUjf,EAAG5C,UAChDyU,EAAa7R,IAAO0a,EAASA,EAAOwE,QAAUlf,EAAG6R,WACvD,MAAO,CACL3U,IAAM2hB,EAAI3hB,IAAME,EAAa2hB,EAC7BhN,KAAO8M,EAAI9M,KAAOF,EAAcmN,EAEpC,CAEA,OAAO,IACT,EClgBExR,ID0hBF,SAAa2R,EAAOtrB,GAClB,IAAI0M,EACJ,GAAyB,IAArB6E,UAAUhR,OAAc,CAC1B,GAAqB,iBAAV+qB,EAEJ,CACL,IAAK5e,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAEhC,IAAK,IAAI/I,KAAQ2nB,EACf5qB,KAAKgM,GAAG4F,MAAM3O,GAAQ2nB,EAAM3nB,GAGhC,OAAOjD,IACT,CATE,GAAIA,KAAK,GAAI,OAAOmmB,EAAO1D,iBAAiBziB,KAAK,GAAI,MAAM2mB,iBAAiBiE,EAUhF,CACA,GAAyB,IAArB/Z,UAAUhR,QAAiC,iBAAV+qB,EAAoB,CACvD,IAAK5e,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAChChM,KAAKgM,GAAG4F,MAAMgZ,GAAStrB,EAEzB,OAAOU,IACT,CACA,OAAOA,IACT,EC/iBE0D,KD0jBF,SAAcwM,GAEZ,IAAKA,EAAU,OAAOlQ,KAEtB,IAAK,IAAIgM,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAEpC,IAA2C,IAAvCkE,EAASM,KAAKxQ,KAAKgM,GAAIA,EAAGhM,KAAKgM,IAEjC,OAAOhM,KAIX,OAAOA,IACT,ECtkBEoD,KDsmBF,SAAcA,GACZ,QAAoB,IAATA,EACT,OAAOpD,KAAK,GAAKA,KAAK,GAAGkW,eAAY8S,EAGvC,IAAK,IAAIhd,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EACpChM,KAAKgM,GAAGkK,UAAY9S,EAEtB,OAAOpD,IACT,EC9mBEf,KDgnBF,SAAcA,GACZ,QAAoB,IAATA,EACT,OAAIe,KAAK,GACAA,KAAK,GAAG+Z,YAAYna,OAEtB,KAGT,IAAK,IAAIoM,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EACpChM,KAAKgM,GAAG+N,YAAc9a,EAExB,OAAOe,IACT,EC3nBE4D,GD4nBF,SAAY+F,GACV,MAAM8B,EAAKzL,KAAK,GAChB,IAAI6qB,EACA7e,EACJ,IAAKP,QAA0B,IAAb9B,EAA0B,OAAO,EACnD,GAAwB,iBAAbA,EAAuB,CAChC,GAAI8B,EAAGwJ,QAAS,OAAOxJ,EAAGwJ,QAAQtL,GAC7B,GAAI8B,EAAG0J,sBAAuB,OAAO1J,EAAG0J,sBAAsBxL,GAC9D,GAAI8B,EAAGyJ,kBAAmB,OAAOzJ,EAAGyJ,kBAAkBvL,GAG3D,IADAkhB,EAAclsB,EAAEgL,GACXqC,EAAI,EAAGA,EAAI6e,EAAYhrB,OAAQmM,GAAK,EACvC,GAAI6e,EAAY7e,KAAOP,EAAI,OAAO,EAEpC,OAAO,CACT,CAAO,GAAI9B,IAAaqb,EAAU,OAAOvZ,IAAOuZ,EAC3C,GAAIrb,IAAawc,EAAQ,OAAO1a,IAAO0a,EAE5C,GAAIxc,EAAS2d,UAAY3d,aAAoBod,EAAM,CAEjD,IADA8D,EAAclhB,EAAS2d,SAAW,CAAC3d,GAAYA,EAC1CqC,EAAI,EAAGA,EAAI6e,EAAYhrB,OAAQmM,GAAK,EACvC,GAAI6e,EAAY7e,KAAOP,EAAI,OAAO,EAEpC,OAAO,CACT,CACA,OAAO,CACT,ECrpBED,MD4pBF,WACE,IACIQ,EADA8e,EAAQ9qB,KAAK,GAEjB,GAAI8qB,EAAO,CAGT,IAFA9e,EAAI,EAEuC,QAAnC8e,EAAQA,EAAMC,kBACG,IAAnBD,EAAMxD,WAAgBtb,GAAK,GAEjC,OAAOA,CACT,CAEF,ECvqBE2J,GDyqBF,SAAYnK,GACV,QAAqB,IAAVA,EAAuB,OAAOxL,KACzC,MAAMH,EAASG,KAAKH,OACpB,IAAImrB,EACJ,OAAIxf,EAAQ3L,EAAS,EACZ,IAAIknB,EAAK,IAEdvb,EAAQ,GACVwf,EAAcnrB,EAAS2L,EACK,IAAIub,EAA5BiE,EAAc,EAAmB,GACrB,CAAChrB,KAAKgrB,MAEjB,IAAIjE,EAAK,CAAC/mB,KAAKwL,IACxB,ECrrBEnF,ODsrBF,YAAmBsN,GACjB,IAAIsX,EAEJ,IAAK,IAAInC,EAAI,EAAGA,EAAInV,EAAK9T,OAAQipB,GAAK,EAAG,CACvCmC,EAAWtX,EAAKmV,GAChB,IAAK,IAAI9c,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EACpC,GAAwB,iBAAbif,EAAuB,CAChC,MAAMC,EAAUlG,EAASlQ,cAAc,OAEvC,IADAoW,EAAQhV,UAAY+U,EACbC,EAAQC,YACbnrB,KAAKgM,GAAGsY,YAAY4G,EAAQC,WAEhC,MAAO,GAAIF,aAAoBlE,EAC7B,IAAK,IAAIa,EAAI,EAAGA,EAAIqD,EAASprB,OAAQ+nB,GAAK,EACxC5nB,KAAKgM,GAAGsY,YAAY2G,EAASrD,SAG/B5nB,KAAKgM,GAAGsY,YAAY2G,EAG1B,CAEA,OAAOjrB,IACT,EC5sBE6U,QDktBF,SAAiBoW,GACf,IAAIjf,EACA4b,EACJ,IAAK5b,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAChC,GAAwB,iBAAbif,EAAuB,CAChC,MAAMC,EAAUlG,EAASlQ,cAAc,OAEvC,IADAoW,EAAQhV,UAAY+U,EACfrD,EAAIsD,EAAQxF,WAAW7lB,OAAS,EAAG+nB,GAAK,EAAGA,GAAK,EACnD5nB,KAAKgM,GAAGof,aAAaF,EAAQxF,WAAWkC,GAAI5nB,KAAKgM,GAAG0Z,WAAW,GAEnE,MAAO,GAAIuF,aAAoBlE,EAC7B,IAAKa,EAAI,EAAGA,EAAIqD,EAASprB,OAAQ+nB,GAAK,EACpC5nB,KAAKgM,GAAGof,aAAaH,EAASrD,GAAI5nB,KAAKgM,GAAG0Z,WAAW,SAGvD1lB,KAAKgM,GAAGof,aAAaH,EAAUjrB,KAAKgM,GAAG0Z,WAAW,IAGtD,OAAO1lB,IACT,ECpuBEqrB,KDkwBF,SAAc1hB,GACZ,OAAI3J,KAAKH,OAAS,EACZ8J,EACE3J,KAAK,GAAGsrB,oBAAsB3sB,EAAEqB,KAAK,GAAGsrB,oBAAoB1nB,GAAG+F,GAC1D,IAAIod,EAAK,CAAC/mB,KAAK,GAAGsrB,qBAEpB,IAAIvE,EAAK,IAGd/mB,KAAK,GAAGsrB,mBAA2B,IAAIvE,EAAK,CAAC/mB,KAAK,GAAGsrB,qBAClD,IAAIvE,EAAK,IAEX,IAAIA,EAAK,GAClB,EC9wBEwE,QD+wBF,SAAiB5hB,GACf,MAAM6hB,EAAU,GAChB,IAAI/f,EAAKzL,KAAK,GACd,IAAKyL,EAAI,OAAO,IAAIsb,EAAK,IACzB,KAAOtb,EAAG6f,oBAAoB,CAC5B,MAAMD,EAAO5f,EAAG6f,mBACZ3hB,EACEhL,EAAE0sB,GAAMznB,GAAG+F,IAAW6hB,EAAQpkB,KAAKikB,GAClCG,EAAQpkB,KAAKikB,GACpB5f,EAAK4f,CACP,CACA,OAAO,IAAItE,EAAKyE,EAClB,EC1xBEC,KD2xBF,SAAc9hB,GACZ,GAAI3J,KAAKH,OAAS,EAAG,CACnB,MAAM4L,EAAKzL,KAAK,GAChB,OAAI2J,EACE8B,EAAGigB,wBAA0B/sB,EAAE8M,EAAGigB,wBAAwB9nB,GAAG+F,GACxD,IAAIod,EAAK,CAACtb,EAAGigB,yBAEf,IAAI3E,EAAK,IAGdtb,EAAGigB,uBAA+B,IAAI3E,EAAK,CAACtb,EAAGigB,yBAC5C,IAAI3E,EAAK,GAClB,CACA,OAAO,IAAIA,EAAK,GAClB,ECxyBE4E,QDyyBF,SAAiBhiB,GACf,MAAMiiB,EAAU,GAChB,IAAIngB,EAAKzL,KAAK,GACd,IAAKyL,EAAI,OAAO,IAAIsb,EAAK,IACzB,KAAOtb,EAAGigB,wBAAwB,CAChC,MAAMD,EAAOhgB,EAAGigB,uBACZ/hB,EACEhL,EAAE8sB,GAAM7nB,GAAG+F,IAAWiiB,EAAQxkB,KAAKqkB,GAClCG,EAAQxkB,KAAKqkB,GACpBhgB,EAAKggB,CACP,CACA,OAAO,IAAI1E,EAAK6E,EAClB,ECpzBE1oB,ODwzBF,SAAgByG,GACd,MAAMN,EAAU,GAChB,IAAK,IAAI2C,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EACT,OAAvBhM,KAAKgM,GAAG6f,aACNliB,EACEhL,EAAEqB,KAAKgM,GAAG6f,YAAYjoB,GAAG+F,IAAWN,EAAQjC,KAAKpH,KAAKgM,GAAG6f,YAE7DxiB,EAAQjC,KAAKpH,KAAKgM,GAAG6f,aAI3B,OAAOltB,EAAE4oB,EAAOle,GAClB,ECn0BEA,QDo0BF,SAAiBM,GACf,MAAMN,EAAU,GAChB,IAAK,IAAI2C,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAAG,CACvC,IAAI9I,EAASlD,KAAKgM,GAAG6f,WACrB,KAAO3oB,GACDyG,EACEhL,EAAEuE,GAAQU,GAAG+F,IAAWN,EAAQjC,KAAKlE,GAEzCmG,EAAQjC,KAAKlE,GAEfA,EAASA,EAAO2oB,UAEpB,CACA,OAAOltB,EAAE4oB,EAAOle,GAClB,ECj1BElJ,QDk1BF,SAAiBwJ,GACf,IAAIxJ,EAAUH,KACd,YAAwB,IAAb2J,EACF,IAAIod,EAAK,KAEb5mB,EAAQyD,GAAG+F,KACdxJ,EAAUA,EAAQkJ,QAAQM,GAAUgM,GAAG,IAElCxV,EACT,EC11BEnB,KD21BF,SAAc2K,GACZ,MAAMmiB,EAAgB,GACtB,IAAK,IAAI9f,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAAG,CACvC,MAAM+f,EAAQ/rB,KAAKgM,GAAGyN,iBAAiB9P,GACvC,IAAK,IAAIie,EAAI,EAAGA,EAAImE,EAAMlsB,OAAQ+nB,GAAK,EACrCkE,EAAc1kB,KAAK2kB,EAAMnE,GAE7B,CACA,OAAO,IAAIb,EAAK+E,EAClB,ECn2BE1lB,SDo2BF,SAAkBuD,GAChB,MAAMvD,EAAW,GACjB,IAAK,IAAI4F,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAAG,CACvC,MAAM0Z,EAAa1lB,KAAKgM,GAAG0Z,WAE3B,IAAK,IAAIkC,EAAI,EAAGA,EAAIlC,EAAW7lB,OAAQ+nB,GAAK,EACrCje,EAEiC,IAA3B+b,EAAWkC,GAAGN,UAAkB3oB,EAAE+mB,EAAWkC,IAAIhkB,GAAG+F,IAC7DvD,EAASgB,KAAKse,EAAWkC,IAFM,IAA3BlC,EAAWkC,GAAGN,UAAgBlhB,EAASgB,KAAKse,EAAWkC,GAKjE,CACA,OAAO,IAAIb,EAAKQ,EAAOnhB,GACzB,ECj3BE0M,ODqkBF,SAAgB5C,GACd,MAAM8b,EAAe,GACfjC,EAAM/pB,KACZ,IAAK,IAAIgM,EAAI,EAAGA,EAAI+d,EAAIlqB,OAAQmM,GAAK,EAC/BkE,EAASM,KAAKuZ,EAAI/d,GAAIA,EAAG+d,EAAI/d,KAAKggB,EAAa5kB,KAAK2iB,EAAI/d,IAE9D,OAAO,IAAI+a,EAAKiF,EAClB,EC3kBEvmB,ODi3BF,WACE,IAAK,IAAIuG,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAChChM,KAAKgM,GAAG6f,YAAY7rB,KAAKgM,GAAG6f,WAAWrH,YAAYxkB,KAAKgM,IAE9D,OAAOhM,IACT,ECr3BEyU,IDy3BF,YAAgBd,GACd,MAAMoW,EAAM/pB,KACZ,IAAIgM,EACA4b,EACJ,IAAK5b,EAAI,EAAGA,EAAI2H,EAAK9T,OAAQmM,GAAK,EAAG,CACnC,MAAMigB,EAAQttB,EAAEgV,EAAK3H,IACrB,IAAK4b,EAAI,EAAGA,EAAIqE,EAAMpsB,OAAQ+nB,GAAK,EACjCmC,EAAIA,EAAIlqB,QAAUosB,EAAMrE,GACxBmC,EAAIlqB,QAAU,CAElB,CACA,OAAOkqB,CACT,ECp4BEG,ODigBF,WACE,OAAIlqB,KAAK,GAAWmmB,EAAO1D,iBAAiBziB,KAAK,GAAI,MAC9C,CAAC,CACV,GCjgBAY,OAAOkkB,KAAK4C,GAAS3C,SAASmH,IAC5BvtB,EAAEoD,GAAGmqB,GAAcvtB,EAAEoD,GAAGmqB,IAAexE,EAAQwE,EAAW,IAG5D,MAAMC,EAAQ,CACZ,WAAAC,CAAY7sB,GACV,MAAM8sB,EAAS9sB,EACfqB,OAAOkkB,KAAKuH,GAAQtH,SAAS7b,IAC3B,IACEmjB,EAAOnjB,GAAO,IAChB,CAAE,MAAOyE,GAET,CACA,WACS0e,EAAOnjB,EAChB,CAAE,MAAOyE,GAET,IAEJ,EACA2e,SAAQ,CAACpc,EAAU2K,EAAQ,IAClBrQ,WAAW0F,EAAU2K,GAE9B0R,IAAG,IACM3F,KAAK2F,MAEd,YAAAC,CAAa/gB,EAAIghB,EAAO,KACtB,IAAIC,EACAC,EACAC,EAEJ,MAAMC,EAAW1G,EAAO1D,iBAAiBhX,EAAI,MA+B7C,OA7BI0a,EAAO2G,iBACTH,EAAeE,EAAS5E,WAAa4E,EAAS1E,gBAC1CwE,EAAalb,MAAM,KAAK5R,OAAS,IACnC8sB,EAAeA,EAAalb,MAAM,MAAM6C,KAAKhG,GAAMA,EAAEjM,QAAQ,IAAK,OAAM4Q,KAAK,OAI/E2Z,EAAkB,IAAIzG,EAAO2G,gBAAiC,SAAjBH,EAA0B,GAAKA,KAE5EC,EAAkBC,EAASE,cAAgBF,EAASG,YAAcH,EAASI,aAAeJ,EAASK,aAAeL,EAAS5E,WAAa4E,EAASlG,iBAAiB,aAAatkB,QAAQ,aAAc,sBACrMqqB,EAASE,EAAgBtb,WAAWG,MAAM,MAG/B,MAATgb,IAE0BE,EAAxBxG,EAAO2G,gBAAgCF,EAAgBO,IAEhC,KAAlBT,EAAO7sB,OAA8BuqB,WAAWsC,EAAO,KAE5CtC,WAAWsC,EAAO,KAE3B,MAATD,IAE0BE,EAAxBxG,EAAO2G,gBAAgCF,EAAgBQ,IAEhC,KAAlBV,EAAO7sB,OAA8BuqB,WAAWsC,EAAO,KAE5CtC,WAAWsC,EAAO,KAEjCC,GAAgB,CACzB,EACA,aAAAU,CAAcnsB,GACZ,MAAMqY,EAAQ,CAAC,EACf,IACIvN,EACArL,EACA2sB,EACAztB,EAJA0tB,EAAarsB,GAAOilB,EAAO/jB,SAASE,KAKxC,GAA0B,iBAAfirB,GAA2BA,EAAW1tB,OAK/C,IAJA0tB,EAAaA,EAAWxa,QAAQ,MAAQ,EAAIwa,EAAWlrB,QAAQ,QAAS,IAAM,GAC9E1B,EAAS4sB,EAAW9b,MAAM,KAAKqB,QAAQ0a,GAA8B,KAAfA,IACtD3tB,EAASc,EAAOd,OAEXmM,EAAI,EAAGA,EAAInM,EAAQmM,GAAK,EAC3BshB,EAAQ3sB,EAAOqL,GAAG3J,QAAQ,QAAS,IAAIoP,MAAM,KAC7C8H,EAAMkU,mBAAmBH,EAAM,UAA2B,IAAbA,EAAM,QAAqBtE,EAAYyE,mBAAmBH,EAAM,KAAO,GAGxH,OAAO/T,CACT,EACAsL,SAAS9W,GACa,iBAANA,GAAwB,OAANA,GAAcA,EAAEwC,aAAexC,EAAEwC,cAAgB3P,OAEnF,MAAAmE,IAAU4O,GACR,MAAM+Z,EAAK9sB,OAAO+S,EAAK,IACvB,IAAK,IAAI3H,EAAI,EAAGA,EAAI2H,EAAK9T,OAAQmM,GAAK,EAAG,CACvC,MAAM2hB,EAAaha,EAAK3H,GACxB,GAAI2hB,QAAiD,CACnD,MAAMC,EAAYhtB,OAAOkkB,KAAKlkB,OAAO+sB,IACrC,IAAK,IAAIE,EAAY,EAAGxoB,EAAMuoB,EAAU/tB,OAAQguB,EAAYxoB,EAAKwoB,GAAa,EAAG,CAC/E,MAAMC,EAAUF,EAAUC,GACpBE,EAAOntB,OAAOotB,yBAAyBL,EAAYG,QAC5C9E,IAAT+E,GAAsBA,EAAKE,aACzB9B,EAAMtH,SAAS6I,EAAGI,KAAa3B,EAAMtH,SAAS8I,EAAWG,IAC3D3B,EAAMpnB,OAAO2oB,EAAGI,GAAUH,EAAWG,KAC3B3B,EAAMtH,SAAS6I,EAAGI,KAAa3B,EAAMtH,SAAS8I,EAAWG,KACnEJ,EAAGI,GAAW,CAAC,EACf3B,EAAMpnB,OAAO2oB,EAAGI,GAAUH,EAAWG,KAErCJ,EAAGI,GAAWH,EAAWG,GAG/B,CACF,CACF,CACA,OAAOJ,CACT,GAGIQ,EACG,CACLC,SAAW,oBAA8BhI,EAAOiI,eAAiBpJ,aAAsBmB,EAAOiI,eAE9FC,gBAAiBlI,EAAOmI,cAAiB,gCAAyCnI,EAAOjC,UAAUqK,gBAAkB,EAErHC,SACU,wBAAgC,6BAG1CC,gBAAkB,WAChB,IAAIC,GAAkB,EACtB,IACE,MAAMC,EAAO/tB,OAAOguB,eAAe,CAAC,EAAG,UAAW,CAEhD,GAAA1qB,GACEwqB,GAAkB,CACpB,IAEFvI,EAAOjB,iBAAiB,sBAAuB,KAAMyJ,EACvD,CAAE,MAAOhhB,GAET,CACA,OAAO+gB,CACT,CAdiB,GAgBjBG,SACS,sBAKb,MAAMC,EACJ,WAAAve,CAAY5P,EAAS,CAAC,GACpB,MAAMsmB,EAAOjnB,KACbinB,EAAKtmB,OAASA,EAGdsmB,EAAK8H,gBAAkB,CAAC,EAEpB9H,EAAKtmB,QAAUsmB,EAAKtmB,OAAOZ,IAC7Ba,OAAOkkB,KAAKmC,EAAKtmB,OAAOZ,IAAIglB,SAASiK,IACnC/H,EAAKlnB,GAAGivB,EAAW/H,EAAKtmB,OAAOZ,GAAGivB,GAAW,GAGnD,CAEA,EAAAjvB,CAAGkpB,EAAQK,EAAS2F,GAClB,MAAMhI,EAAOjnB,KACb,GAAuB,mBAAZspB,EAAwB,OAAOrC,EAC1C,MAAMiI,EAASD,EAAW,UAAY,OAKtC,OAJAhG,EAAOxX,MAAM,KAAKsT,SAAStkB,IACpBwmB,EAAK8H,gBAAgBtuB,KAAQwmB,EAAK8H,gBAAgBtuB,GAAS,IAChEwmB,EAAK8H,gBAAgBtuB,GAAOyuB,GAAQ5F,EAAQ,IAEvCrC,CACT,CAEA,IAAAkI,CAAKlG,EAAQK,EAAS2F,GACpB,MAAMhI,EAAOjnB,KACb,GAAuB,mBAAZspB,EAAwB,OAAOrC,EAC1C,SAASmI,KAAezb,GACtBsT,EAAKpP,IAAIoR,EAAQmG,GACbA,EAAYC,gBACPD,EAAYC,QAErB/F,EAAQvZ,MAAMkX,EAAMtT,EACtB,CAEA,OADAyb,EAAYC,QAAU/F,EACfrC,EAAKlnB,GAAGkpB,EAAQmG,EAAaH,EACtC,CAEA,GAAApX,CAAIoR,EAAQK,GACV,MAAMrC,EAAOjnB,KACb,OAAKinB,EAAK8H,iBACV9F,EAAOxX,MAAM,KAAKsT,SAAStkB,SACF,IAAZ6oB,EACTrC,EAAK8H,gBAAgBtuB,GAAS,GACrBwmB,EAAK8H,gBAAgBtuB,IAAUwmB,EAAK8H,gBAAgBtuB,GAAOZ,QACpEonB,EAAK8H,gBAAgBtuB,GAAOskB,SAAQ,CAACuK,EAAc9jB,MAC7C8jB,IAAiBhG,GAAYgG,EAAaD,SAAWC,EAAaD,UAAY/F,IAChFrC,EAAK8H,gBAAgBtuB,GAAOuP,OAAOxE,EAAO,EAC5C,GAEJ,IAEKyb,GAZ2BA,CAapC,CAEA,IAAAsI,IAAQ5b,GACN,MAAMsT,EAAOjnB,KACb,IAAKinB,EAAK8H,gBAAiB,OAAO9H,EAClC,IAAIgC,EACAznB,EACA0lB,EACmB,iBAAZvT,EAAK,IAAmBhD,MAAMiK,QAAQjH,EAAK,KACpDsV,EAAStV,EAAK,GACdnS,EAAOmS,EAAK7M,MAAM,EAAG6M,EAAK9T,QAC1BqnB,EAAUD,IAEVgC,EAAStV,EAAK,GAAGsV,OACjBznB,EAAOmS,EAAK,GAAGnS,KACf0lB,EAAUvT,EAAK,GAAGuT,SAAWD,GAc/B,OAZoBtW,MAAMiK,QAAQqO,GAAUA,EAASA,EAAOxX,MAAM,MACtDsT,SAAStkB,IACnB,GAAIwmB,EAAK8H,iBAAmB9H,EAAK8H,gBAAgBtuB,GAAQ,CACvD,MAAM4oB,EAAW,GACjBpC,EAAK8H,gBAAgBtuB,GAAOskB,SAASuK,IACnCjG,EAASjiB,KAAKkoB,EAAa,IAE7BjG,EAAStE,SAASuK,IAChBA,EAAavf,MAAMmX,EAAS1lB,EAAK,GAErC,KAEKylB,CACT,CAEA,gBAAAuI,CAAiBC,GACf,MAAMC,EAAW1vB,KACZ0vB,EAASC,SACd/uB,OAAOkkB,KAAK4K,EAASC,SAAS5K,SAAS6K,IACrC,MAAMrgB,EAASmgB,EAASC,QAAQC,GAE5BrgB,EAAO5O,QACTwrB,EAAMpnB,OAAO0qB,EAAgBlgB,EAAO5O,OACtC,GAEJ,CAEA,UAAAkvB,CAAWC,EAAgB,CAAC,GAC1B,MAAMJ,EAAW1vB,KACZ0vB,EAASC,SACd/uB,OAAOkkB,KAAK4K,EAASC,SAAS5K,SAAS6K,IACrC,MAAMrgB,EAASmgB,EAASC,QAAQC,GAC1BG,EAAeD,EAAcF,IAAe,CAAC,EAE/CrgB,EAAOmgB,UACT9uB,OAAOkkB,KAAKvV,EAAOmgB,UAAU3K,SAASiL,IACpC,MAAMC,EAAa1gB,EAAOmgB,SAASM,GAEjCN,EAASM,GADe,mBAAfC,EACkBA,EAAW1e,KAAKme,GAEhBO,CAC7B,IAIA1gB,EAAOxP,IAAM2vB,EAAS3vB,IACxBa,OAAOkkB,KAAKvV,EAAOxP,IAAIglB,SAASmL,IAC9BR,EAAS3vB,GAAGmwB,EAAiB3gB,EAAOxP,GAAGmwB,GAAiB,IAKxD3gB,EAAO4gB,QACT5gB,EAAO4gB,OAAO5e,KAAKme,EAAnBngB,CAA6BwgB,EAC/B,GAEJ,CAEA,qBAAWK,CAAWA,GACNpwB,KACHqwB,KADGrwB,KAERqwB,IAAID,EACZ,CAEA,oBAAOE,CAAc/gB,KAAW5O,GAC9B,MAAM8mB,EAAQznB,KACTynB,EAAM5Y,UAAU8gB,UAASlI,EAAM5Y,UAAU8gB,QAAU,CAAC,GACzD,MAAMhsB,EAAO4L,EAAO5L,MAAQ,GAAI/C,OAAOkkB,KAAK2C,EAAM5Y,UAAU8gB,SAAS9vB,UAAUssB,EAAMI,QAkBrF,OAjBA9E,EAAM5Y,UAAU8gB,QAAQhsB,GAAQ4L,EAE5BA,EAAOghB,OACT3vB,OAAOkkB,KAAKvV,EAAOghB,OAAOxL,SAAS7b,IACjCue,EAAM5Y,UAAU3F,GAAOqG,EAAOghB,MAAMrnB,EAAI,IAIxCqG,EAAOihB,QACT5vB,OAAOkkB,KAAKvV,EAAOihB,QAAQzL,SAAS7b,IAClCue,EAAMve,GAAOqG,EAAOihB,OAAOtnB,EAAI,IAI/BqG,EAAOkhB,SACTlhB,EAAOkhB,QAAQ1gB,MAAM0X,EAAO9mB,GAEvB8mB,CACT,CAEA,UAAO4I,CAAI9gB,KAAW5O,GACpB,MAAM8mB,EAAQznB,KACd,OAAI2Q,MAAMiK,QAAQrL,IAChBA,EAAOwV,SAAS5W,GAAMsZ,EAAM6I,cAAcniB,KACnCsZ,GAEFA,EAAM6I,cAAc/gB,KAAW5O,EACxC,EAmnBF,IAAI6W,EAAS,CACXkZ,WAjnBF,WACE,MAAMC,EAAS3wB,KACf,IAAIiJ,EACA+B,EACJ,MAAM4lB,EAAMD,EAAOC,IAEjB3nB,OADiC,IAAxB0nB,EAAOhwB,OAAOsI,MACf0nB,EAAOhwB,OAAOsI,MAEd2nB,EAAI,GAAGC,YAGf7lB,OADkC,IAAzB2lB,EAAOhwB,OAAOqK,OACd2lB,EAAOhwB,OAAOqK,OAEd4lB,EAAI,GAAGE,aAEH,IAAV7nB,GAAe0nB,EAAOI,gBAA+B,IAAX/lB,GAAgB2lB,EAAOK,eAKtE/nB,EAAQA,EAAQxE,SAASmsB,EAAI3X,IAAI,gBAAiB,IAAMxU,SAASmsB,EAAI3X,IAAI,iBAAkB,IAC3FjO,EAASA,EAASvG,SAASmsB,EAAI3X,IAAI,eAAgB,IAAMxU,SAASmsB,EAAI3X,IAAI,kBAAmB,IAE7FkT,EAAMpnB,OAAO4rB,EAAQ,CACnB1nB,QACA+B,SACAimB,KAAMN,EAAOI,eAAiB9nB,EAAQ+B,IAE1C,EAslBEkmB,aAplBF,WACE,MAAMP,EAAS3wB,KACTW,EAASgwB,EAAOhwB,QAEhB,WACJwwB,EAAYF,KAAMG,EAAYC,aAAcC,EAAG,SAAEC,GAC/CZ,EACEa,EAAYb,EAAOc,SAAW9wB,EAAO8wB,QAAQC,QAC7CC,EAAuBH,EAAYb,EAAOc,QAAQG,OAAO/xB,OAAS8wB,EAAOiB,OAAO/xB,OAChF+xB,EAAST,EAAW/qB,SAAS,IAAIuqB,EAAOhwB,OAAOkxB,cAC/CC,EAAeN,EAAYb,EAAOc,QAAQG,OAAO/xB,OAAS+xB,EAAO/xB,OACvE,IAAIkyB,EAAW,GACf,MAAMC,EAAa,GACbC,EAAkB,GAExB,SAASC,EAAgBC,GACvB,OAAKxxB,EAAOyxB,SACRD,IAAeP,EAAO/xB,OAAS,CAIrC,CAEA,IAAIwyB,EAAe1xB,EAAO2xB,mBACE,mBAAjBD,IACTA,EAAe1xB,EAAO2xB,mBAAmB9hB,KAAKmgB,IAGhD,IAAI4B,EAAc5xB,EAAO6xB,kBACE,mBAAhBD,IACTA,EAAc5xB,EAAO6xB,kBAAkBhiB,KAAKmgB,IAG9C,MAAM8B,EAAyB9B,EAAOoB,SAASlyB,OACzC6yB,EAA2B/B,EAAOoB,SAASlyB,OAEjD,IAiBI8yB,EAaAC,EA9BAC,EAAelyB,EAAOkyB,aACtBC,GAAiBT,EACjBU,EAAgB,EAChBvnB,EAAQ,EACZ,QAA0B,IAAf4lB,EACT,OAE0B,iBAAjByB,GAA6BA,EAAa9f,QAAQ,MAAQ,IACnE8f,EAAgBzI,WAAWyI,EAAaxwB,QAAQ,IAAK,KAAO,IAAO+uB,GAGrET,EAAOqC,aAAeH,EAGlBvB,EAAKM,EAAO3Y,IAAI,CAAEga,WAAY,GAAIC,UAAW,KAC5CtB,EAAO3Y,IAAI,CAAEka,YAAa,GAAIC,aAAc,KAG7CzyB,EAAO0yB,gBAAkB,IAEzBV,EADExhB,KAAKC,MAAM0gB,EAAenxB,EAAO0yB,mBAAqBvB,EAAenB,EAAOhwB,OAAO0yB,gBAC5DvB,EAEA3gB,KAAKmiB,KAAKxB,EAAenxB,EAAO0yB,iBAAmB1yB,EAAO0yB,gBAExD,SAAzB1yB,EAAO4yB,eAA2D,QAA/B5yB,EAAO6yB,sBAC5Cb,EAAyBxhB,KAAKsiB,IAAId,EAAwBhyB,EAAO4yB,cAAgB5yB,EAAO0yB,mBAM5F,MAAMA,EAAkB1yB,EAAO0yB,gBACzBK,EAAef,EAAyBU,EACxCM,EAAiBxiB,KAAKC,MAAM0gB,EAAenxB,EAAO0yB,iBACxD,IAAK,IAAIrnB,EAAI,EAAGA,EAAI8lB,EAAc9lB,GAAK,EAAG,CACxC4mB,EAAY,EACZ,MAAMgB,EAAQhC,EAAOjc,GAAG3J,GACxB,GAAIrL,EAAO0yB,gBAAkB,EAAG,CAE9B,IAAIQ,EACAC,EACAC,EACJ,GAAmC,QAA/BpzB,EAAO6yB,qBAAiC7yB,EAAOqzB,eAAiB,EAAG,CACrE,MAAMC,EAAa9iB,KAAKC,MAAMpF,GAAKrL,EAAOqzB,eAAiBrzB,EAAO0yB,kBAC5Da,EAAoBloB,EAAIrL,EAAO0yB,gBAAkB1yB,EAAOqzB,eAAiBC,EACzEE,EAAgC,IAAfF,EACnBtzB,EAAOqzB,eACP7iB,KAAKijB,IAAIjjB,KAAKmiB,MAAMxB,EAAemC,EAAaZ,EAAkB1yB,EAAOqzB,gBAAkBX,GAAkB1yB,EAAOqzB,gBACxHD,EAAM5iB,KAAKC,MAAM8iB,EAAoBC,GACrCL,EAAUI,EAAoBH,EAAMI,EAAkBF,EAAatzB,EAAOqzB,eAE1EH,EAAqBC,EAAWC,EAAMpB,EAA0BU,EAChEO,EACG3a,IAAI,CACH,4BAA6B4a,EAC7B,yBAA0BA,EAC1B,iBAAkBA,EAClB,gBAAiBA,EACjBQ,MAAOR,GAEb,KAA0C,WAA/BlzB,EAAO6yB,qBAChBM,EAAS3iB,KAAKC,MAAMpF,EAAIqnB,GACxBU,EAAM/nB,EAAK8nB,EAAST,GAChBS,EAASH,GAAmBG,IAAWH,GAAkBI,IAAQV,EAAkB,KACrFU,GAAO,EACHA,GAAOV,IACTU,EAAM,EACND,GAAU,MAIdC,EAAM5iB,KAAKC,MAAMpF,EAAI0nB,GACrBI,EAAS9nB,EAAK+nB,EAAML,GAEtBE,EAAM3a,IACJ,WAAU0X,EAAOI,eAAiB,MAAQ,QACjC,IAARgD,GAAapzB,EAAOkyB,cAAiB,GAAIlyB,EAAOkyB,iBAErD,CACA,GAA6B,SAAzBe,EAAM3a,IAAI,WAAd,CAEA,GAA6B,SAAzBtY,EAAO4yB,cAA0B,CACnC,MAAMe,EAAcnO,EAAO1D,iBAAiBmR,EAAM,GAAI,MAChDW,EAAmBX,EAAM,GAAGhiB,MAAMqW,UAClCuM,EAAyBZ,EAAM,GAAGhiB,MAAMuW,gBAO9C,GANIoM,IACFX,EAAM,GAAGhiB,MAAMqW,UAAY,QAEzBuM,IACFZ,EAAM,GAAGhiB,MAAMuW,gBAAkB,QAE/BxnB,EAAO8zB,aACT7B,EAAYjC,EAAOI,eACf6C,EAAMjW,YAAW,GACjBiW,EAAMnrB,aAAY,QAGtB,GAAIkoB,EAAOI,eAAgB,CACzB,MAAM9nB,EAAQmhB,WAAWkK,EAAY3N,iBAAiB,UAChD+N,EAActK,WAAWkK,EAAY3N,iBAAiB,iBACtDgO,EAAevK,WAAWkK,EAAY3N,iBAAiB,kBACvDsM,EAAa7I,WAAWkK,EAAY3N,iBAAiB,gBACrDwM,EAAc/I,WAAWkK,EAAY3N,iBAAiB,iBACtDiO,EAAYN,EAAY3N,iBAAiB,cAE7CiM,EADEgC,GAA2B,eAAdA,EACH3rB,EAAQgqB,EAAaE,EAErBlqB,EAAQyrB,EAAcC,EAAe1B,EAAaE,CAElE,KAAO,CACL,MAAMnoB,EAASof,WAAWkK,EAAY3N,iBAAiB,WACjDkO,EAAazK,WAAWkK,EAAY3N,iBAAiB,gBACrDmO,EAAgB1K,WAAWkK,EAAY3N,iBAAiB,mBACxDuM,EAAY9I,WAAWkK,EAAY3N,iBAAiB,eACpDyM,EAAehJ,WAAWkK,EAAY3N,iBAAiB,kBACvDiO,EAAYN,EAAY3N,iBAAiB,cAE7CiM,EADEgC,GAA2B,eAAdA,EACH5pB,EAASkoB,EAAYE,EAErBpoB,EAAS6pB,EAAaC,EAAgB5B,EAAYE,CAElE,CAEEmB,IACFX,EAAM,GAAGhiB,MAAMqW,UAAYsM,GAEzBC,IACFZ,EAAM,GAAGhiB,MAAMuW,gBAAkBqM,GAE/B7zB,EAAO8zB,eAAc7B,EAAYzhB,KAAKC,MAAMwhB,GAClD,MACEA,GAAaxB,GAAezwB,EAAO4yB,cAAgB,GAAKV,GAAiBlyB,EAAO4yB,cAC5E5yB,EAAO8zB,eAAc7B,EAAYzhB,KAAKC,MAAMwhB,IAE5ChB,EAAO5lB,KACL2kB,EAAOI,eACTa,EAAO5lB,GAAG4F,MAAM3I,MAAQ,GAAG2pB,MAE3BhB,EAAO5lB,GAAG4F,MAAM5G,OAAS,GAAG4nB,OAI9BhB,EAAO5lB,KACT4lB,EAAO5lB,GAAG+oB,gBAAkBnC,GAE9BX,EAAgB7qB,KAAKwrB,GAGjBjyB,EAAOq0B,gBACTlC,EAAgBA,EAAiBF,EAAY,EAAMG,EAAgB,EAAKF,EAClD,IAAlBE,GAA6B,IAAN/mB,IAAS8mB,EAAgBA,EAAiB1B,EAAa,EAAKyB,GAC7E,IAAN7mB,IAAS8mB,EAAgBA,EAAiB1B,EAAa,EAAKyB,GAC5D1hB,KAAK8jB,IAAInC,GAAiB,OAAUA,EAAgB,GACpDnyB,EAAO8zB,eAAc3B,EAAgB3hB,KAAKC,MAAM0hB,IAChD,EAAUnyB,EAAOqzB,gBAAmB,GAAGjC,EAAS3qB,KAAK0rB,GACzDd,EAAW5qB,KAAK0rB,KAEZnyB,EAAO8zB,eAAc3B,EAAgB3hB,KAAKC,MAAM0hB,KAC/CtnB,EAAQ2F,KAAKijB,IAAIzD,EAAOhwB,OAAOu0B,mBAAoB1pB,IAAUmlB,EAAOhwB,OAAOqzB,gBAAmB,GAAGjC,EAAS3qB,KAAK0rB,GACpHd,EAAW5qB,KAAK0rB,GAChBA,EAAgBA,EAAgBF,EAAYC,GAG9ClC,EAAOqC,aAAeJ,EAAYC,EAElCE,EAAgBH,EAEhBpnB,GAAS,CAxFoC,CAyF/C,CAEA,IAAI2pB,EAWJ,GAZAxE,EAAOqC,YAAc7hB,KAAKsiB,IAAI9C,EAAOqC,YAAa5B,GAAcmB,EAI9DjB,GAAOC,IAA+B,UAAlB5wB,EAAOy0B,QAAwC,cAAlBz0B,EAAOy0B,SACxDjE,EAAWlY,IAAI,CAAEhQ,MAAO,GAAG0nB,EAAOqC,YAAcryB,EAAOkyB,mBAErDlyB,EAAO00B,iBACL1E,EAAOI,eAAgBI,EAAWlY,IAAI,CAAEhQ,MAAO,GAAG0nB,EAAOqC,YAAcryB,EAAOkyB,mBAC7E1B,EAAWlY,IAAI,CAAEjO,OAAQ,GAAG2lB,EAAOqC,YAAcryB,EAAOkyB,oBAG3DlyB,EAAO0yB,gBAAkB,IAC3B1C,EAAOqC,aAAeJ,EAAYjyB,EAAOkyB,cAAgBF,EACzDhC,EAAOqC,YAAc7hB,KAAKmiB,KAAK3C,EAAOqC,YAAcryB,EAAO0yB,iBAAmB1yB,EAAOkyB,aACjFlC,EAAOI,eAAgBI,EAAWlY,IAAI,CAAEhQ,MAAO,GAAG0nB,EAAOqC,YAAcryB,EAAOkyB,mBAC7E1B,EAAWlY,IAAI,CAAEjO,OAAQ,GAAG2lB,EAAOqC,YAAcryB,EAAOkyB,mBACzDlyB,EAAOq0B,gBAAgB,CACzBG,EAAgB,GAChB,IAAK,IAAInpB,EAAI,EAAGA,EAAI+lB,EAASlyB,OAAQmM,GAAK,EAAG,CAC3C,IAAIspB,EAAiBvD,EAAS/lB,GAC1BrL,EAAO8zB,eAAca,EAAiBnkB,KAAKC,MAAMkkB,IACjDvD,EAAS/lB,GAAK2kB,EAAOqC,YAAcjB,EAAS,IAAIoD,EAAc/tB,KAAKkuB,EACzE,CACAvD,EAAWoD,CACb,CAIF,IAAKx0B,EAAOq0B,eAAgB,CAC1BG,EAAgB,GAChB,IAAK,IAAInpB,EAAI,EAAGA,EAAI+lB,EAASlyB,OAAQmM,GAAK,EAAG,CAC3C,IAAIspB,EAAiBvD,EAAS/lB,GAC1BrL,EAAO8zB,eAAca,EAAiBnkB,KAAKC,MAAMkkB,IACjDvD,EAAS/lB,IAAM2kB,EAAOqC,YAAc5B,GACtC+D,EAAc/tB,KAAKkuB,EAEvB,CACAvD,EAAWoD,EACPhkB,KAAKC,MAAMuf,EAAOqC,YAAc5B,GAAcjgB,KAAKC,MAAM2gB,EAASA,EAASlyB,OAAS,IAAM,GAC5FkyB,EAAS3qB,KAAKupB,EAAOqC,YAAc5B,EAEvC,CAUA,GATwB,IAApBW,EAASlyB,SAAckyB,EAAW,CAAC,IAEX,IAAxBpxB,EAAOkyB,eACLlC,EAAOI,eACLO,EAAKM,EAAO9e,OAAOof,GAAiBjZ,IAAI,CAAEga,WAAY,GAAGJ,QACxDjB,EAAO9e,OAAOof,GAAiBjZ,IAAI,CAAEka,YAAa,GAAGN,QACrDjB,EAAO9e,OAAOof,GAAiBjZ,IAAI,CAAEma,aAAc,GAAGP,SAG3DlyB,EAAOq0B,gBAAkBr0B,EAAO40B,qBAAsB,CACxD,IAAIC,EAAgB,EACpBvD,EAAgBlN,SAAS0Q,IACvBD,GAAiBC,GAAkB90B,EAAOkyB,aAAelyB,EAAOkyB,aAAe,EAAE,IAEnF2C,GAAiB70B,EAAOkyB,aACxB,MAAM6C,EAAUF,EAAgBpE,EAChCW,EAAWA,EAASzd,KAAKqhB,GACnBA,EAAO,GAAWtD,EAClBsD,EAAOD,EAAgBA,EAAUnD,EAC9BoD,GAEX,CAEA,GAAIh1B,EAAOi1B,yBAA0B,CACnC,IAAIJ,EAAgB,EAKpB,GAJAvD,EAAgBlN,SAAS0Q,IACvBD,GAAiBC,GAAkB90B,EAAOkyB,aAAelyB,EAAOkyB,aAAe,EAAE,IAEnF2C,GAAiB70B,EAAOkyB,aACpB2C,EAAgBpE,EAAY,CAC9B,MAAMyE,GAAmBzE,EAAaoE,GAAiB,EACvDzD,EAAShN,SAAQ,CAAC4Q,EAAMG,KACtB/D,EAAS+D,GAAaH,EAAOE,CAAe,IAE9C7D,EAAWjN,SAAQ,CAAC4Q,EAAMG,KACxB9D,EAAW8D,GAAaH,EAAOE,CAAe,GAElD,CACF,CAEA1J,EAAMpnB,OAAO4rB,EAAQ,CACnBiB,SACAG,WACAC,aACAC,oBAGEH,IAAiBH,GACnBhB,EAAOpB,KAAK,sBAEVwC,EAASlyB,SAAW4yB,IAClB9B,EAAOhwB,OAAOo1B,eAAepF,EAAOqF,gBACxCrF,EAAOpB,KAAK,yBAEVyC,EAAWnyB,SAAW6yB,GACxB/B,EAAOpB,KAAK,2BAGV5uB,EAAOs1B,qBAAuBt1B,EAAOu1B,wBACvCvF,EAAOwF,oBAEX,EAgSEC,iBA9RF,SAA2BxsB,GACzB,MAAM+mB,EAAS3wB,KACTq2B,EAAe,GACrB,IACIrqB,EADAsqB,EAAY,EAQhB,GANqB,iBAAV1sB,EACT+mB,EAAO4F,cAAc3sB,IACF,IAAVA,GACT+mB,EAAO4F,cAAc5F,EAAOhwB,OAAOiJ,OAGD,SAAhC+mB,EAAOhwB,OAAO4yB,eAA4B5C,EAAOhwB,OAAO4yB,cAAgB,EAC1E,GAAI5C,EAAOhwB,OAAOq0B,eAChBrE,EAAO6F,cAAc9yB,MAAK,CAAC8H,EAAOooB,KAChCyC,EAAajvB,KAAKwsB,EAAM,SAG1B,IAAK5nB,EAAI,EAAGA,EAAImF,KAAKmiB,KAAK3C,EAAOhwB,OAAO4yB,eAAgBvnB,GAAK,EAAG,CAC9D,MAAMR,EAAQmlB,EAAO8F,YAAczqB,EACnC,GAAIR,EAAQmlB,EAAOiB,OAAO/xB,OAAQ,MAClCw2B,EAAajvB,KAAKupB,EAAOiB,OAAOjc,GAAGnK,GAAO,GAC5C,MAGF6qB,EAAajvB,KAAKupB,EAAOiB,OAAOjc,GAAGgb,EAAO8F,aAAa,IAIzD,IAAKzqB,EAAI,EAAGA,EAAIqqB,EAAax2B,OAAQmM,GAAK,EACxC,QAA+B,IAApBqqB,EAAarqB,GAAoB,CAC1C,MAAMhB,EAASqrB,EAAarqB,GAAGqe,aAC/BiM,EAAYtrB,EAASsrB,EAAYtrB,EAASsrB,CAC5C,CAIEA,GAAW3F,EAAOQ,WAAWlY,IAAI,SAAU,GAAGqd,MACpD,EA0PEH,mBAxPF,WACE,MAAMxF,EAAS3wB,KACT4xB,EAASjB,EAAOiB,OACtB,IAAK,IAAI5lB,EAAI,EAAGA,EAAI4lB,EAAO/xB,OAAQmM,GAAK,EACtC4lB,EAAO5lB,GAAG0qB,kBAAoB/F,EAAOI,eAAiBa,EAAO5lB,GAAG2qB,WAAa/E,EAAO5lB,GAAG4qB,SAE3F,EAmPEC,qBAjPF,SAA+BC,EAAa92B,MAAQA,KAAK82B,WAAc,GACrE,MAAMnG,EAAS3wB,KACTW,EAASgwB,EAAOhwB,QAEhB,OAAEixB,EAAQP,aAAcC,GAAQX,EAEtC,GAAsB,IAAlBiB,EAAO/xB,OAAc,YACkB,IAAhC+xB,EAAO,GAAG8E,mBAAmC/F,EAAOwF,qBAE/D,IAAIY,GAAgBD,EAChBxF,IAAKyF,EAAeD,GAGxBlF,EAAOzyB,YAAYwB,EAAOq2B,mBAE1BrG,EAAOsG,qBAAuB,GAC9BtG,EAAO6F,cAAgB,GAEvB,IAAK,IAAIxqB,EAAI,EAAGA,EAAI4lB,EAAO/xB,OAAQmM,GAAK,EAAG,CACzC,MAAM4nB,EAAQhC,EAAO5lB,GACfkrB,GACHH,GAAgBp2B,EAAOq0B,eAAiBrE,EAAOwG,eAAiB,GAAMvD,EAAM8C,oBAC1E9C,EAAMmB,gBAAkBp0B,EAAOkyB,cACpC,GAAIlyB,EAAOu1B,uBAA0Bv1B,EAAOq0B,gBAAkBr0B,EAAOy2B,WAAa,CAChF,MAAMC,IAAgBN,EAAenD,EAAM8C,mBACrCY,EAAaD,EAAc1G,EAAOsB,gBAAgBjmB,IACrCqrB,GAAe,GAAKA,EAAc1G,EAAOM,KAAO,GACrDqG,EAAa,GAAKA,GAAc3G,EAAOM,MACvCoG,GAAe,GAAKC,GAAc3G,EAAOM,QAErDN,EAAO6F,cAAcpvB,KAAKwsB,GAC1BjD,EAAOsG,qBAAqB7vB,KAAK4E,GACjC4lB,EAAOjc,GAAG3J,GAAG5M,SAASuB,EAAOq2B,mBAEjC,CACApD,EAAM2D,SAAWjG,GAAO4F,EAAgBA,CAC1C,CACAvG,EAAO6F,cAAgB73B,EAAEgyB,EAAO6F,cAClC,EA4MEgB,eA1MF,SAAyBV,GACvB,MAAMnG,EAAS3wB,KACf,QAAyB,IAAd82B,EAA2B,CACpC,MAAMW,EAAa9G,EAAOU,cAAgB,EAAI,EAE9CyF,EAAanG,GAAUA,EAAOmG,WAAcnG,EAAOmG,UAAYW,GAAgB,CACjF,CACA,MAAM92B,EAASgwB,EAAOhwB,OAChB+2B,EAAiB/G,EAAOgH,eAAiBhH,EAAOwG,eACtD,IAAI,SAAEI,EAAQ,YAAEK,EAAW,MAAEC,GAAUlH,EACvC,MAAMmH,EAAeF,EACfG,EAASF,EACQ,IAAnBH,GACFH,EAAW,EACXK,GAAc,EACdC,GAAQ,IAERN,GAAYT,EAAYnG,EAAOwG,gBAAkB,EACjDS,EAAcL,GAAY,EAC1BM,EAAQN,GAAY,GAEtBpL,EAAMpnB,OAAO4rB,EAAQ,CACnB4G,WACAK,cACAC,WAGEl3B,EAAOs1B,qBAAuBt1B,EAAOu1B,uBAA0Bv1B,EAAOq0B,gBAAkBr0B,EAAOy2B,aAAazG,EAAOkG,qBAAqBC,GAExIc,IAAgBE,GAClBnH,EAAOpB,KAAK,yBAEVsI,IAAUE,GACZpH,EAAOpB,KAAK,oBAETuI,IAAiBF,GAAiBG,IAAWF,IAChDlH,EAAOpB,KAAK,YAGdoB,EAAOpB,KAAK,WAAYgI,EAC1B,EAmKES,oBAjKF,WACE,MAAMrH,EAAS3wB,MAET,OACJ4xB,EAAM,OAAEjxB,EAAM,WAAEwwB,EAAU,YAAEsF,EAAW,UAAEwB,GACvCtH,EACEa,EAAYb,EAAOc,SAAW9wB,EAAO8wB,QAAQC,QAInD,IAAIwG,EAFJtG,EAAOzyB,YAAY,GAAGwB,EAAOw3B,oBAAoBx3B,EAAOy3B,kBAAkBz3B,EAAO03B,kBAAkB13B,EAAO23B,6BAA6B33B,EAAO43B,2BAA2B53B,EAAO63B,2BAI9KN,EADE1G,EACYb,EAAOQ,WAAWnyB,KAAK,IAAI2B,EAAOkxB,uCAAuC4E,OAEzE7E,EAAOjc,GAAG8gB,GAI1ByB,EAAY94B,SAASuB,EAAOw3B,kBAExBx3B,EAAO83B,OAELP,EAAY73B,SAASM,EAAO+3B,qBAC9BvH,EACG/qB,SAAS,IAAIzF,EAAOkxB,mBAAmBlxB,EAAO+3B,iDAAiDT,OAC/F74B,SAASuB,EAAO23B,2BAEnBnH,EACG/qB,SAAS,IAAIzF,EAAOkxB,cAAclxB,EAAO+3B,gDAAgDT,OACzF74B,SAASuB,EAAO23B,4BAIvB,IAAIK,EAAYT,EAAY3M,QAAQ,IAAI5qB,EAAOkxB,cAAclc,GAAG,GAAGvW,SAASuB,EAAOy3B,gBAC/Ez3B,EAAO83B,MAA6B,IAArBE,EAAU94B,SAC3B84B,EAAY/G,EAAOjc,GAAG,GACtBgjB,EAAUv5B,SAASuB,EAAOy3B,iBAG5B,IAAIQ,EAAYV,EAAYvM,QAAQ,IAAIhrB,EAAOkxB,cAAclc,GAAG,GAAGvW,SAASuB,EAAO03B,gBAC/E13B,EAAO83B,MAA6B,IAArBG,EAAU/4B,SAC3B+4B,EAAYhH,EAAOjc,IAAI,GACvBijB,EAAUx5B,SAASuB,EAAO03B,iBAExB13B,EAAO83B,OAELE,EAAUt4B,SAASM,EAAO+3B,qBAC5BvH,EACG/qB,SAAS,IAAIzF,EAAOkxB,mBAAmBlxB,EAAO+3B,iDAAiDC,EAAU55B,KAAK,gCAC9GK,SAASuB,EAAO43B,yBAEnBpH,EACG/qB,SAAS,IAAIzF,EAAOkxB,cAAclxB,EAAO+3B,gDAAgDC,EAAU55B,KAAK,gCACxGK,SAASuB,EAAO43B,yBAEjBK,EAAUv4B,SAASM,EAAO+3B,qBAC5BvH,EACG/qB,SAAS,IAAIzF,EAAOkxB,mBAAmBlxB,EAAO+3B,iDAAiDE,EAAU75B,KAAK,gCAC9GK,SAASuB,EAAO63B,yBAEnBrH,EACG/qB,SAAS,IAAIzF,EAAOkxB,cAAclxB,EAAO+3B,gDAAgDE,EAAU75B,KAAK,gCACxGK,SAASuB,EAAO63B,yBAGzB,EAiGEK,kBA/FF,SAA4BC,GAC1B,MAAMnI,EAAS3wB,KACT82B,EAAYnG,EAAOU,aAAeV,EAAOmG,WAAanG,EAAOmG,WAC7D,WACJ9E,EAAU,SAAED,EAAQ,OAAEpxB,EAAQ81B,YAAasC,EAAed,UAAWe,EAAmBlD,UAAWmD,GACjGtI,EACJ,IACImF,EADAW,EAAcqC,EAElB,QAA2B,IAAhBrC,EAA6B,CACtC,IAAK,IAAIzqB,EAAI,EAAGA,EAAIgmB,EAAWnyB,OAAQmM,GAAK,OACT,IAAtBgmB,EAAWhmB,EAAI,GACpB8qB,GAAa9E,EAAWhmB,IAAM8qB,EAAY9E,EAAWhmB,EAAI,IAAOgmB,EAAWhmB,EAAI,GAAKgmB,EAAWhmB,IAAM,EACvGyqB,EAAczqB,EACL8qB,GAAa9E,EAAWhmB,IAAM8qB,EAAY9E,EAAWhmB,EAAI,KAClEyqB,EAAczqB,EAAI,GAEX8qB,GAAa9E,EAAWhmB,KACjCyqB,EAAczqB,GAIdrL,EAAOu4B,sBACLzC,EAAc,QAA4B,IAAhBA,KAA6BA,EAAc,EAE7E,CACA,GAAI1E,EAAShf,QAAQ+jB,IAAc,EACjChB,EAAY/D,EAAShf,QAAQ+jB,OACxB,CACL,MAAMqC,EAAOhoB,KAAKijB,IAAIzzB,EAAOu0B,mBAAoBuB,GACjDX,EAAYqD,EAAOhoB,KAAKC,OAAOqlB,EAAc0C,GAAQx4B,EAAOqzB,eAC9D,CAEA,GADI8B,GAAa/D,EAASlyB,SAAQi2B,EAAY/D,EAASlyB,OAAS,GAC5D42B,IAAgBsC,EAKlB,YAJIjD,IAAcmD,IAChBtI,EAAOmF,UAAYA,EACnBnF,EAAOpB,KAAK,qBAMhB,MAAM0I,EAAYxzB,SAASksB,EAAOiB,OAAOjc,GAAG8gB,GAAa13B,KAAK,4BAA8B03B,EAAa,IAEzGtK,EAAMpnB,OAAO4rB,EAAQ,CACnBmF,YACAmC,YACAc,gBACAtC,gBAEF9F,EAAOpB,KAAK,qBACZoB,EAAOpB,KAAK,mBACRyJ,IAAsBf,GACxBtH,EAAOpB,KAAK,oBAEVoB,EAAOyI,aAAezI,EAAOhwB,OAAO04B,qBACtC1I,EAAOpB,KAAK,cAEhB,EAuCE+J,mBArCF,SAA6B3rB,GAC3B,MAAMgjB,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAChBizB,EAAQj1B,EAAEgP,EAAEvE,QAAQjJ,QAAQ,IAAIQ,EAAOkxB,cAAc,GAC3D,IAAI0H,GAAa,EACjB,GAAI3F,EACF,IAAK,IAAI5nB,EAAI,EAAGA,EAAI2kB,EAAOiB,OAAO/xB,OAAQmM,GAAK,EACzC2kB,EAAOiB,OAAO5lB,KAAO4nB,IAAO2F,GAAa,GAIjD,IAAI3F,IAAS2F,EAUX,OAFA5I,EAAO6I,kBAAexQ,OACtB2H,EAAO8I,kBAAezQ,GARtB2H,EAAO6I,aAAe5F,EAClBjD,EAAOc,SAAWd,EAAOhwB,OAAO8wB,QAAQC,QAC1Cf,EAAO8I,aAAeh1B,SAAS9F,EAAEi1B,GAAO70B,KAAK,2BAA4B,IAEzE4xB,EAAO8I,aAAe96B,EAAEi1B,GAAOpoB,QAO/B7K,EAAO+4B,0BAA+C1Q,IAAxB2H,EAAO8I,cAA8B9I,EAAO8I,eAAiB9I,EAAO8F,aACpG9F,EAAO+I,qBAEX,GAkKA,IAAI5C,EAAY,CACdtK,aArJF,SAAuBC,GAAOzsB,KAAK+wB,eAAiB,IAAM,MACxD,MAEM,OACJpwB,EAAQ0wB,aAAcC,EAAG,UAAEwF,EAAS,WAAE3F,GAHzBnxB,KAMf,GAAIW,EAAOg5B,iBACT,OAAOrI,GAAOwF,EAAYA,EAE5B,GAAIn2B,EAAOyxB,QACT,OAAO0E,EAGT,IAAI8C,EAAmBzN,EAAMK,aAAa2E,EAAW,GAAI1E,GAGzD,OAFI6E,IAAKsI,GAAoBA,GAEtBA,GAAoB,CAC7B,EAoIEC,aAlIF,SAAuB/C,EAAWgD,GAChC,MAAMnJ,EAAS3wB,MAEbqxB,aAAcC,EAAG,OAAE3wB,EAAM,WAAEwwB,EAAU,UAAE4I,EAAS,SAAExC,GAChD5G,EACJ,IAwBIqJ,EAxBAhrB,EAAI,EACJZ,EAAI,EAGJuiB,EAAOI,eACT/hB,EAAIsiB,GAAOwF,EAAYA,EAEvB1oB,EAAI0oB,EAGFn2B,EAAO8zB,eACTzlB,EAAImC,KAAKC,MAAMpC,GACfZ,EAAI+C,KAAKC,MAAMhD,IAGbzN,EAAOyxB,QACT2H,EAAUpJ,EAAOI,eAAiB,aAAe,aAAeJ,EAAOI,gBAAkB/hB,GAAKZ,EACpFzN,EAAOg5B,kBACjBxI,EAAWlJ,UAAU,eAAejZ,QAAQZ,aAE9CuiB,EAAOsJ,kBAAoBtJ,EAAOmG,UAClCnG,EAAOmG,UAAYnG,EAAOI,eAAiB/hB,EAAIZ,EAI/C,MAAMspB,EAAiB/G,EAAOgH,eAAiBhH,EAAOwG,eAEpD6C,EADqB,IAAnBtC,EACY,GAECZ,EAAYnG,EAAOwG,gBAAkB,EAElD6C,IAAgBzC,GAClB5G,EAAO6G,eAAeV,GAGxBnG,EAAOpB,KAAK,eAAgBoB,EAAOmG,UAAWgD,EAChD,EA0FE3C,aAxFF,WACE,OAASn3B,KAAK+xB,SAAS,EACzB,EAuFE4F,aArFF,WACE,OAAS33B,KAAK+xB,SAAS/xB,KAAK+xB,SAASlyB,OAAS,EAChD,EAoFEq6B,YAlFF,SAAsBpD,EAAY,EAAGltB,EAAQ5J,KAAKW,OAAOiJ,MAAOuwB,GAAe,EAAMC,GAAkB,EAAMC,GAC3G,MAAM1J,EAAS3wB,MAET,OACJW,EAAM,UACNo5B,GACEpJ,EAEJ,GAAIA,EAAO2J,WAAa35B,EAAO45B,+BAC7B,OAAO,EAGT,MAAMpD,EAAexG,EAAOwG,eACtBQ,EAAehH,EAAOgH,eAC5B,IAAI6C,EAQJ,GAPiDA,EAA7CJ,GAAmBtD,EAAYK,EAA6BA,EACvDiD,GAAmBtD,EAAYa,EAA6BA,EACjDb,EAGpBnG,EAAO6G,eAAegD,GAElB75B,EAAOyxB,QAAS,CAClB,MAAMqI,EAAM9J,EAAOI,eAcnB,OAbc,IAAVnnB,EACFmwB,EAAUU,EAAM,aAAe,cAAgBD,EAG3CT,EAAUW,SACZX,EAAUW,SAAS,CACjB,CAACD,EAAM,OAAS,QAASD,EACzBG,SAAU,WAGZZ,EAAUU,EAAM,aAAe,cAAgBD,GAG5C,CACT,CAoCA,OAlCc,IAAV5wB,GACF+mB,EAAO4F,cAAc,GACrB5F,EAAOkJ,aAAaW,GAChBL,IACFxJ,EAAOpB,KAAK,wBAAyB3lB,EAAOywB,GAC5C1J,EAAOpB,KAAK,oBAGdoB,EAAO4F,cAAc3sB,GACrB+mB,EAAOkJ,aAAaW,GAChBL,IACFxJ,EAAOpB,KAAK,wBAAyB3lB,EAAOywB,GAC5C1J,EAAOpB,KAAK,oBAEToB,EAAO2J,YACV3J,EAAO2J,WAAY,EACd3J,EAAOiK,oCACVjK,EAAOiK,kCAAoC,SAAuBjtB,GAC3DgjB,IAAUA,EAAOkK,WAClBltB,EAAEvE,SAAWpJ,OACjB2wB,EAAOQ,WAAW,GAAGhM,oBAAoB,gBAAiBwL,EAAOiK,mCACjEjK,EAAOQ,WAAW,GAAGhM,oBAAoB,sBAAuBwL,EAAOiK,mCACvEjK,EAAOiK,kCAAoC,YACpCjK,EAAOiK,kCACVT,GACFxJ,EAAOpB,KAAK,iBAEhB,GAEFoB,EAAOQ,WAAW,GAAGjM,iBAAiB,gBAAiByL,EAAOiK,mCAC9DjK,EAAOQ,WAAW,GAAGjM,iBAAiB,sBAAuByL,EAAOiK,sCAIjE,CACT,GAiFA,IAAI,EAAa,CACfrE,cAxEF,SAAwBnO,EAAU0R,GAChC,MAAMnJ,EAAS3wB,KAEV2wB,EAAOhwB,OAAOyxB,SACjBzB,EAAOQ,WAAW/oB,WAAWggB,GAG/BuI,EAAOpB,KAAK,gBAAiBnH,EAAU0R,EACzC,EAiEEgB,gBA/DF,SAA0BX,GAAe,EAAMY,GAC7C,MAAMpK,EAAS3wB,MACT,YAAEy2B,EAAW,OAAE91B,EAAM,cAAEo4B,GAAkBpI,EAC/C,GAAIhwB,EAAOyxB,QAAS,OAChBzxB,EAAOy2B,YACTzG,EAAOyF,mBAGT,IAAI3U,EAAMsZ,EASV,GARKtZ,IAC8BA,EAA7BgV,EAAcsC,EAAqB,OAC9BtC,EAAcsC,EAAqB,OACjC,SAGbpI,EAAOpB,KAAK,mBAER4K,GAAgB1D,IAAgBsC,EAAe,CACjD,GAAY,UAARtX,EAEF,YADAkP,EAAOpB,KAAK,6BAGdoB,EAAOpB,KAAK,8BACA,SAAR9N,EACFkP,EAAOpB,KAAK,4BAEZoB,EAAOpB,KAAK,2BAEhB,CACF,EAmCEzF,cAjCF,SAAwBqQ,GAAe,EAAMY,GAC3C,MAAMpK,EAAS3wB,MACT,YAAEy2B,EAAW,cAAEsC,EAAa,OAAEp4B,GAAWgwB,EAE/C,GADAA,EAAO2J,WAAY,EACf35B,EAAOyxB,QAAS,OACpBzB,EAAO4F,cAAc,GAErB,IAAI9U,EAAMsZ,EASV,GARKtZ,IAC8BA,EAA7BgV,EAAcsC,EAAqB,OAC9BtC,EAAcsC,EAAqB,OACjC,SAGbpI,EAAOpB,KAAK,iBAER4K,GAAgB1D,IAAgBsC,EAAe,CACjD,GAAY,UAARtX,EAEF,YADAkP,EAAOpB,KAAK,2BAGdoB,EAAOpB,KAAK,4BACA,SAAR9N,EACFkP,EAAOpB,KAAK,0BAEZoB,EAAOpB,KAAK,yBAEhB,CACF,GAoRA,IAAIqE,EAAQ,CACVoH,QA7QF,SAAkBxvB,EAAQ,EAAG5B,EAAQ5J,KAAKW,OAAOiJ,MAAOuwB,GAAe,EAAME,GAC3E,MAAM1J,EAAS3wB,KACf,IAAImyB,EAAa3mB,EACb2mB,EAAa,IAAGA,EAAa,GAEjC,MAAM,OACJxxB,EAAM,SAAEoxB,EAAQ,WAAEC,EAAU,cAAE+G,EAAa,YAAEtC,EAAapF,aAAcC,EAAG,UAAEyI,GAC3EpJ,EACJ,GAAIA,EAAO2J,WAAa35B,EAAO45B,+BAC7B,OAAO,EAGT,MAAMpB,EAAOhoB,KAAKijB,IAAIzD,EAAOhwB,OAAOu0B,mBAAoB/C,GACxD,IAAI2D,EAAYqD,EAAOhoB,KAAKC,OAAO+gB,EAAagH,GAAQxI,EAAOhwB,OAAOqzB,gBAClE8B,GAAa/D,EAASlyB,SAAQi2B,EAAY/D,EAASlyB,OAAS,IAE3D42B,GAAe91B,EAAOs6B,cAAgB,MAAQlC,GAAiB,IAAMoB,GACxExJ,EAAOpB,KAAK,0BAGd,MAAMuH,GAAa/E,EAAS+D,GAM5B,GAHAnF,EAAO6G,eAAeV,GAGlBn2B,EAAOu4B,oBACT,IAAK,IAAIltB,EAAI,EAAGA,EAAIgmB,EAAWnyB,OAAQmM,GAAK,GACrCmF,KAAKC,MAAkB,IAAZ0lB,IAAoB3lB,KAAKC,MAAsB,IAAhB4gB,EAAWhmB,MACxDmmB,EAAanmB,GAKnB,GAAI2kB,EAAOyI,aAAejH,IAAesE,EAAa,CACpD,IAAK9F,EAAOuK,gBAAkBpE,EAAYnG,EAAOmG,WAAaA,EAAYnG,EAAOwG,eAC/E,OAAO,EAET,IAAKxG,EAAOwK,gBAAkBrE,EAAYnG,EAAOmG,WAAaA,EAAYnG,EAAOgH,iBAC1ElB,GAAe,KAAOtE,EAAY,OAAO,CAElD,CAEA,IAAI4I,EAOJ,GAN8BA,EAA1B5I,EAAasE,EAAyB,OACjCtE,EAAasE,EAAyB,OAC9B,QAIZnF,IAAQwF,IAAcnG,EAAOmG,YAAgBxF,GAAOwF,IAAcnG,EAAOmG,UAc5E,OAbAnG,EAAOkI,kBAAkB1G,GAErBxxB,EAAOy2B,YACTzG,EAAOyF,mBAETzF,EAAOqH,sBACe,UAAlBr3B,EAAOy0B,QACTzE,EAAOkJ,aAAa/C,GAEJ,UAAdiE,IACFpK,EAAOmK,gBAAgBX,EAAcY,GACrCpK,EAAO7G,cAAcqQ,EAAcY,KAE9B,EAET,GAAIp6B,EAAOyxB,QAAS,CAClB,MAAMqI,EAAM9J,EAAOI,eACnB,IAAIrjB,GAAKopB,EAiBT,OAhBIxF,IACF5jB,EAAIqsB,EAAU7nB,YAAc6nB,EAAU5P,YAAczc,GAExC,IAAV9D,EACFmwB,EAAUU,EAAM,aAAe,aAAe/sB,EAG1CqsB,EAAUW,SACZX,EAAUW,SAAS,CACjB,CAACD,EAAM,OAAS,OAAQ/sB,EACxBitB,SAAU,WAGZZ,EAAUU,EAAM,aAAe,aAAe/sB,GAG3C,CACT,CAmCA,OAjCc,IAAV9D,GACF+mB,EAAO4F,cAAc,GACrB5F,EAAOkJ,aAAa/C,GACpBnG,EAAOkI,kBAAkB1G,GACzBxB,EAAOqH,sBACPrH,EAAOpB,KAAK,wBAAyB3lB,EAAOywB,GAC5C1J,EAAOmK,gBAAgBX,EAAcY,GACrCpK,EAAO7G,cAAcqQ,EAAcY,KAEnCpK,EAAO4F,cAAc3sB,GACrB+mB,EAAOkJ,aAAa/C,GACpBnG,EAAOkI,kBAAkB1G,GACzBxB,EAAOqH,sBACPrH,EAAOpB,KAAK,wBAAyB3lB,EAAOywB,GAC5C1J,EAAOmK,gBAAgBX,EAAcY,GAChCpK,EAAO2J,YACV3J,EAAO2J,WAAY,EACd3J,EAAOyK,gCACVzK,EAAOyK,8BAAgC,SAAuBztB,GACvDgjB,IAAUA,EAAOkK,WAClBltB,EAAEvE,SAAWpJ,OACjB2wB,EAAOQ,WAAW,GAAGhM,oBAAoB,gBAAiBwL,EAAOyK,+BACjEzK,EAAOQ,WAAW,GAAGhM,oBAAoB,sBAAuBwL,EAAOyK,+BACvEzK,EAAOyK,8BAAgC,YAChCzK,EAAOyK,8BACdzK,EAAO7G,cAAcqQ,EAAcY,GACrC,GAEFpK,EAAOQ,WAAW,GAAGjM,iBAAiB,gBAAiByL,EAAOyK,+BAC9DzK,EAAOQ,WAAW,GAAGjM,iBAAiB,sBAAuByL,EAAOyK,kCAIjE,CACT,EAoJEC,YAlJF,SAAsB7vB,EAAQ,EAAG5B,EAAQ5J,KAAKW,OAAOiJ,MAAOuwB,GAAe,EAAME,GAC/E,MAAM1J,EAAS3wB,KACf,IAAIs7B,EAAW9vB,EAKf,OAJImlB,EAAOhwB,OAAO83B,OAChB6C,GAAY3K,EAAO4K,cAGd5K,EAAOqK,QAAQM,EAAU1xB,EAAOuwB,EAAcE,EACvD,EA2IEmB,UAxIF,SAAoB5xB,EAAQ5J,KAAKW,OAAOiJ,MAAOuwB,GAAe,EAAME,GAClE,MAAM1J,EAAS3wB,MACT,OAAEW,EAAM,UAAE25B,GAAc3J,EACxB8K,EAAY9K,EAAO8F,YAAc91B,EAAOu0B,mBAAqB,EAAIv0B,EAAOqzB,eAC9E,GAAIrzB,EAAO83B,KAAM,CACf,GAAI6B,EAAW,OAAO,EACtB3J,EAAO+K,UAEP/K,EAAOgL,YAAchL,EAAOQ,WAAW,GAAG1G,UAC5C,CACA,OAAOkG,EAAOqK,QAAQrK,EAAO8F,YAAcgF,EAAW7xB,EAAOuwB,EAAcE,EAC7E,EA8HEuB,UA3HF,SAAoBhyB,EAAQ5J,KAAKW,OAAOiJ,MAAOuwB,GAAe,EAAME,GAClE,MAAM1J,EAAS3wB,MACT,OACJW,EAAM,UAAE25B,EAAS,SAAEvI,EAAQ,WAAEC,EAAU,aAAEX,GACvCV,EAEJ,GAAIhwB,EAAO83B,KAAM,CACf,GAAI6B,EAAW,OAAO,EACtB3J,EAAO+K,UAEP/K,EAAOgL,YAAchL,EAAOQ,WAAW,GAAG1G,UAC5C,CAEA,SAASvb,EAAUjP,GACjB,OAAIA,EAAM,GAAWkR,KAAKC,MAAMD,KAAK8jB,IAAIh1B,IAClCkR,KAAKC,MAAMnR,EACpB,CACA,MAAM47B,EAAsB3sB,EALVmiB,EAAeV,EAAOmG,WAAanG,EAAOmG,WAMtDgF,EAAqB/J,EAASzd,KAAKrU,GAAQiP,EAAUjP,KAC9B+xB,EAAW1d,KAAKrU,GAAQiP,EAAUjP,KAE3C8xB,EAAS+J,EAAmB/oB,QAAQ8oB,IACxD,IAMIE,EANAC,EAAWjK,EAAS+J,EAAmB/oB,QAAQ8oB,GAAuB,GAW1E,YAVwB,IAAbG,GAA4Br7B,EAAOyxB,SAC5CL,EAAShN,SAAS4Q,KACXqG,GAAYH,GAAuBlG,IAAMqG,EAAWrG,EAAI,SAIzC,IAAbqG,IACTD,EAAY/J,EAAWjf,QAAQipB,GAC3BD,EAAY,IAAGA,EAAYpL,EAAO8F,YAAc,IAE/C9F,EAAOqK,QAAQe,EAAWnyB,EAAOuwB,EAAcE,EACxD,EA0FE4B,WAvFF,SAAqBryB,EAAQ5J,KAAKW,OAAOiJ,MAAOuwB,GAAe,EAAME,GAEnE,OADer6B,KACDg7B,QADCh7B,KACcy2B,YAAa7sB,EAAOuwB,EAAcE,EACjE,EAqFE6B,eAlFF,SAAyBtyB,EAAQ5J,KAAKW,OAAOiJ,MAAOuwB,GAAe,EAAME,EAAU8B,EAAY,IAC7F,MAAMxL,EAAS3wB,KACf,IAAIwL,EAAQmlB,EAAO8F,YACnB,MAAM0C,EAAOhoB,KAAKijB,IAAIzD,EAAOhwB,OAAOu0B,mBAAoB1pB,GAClDsqB,EAAYqD,EAAOhoB,KAAKC,OAAO5F,EAAQ2tB,GAAQxI,EAAOhwB,OAAOqzB,gBAE7D8C,EAAYnG,EAAOU,aAAeV,EAAOmG,WAAanG,EAAOmG,UAEnE,GAAIA,GAAanG,EAAOoB,SAAS+D,GAAY,CAG3C,MAAMsG,EAAczL,EAAOoB,SAAS+D,GAE/BgB,EAAYsF,GADAzL,EAAOoB,SAAS+D,EAAY,GACDsG,GAAeD,IACzD3wB,GAASmlB,EAAOhwB,OAAOqzB,eAE3B,KAAO,CAGL,MAAMgI,EAAWrL,EAAOoB,SAAS+D,EAAY,GAExCgB,EAAYkF,IADGrL,EAAOoB,SAAS+D,GACSkG,GAAYG,IACvD3wB,GAASmlB,EAAOhwB,OAAOqzB,eAE3B,CAIA,OAHAxoB,EAAQ2F,KAAKsiB,IAAIjoB,EAAO,GACxBA,EAAQ2F,KAAKijB,IAAI5oB,EAAOmlB,EAAOqB,WAAWnyB,OAAS,GAE5C8wB,EAAOqK,QAAQxvB,EAAO5B,EAAOuwB,EAAcE,EACpD,EAsDEX,oBApDF,WACE,MAAM/I,EAAS3wB,MACT,OAAEW,EAAM,WAAEwwB,GAAeR,EAEzB4C,EAAyC,SAAzB5yB,EAAO4yB,cAA2B5C,EAAO0L,uBAAyB17B,EAAO4yB,cAC/F,IACI0E,EADAqE,EAAe3L,EAAO8I,aAE1B,GAAI94B,EAAO83B,KAAM,CACf,GAAI9H,EAAO2J,UAAW,OACtBrC,EAAYxzB,SAAS9F,EAAEgyB,EAAO6I,cAAcz6B,KAAK,2BAA4B,IACzE4B,EAAOq0B,eAENsH,EAAe3L,EAAO4K,aAAgBhI,EAAgB,GACnD+I,EAAgB3L,EAAOiB,OAAO/xB,OAAS8wB,EAAO4K,aAAiBhI,EAAgB,GAEnF5C,EAAO+K,UACPY,EAAenL,EACZ/qB,SAAS,IAAIzF,EAAOkxB,uCAAuCoG,YAAoBt3B,EAAO+3B,wBACtF/iB,GAAG,GACHnK,QAEH2gB,EAAMG,UAAS,KACbqE,EAAOqK,QAAQsB,EAAa,KAG9B3L,EAAOqK,QAAQsB,GAERA,EAAe3L,EAAOiB,OAAO/xB,OAAS0zB,GAC/C5C,EAAO+K,UACPY,EAAenL,EACZ/qB,SAAS,IAAIzF,EAAOkxB,uCAAuCoG,YAAoBt3B,EAAO+3B,wBACtF/iB,GAAG,GACHnK,QAEH2gB,EAAMG,UAAS,KACbqE,EAAOqK,QAAQsB,EAAa,KAG9B3L,EAAOqK,QAAQsB,EAEnB,MACE3L,EAAOqK,QAAQsB,EAEnB,GAoGA,IAAI7D,EAAO,CACT8D,WAzFF,WACE,MAAM5L,EAAS3wB,MACT,OAAEW,EAAM,WAAEwwB,GAAeR,EAE/BQ,EAAW/qB,SAAS,IAAIzF,EAAOkxB,cAAclxB,EAAO+3B,uBAAuBjzB,SAE3E,IAAImsB,EAAST,EAAW/qB,SAAS,IAAIzF,EAAOkxB,cAE5C,GAAIlxB,EAAO67B,uBAAwB,CACjC,MAAMC,EAAiB97B,EAAOqzB,eAAkBpC,EAAO/xB,OAASc,EAAOqzB,eACvE,GAAIyI,IAAmB97B,EAAOqzB,eAAgB,CAC5C,IAAK,IAAIhoB,EAAI,EAAGA,EAAIywB,EAAgBzwB,GAAK,EAAG,CAC1C,MAAM0wB,EAAY/9B,EAAEqmB,EAAWlQ,cAAc,QAAQ1V,SAAS,GAAGuB,EAAOkxB,cAAclxB,EAAOg8B,mBAC7FxL,EAAW9qB,OAAOq2B,EACpB,CACA9K,EAAST,EAAW/qB,SAAS,IAAIzF,EAAOkxB,aAC1C,CACF,CAE6B,SAAzBlxB,EAAO4yB,eAA6B5yB,EAAO46B,eAAc56B,EAAO46B,aAAe3J,EAAO/xB,QAE1F8wB,EAAO4K,aAAepqB,KAAKmiB,KAAKlJ,WAAWzpB,EAAO46B,cAAgB56B,EAAO4yB,cAAe,KACxF5C,EAAO4K,cAAgB56B,EAAOi8B,qBAC1BjM,EAAO4K,aAAe3J,EAAO/xB,SAC/B8wB,EAAO4K,aAAe3J,EAAO/xB,QAG/B,MAAMg9B,EAAgB,GAChBC,EAAe,GACrBlL,EAAOluB,MAAK,CAAC8H,EAAOC,KAClB,MAAMmoB,EAAQj1B,EAAE8M,GACZD,EAAQmlB,EAAO4K,cAAcuB,EAAa11B,KAAKqE,GAC/CD,EAAQomB,EAAO/xB,QAAU2L,GAASomB,EAAO/xB,OAAS8wB,EAAO4K,cAAcsB,EAAcz1B,KAAKqE,GAC9FmoB,EAAM70B,KAAK,0BAA2ByM,EAAM,IAE9C,IAAK,IAAIQ,EAAI,EAAGA,EAAI8wB,EAAaj9B,OAAQmM,GAAK,EAC5CmlB,EAAW9qB,OAAO1H,EAAEm+B,EAAa9wB,GAAG+wB,WAAU,IAAO39B,SAASuB,EAAO+3B,sBAEvE,IAAK,IAAI1sB,EAAI6wB,EAAch9B,OAAS,EAAGmM,GAAK,EAAGA,GAAK,EAClDmlB,EAAWtc,QAAQlW,EAAEk+B,EAAc7wB,GAAG+wB,WAAU,IAAO39B,SAASuB,EAAO+3B,qBAE3E,EAiDEgD,QA/CF,WACE,MAAM/K,EAAS3wB,KAEf2wB,EAAOpB,KAAK,iBAEZ,MAAM,YACJkH,EAAW,OAAE7E,EAAM,aAAE2J,EAAY,eAAEJ,EAAc,eAAED,EAAc,SAAEnJ,EAAUV,aAAcC,GACzFX,EACJ,IAAI2K,EACJ3K,EAAOwK,gBAAiB,EACxBxK,EAAOuK,gBAAiB,EAExB,MACM8B,GADiBjL,EAAS0E,GACH9F,EAAOnE,eAGpC,GAAIiK,EAAc8E,EAAc,CAC9BD,EAAY1J,EAAO/xB,OAAyB,EAAf07B,EAAqB9E,EAClD6E,GAAYC,EACS5K,EAAOqK,QAAQM,EAAU,GAAG,GAAO,IAC3B,IAAT0B,GAClBrM,EAAOkJ,cAAcvI,GAAOX,EAAOmG,UAAYnG,EAAOmG,WAAakG,EAEvE,MAAO,GAAIvG,GAAe7E,EAAO/xB,OAAS07B,EAAc,CAEtDD,GAAY1J,EAAO/xB,OAAS42B,EAAc8E,EAC1CD,GAAYC,EACS5K,EAAOqK,QAAQM,EAAU,GAAG,GAAO,IAC3B,IAAT0B,GAClBrM,EAAOkJ,cAAcvI,GAAOX,EAAOmG,UAAYnG,EAAOmG,WAAakG,EAEvE,CACArM,EAAOwK,eAAiBA,EACxBxK,EAAOuK,eAAiBA,EAExBvK,EAAOpB,KAAK,UACd,EAYE0N,YAVF,WACE,MACM,WAAE9L,EAAU,OAAExwB,EAAM,OAAEixB,GADb5xB,KAEfmxB,EAAW/qB,SAAS,IAAIzF,EAAOkxB,cAAclxB,EAAO+3B,wBAAwB/3B,EAAOkxB,cAAclxB,EAAOg8B,mBAAmBl3B,SAC3HmsB,EAAOnc,WAAW,0BACpB,GAwBA,IAAIynB,EAAa,CACfC,cAjBF,SAAwBC,GACtB,MAAMzM,EAAS3wB,KACf,GAAIkuB,EAAQC,QAAUwC,EAAOhwB,OAAO08B,eAAkB1M,EAAOhwB,OAAOo1B,eAAiBpF,EAAO2M,UAAa3M,EAAOhwB,OAAOyxB,QAAS,OAChI,MAAM3mB,EAAKklB,EAAOllB,GAClBA,EAAGmG,MAAM2rB,OAAS,OAClB9xB,EAAGmG,MAAM2rB,OAASH,EAAS,mBAAqB,eAChD3xB,EAAGmG,MAAM2rB,OAASH,EAAS,eAAiB,YAC5C3xB,EAAGmG,MAAM2rB,OAASH,EAAS,WAAa,MAC1C,EAUEI,gBARF,WACE,MAAM7M,EAAS3wB,KACXkuB,EAAQC,OAAUwC,EAAOhwB,OAAOo1B,eAAiBpF,EAAO2M,UAAa3M,EAAOhwB,OAAOyxB,UACvFzB,EAAOllB,GAAGmG,MAAM2rB,OAAS,GAC3B,GA6JA,IAAIE,EAAe,CACjBC,YAvJF,SAAsB9L,GACpB,MAAMjB,EAAS3wB,MACT,WAAEmxB,EAAU,OAAExwB,GAAWgwB,EAI/B,GAHIhwB,EAAO83B,MACT9H,EAAOsM,cAEa,iBAAXrL,GAAuB,WAAYA,EAC5C,IAAK,IAAI5lB,EAAI,EAAGA,EAAI4lB,EAAO/xB,OAAQmM,GAAK,EAClC4lB,EAAO5lB,IAAImlB,EAAW9qB,OAAOurB,EAAO5lB,SAG1CmlB,EAAW9qB,OAAOurB,GAEhBjxB,EAAO83B,MACT9H,EAAO4L,aAEH57B,EAAO6tB,UAAYN,EAAQM,UAC/BmC,EAAOnZ,QAEX,EAqIEmmB,aAnIF,SAAuB/L,GACrB,MAAMjB,EAAS3wB,MACT,OAAEW,EAAM,WAAEwwB,EAAU,YAAEsF,GAAgB9F,EAExChwB,EAAO83B,MACT9H,EAAOsM,cAET,IAAInE,EAAiBrC,EAAc,EACnC,GAAsB,iBAAX7E,GAAuB,WAAYA,EAAQ,CACpD,IAAK,IAAI5lB,EAAI,EAAGA,EAAI4lB,EAAO/xB,OAAQmM,GAAK,EAClC4lB,EAAO5lB,IAAImlB,EAAWtc,QAAQ+c,EAAO5lB,IAE3C8sB,EAAiBrC,EAAc7E,EAAO/xB,MACxC,MACEsxB,EAAWtc,QAAQ+c,GAEjBjxB,EAAO83B,MACT9H,EAAO4L,aAEH57B,EAAO6tB,UAAYN,EAAQM,UAC/BmC,EAAOnZ,SAETmZ,EAAOqK,QAAQlC,EAAgB,GAAG,EACpC,EA6GE8E,SA3GF,SAAmBpyB,EAAOomB,GACxB,MAAMjB,EAAS3wB,MACT,WAAEmxB,EAAU,OAAExwB,EAAM,YAAE81B,GAAgB9F,EAC5C,IAAIkN,EAAoBpH,EACpB91B,EAAO83B,OACToF,GAAqBlN,EAAO4K,aAC5B5K,EAAOsM,cACPtM,EAAOiB,OAAST,EAAW/qB,SAAS,IAAIzF,EAAOkxB,eAEjD,MAAMiM,EAAanN,EAAOiB,OAAO/xB,OACjC,GAAI2L,GAAS,EAEX,YADAmlB,EAAOgN,aAAa/L,GAGtB,GAAIpmB,GAASsyB,EAEX,YADAnN,EAAO+M,YAAY9L,GAGrB,IAAIkH,EAAiB+E,EAAoBryB,EAAQqyB,EAAoB,EAAIA,EAEzE,MAAME,EAAe,GACrB,IAAK,IAAI/xB,EAAI8xB,EAAa,EAAG9xB,GAAKR,EAAOQ,GAAK,EAAG,CAC/C,MAAMgyB,EAAerN,EAAOiB,OAAOjc,GAAG3J,GACtCgyB,EAAav4B,SACbs4B,EAAantB,QAAQotB,EACvB,CAEA,GAAsB,iBAAXpM,GAAuB,WAAYA,EAAQ,CACpD,IAAK,IAAI5lB,EAAI,EAAGA,EAAI4lB,EAAO/xB,OAAQmM,GAAK,EAClC4lB,EAAO5lB,IAAImlB,EAAW9qB,OAAOurB,EAAO5lB,IAE1C8sB,EAAiB+E,EAAoBryB,EAAQqyB,EAAoBjM,EAAO/xB,OAASg+B,CACnF,MACE1M,EAAW9qB,OAAOurB,GAGpB,IAAK,IAAI5lB,EAAI,EAAGA,EAAI+xB,EAAal+B,OAAQmM,GAAK,EAC5CmlB,EAAW9qB,OAAO03B,EAAa/xB,IAG7BrL,EAAO83B,MACT9H,EAAO4L,aAEH57B,EAAO6tB,UAAYN,EAAQM,UAC/BmC,EAAOnZ,SAEL7W,EAAO83B,KACT9H,EAAOqK,QAAQlC,EAAiBnI,EAAO4K,aAAc,GAAG,GAExD5K,EAAOqK,QAAQlC,EAAgB,GAAG,EAEtC,EAyDEmF,YAvDF,SAAsBC,GACpB,MAAMvN,EAAS3wB,MACT,OAAEW,EAAM,WAAEwwB,EAAU,YAAEsF,GAAgB9F,EAE5C,IAAIkN,EAAoBpH,EACpB91B,EAAO83B,OACToF,GAAqBlN,EAAO4K,aAC5B5K,EAAOsM,cACPtM,EAAOiB,OAAST,EAAW/qB,SAAS,IAAIzF,EAAOkxB,eAEjD,IACIsM,EADArF,EAAiB+E,EAGrB,GAA6B,iBAAlBK,GAA8B,WAAYA,EAAe,CAClE,IAAK,IAAIlyB,EAAI,EAAGA,EAAIkyB,EAAcr+B,OAAQmM,GAAK,EAC7CmyB,EAAgBD,EAAclyB,GAC1B2kB,EAAOiB,OAAOuM,IAAgBxN,EAAOiB,OAAOjc,GAAGwoB,GAAe14B,SAC9D04B,EAAgBrF,IAAgBA,GAAkB,GAExDA,EAAiB3nB,KAAKsiB,IAAIqF,EAAgB,EAC5C,MACEqF,EAAgBD,EACZvN,EAAOiB,OAAOuM,IAAgBxN,EAAOiB,OAAOjc,GAAGwoB,GAAe14B,SAC9D04B,EAAgBrF,IAAgBA,GAAkB,GACtDA,EAAiB3nB,KAAKsiB,IAAIqF,EAAgB,GAGxCn4B,EAAO83B,MACT9H,EAAO4L,aAGH57B,EAAO6tB,UAAYN,EAAQM,UAC/BmC,EAAOnZ,SAEL7W,EAAO83B,KACT9H,EAAOqK,QAAQlC,EAAiBnI,EAAO4K,aAAc,GAAG,GAExD5K,EAAOqK,QAAQlC,EAAgB,GAAG,EAEtC,EAiBEsF,gBAfF,WACE,MAAMzN,EAAS3wB,KAETk+B,EAAgB,GACtB,IAAK,IAAIlyB,EAAI,EAAGA,EAAI2kB,EAAOiB,OAAO/xB,OAAQmM,GAAK,EAC7CkyB,EAAc92B,KAAK4E,GAErB2kB,EAAOsN,YAAYC,EACrB,GAUA,MAAMG,EAAU,WACd,MAAMC,EAAWnY,EAAOjC,UAAUoa,SAC5BC,EAAKpY,EAAOjC,UAAUkC,UAEtBoY,EAAS,CACbC,KAAK,EACLC,SAAS,EACTC,eAAe,EACfC,SAAS,EACTC,QAAQ,EACRC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,IAAI,EACJC,SAAS,EACTC,OAAO,EACPC,SAAS,EACTC,WAAYlZ,EAAOkZ,UAAWlZ,EAAOmZ,UACrCA,YAAanZ,EAAOkZ,UAAWlZ,EAAOmZ,UACtCC,UAAU,GAGNC,EAAcrZ,EAAOU,OAAO5d,MAC5Bw2B,EAAetZ,EAAOU,OAAO7b,OAE7B0zB,EAAUH,EAAGz+B,MAAM,+BACzB,IAAIi/B,EAAOR,EAAGz+B,MAAM,wBACpB,MAAMg/B,EAAOP,EAAGz+B,MAAM,2BAChB++B,GAAUE,GAAQR,EAAGz+B,MAAM,8BAC3Bm/B,EAAKV,EAAGxrB,QAAQ,UAAY,GAAKwrB,EAAGxrB,QAAQ,aAAe,EAC3DisB,EAAOT,EAAGxrB,QAAQ,UAAY,EAC9BmsB,EAAUX,EAAGxrB,QAAQ,WAAa,GAAKwrB,EAAGxrB,QAAQ,aAAe,EACjEqsB,EAAuB,UAAbd,EACViB,EAAWhB,EAAG7sB,cAAcqB,QAAQ,aAAe,EACzD,IAAIosB,EAAqB,aAAbb,EA4EZ,OAzEKS,GACAI,GACAjR,EAAQC,QAEQ,OAAhBqR,GAAyC,OAAjBC,GACL,MAAhBD,GAAwC,OAAjBC,GACP,MAAhBD,GAAwC,OAAjBC,GACP,MAAhBD,GAAwC,OAAjBC,KAG7BV,EAAOR,EAAGz+B,MAAM,uBAChBq/B,GAAQ,GAGVX,EAAOS,GAAKA,EACZT,EAAOQ,KAAOA,EACdR,EAAOU,QAAUA,EAGbR,IAAYU,IACdZ,EAAOkB,GAAK,UACZlB,EAAOmB,UAAYjB,EAAQ,GAC3BF,EAAOE,SAAU,EACjBF,EAAOG,cAAgBJ,EAAG7sB,cAAcqB,QAAQ,WAAa,IAE3DgsB,GAAQF,GAAUC,KACpBN,EAAOkB,GAAK,MACZlB,EAAOC,KAAM,GAGXI,IAAWC,IACbN,EAAOmB,UAAYd,EAAO,GAAGx8B,QAAQ,KAAM,KAC3Cm8B,EAAOK,QAAS,GAEdE,IACFP,EAAOmB,UAAYZ,EAAK,GAAG18B,QAAQ,KAAM,KACzCm8B,EAAOO,MAAO,GAEZD,IACFN,EAAOmB,UAAYb,EAAK,GAAKA,EAAK,GAAGz8B,QAAQ,KAAM,KAAO,KAC1Dm8B,EAAOM,MAAO,GAGZN,EAAOC,KAAOD,EAAOmB,WAAapB,EAAGxrB,QAAQ,aAAe,GACvB,OAAnCyrB,EAAOmB,UAAUluB,MAAM,KAAK,KAC9B+sB,EAAOmB,UAAYpB,EAAG7sB,cAAcD,MAAM,YAAY,GAAGA,MAAM,KAAK,IAKxE+sB,EAAOoB,YAAcf,GAAUE,GAAQD,KAAUP,EAAGz+B,MAAM,gCAAiCqmB,EAAOjC,UAAU2b,aACtG1Z,EAAOW,YAAcX,EAAOW,WAAW,8BAA8B7R,QAC3EupB,EAAOsB,QAAUtB,EAAOoB,QACxBpB,EAAOqB,WAAarB,EAAOoB,QAG3BpB,EAAOI,UAAYJ,EAAOC,KAAOD,EAAOE,UAAYa,EAChDf,EAAOI,UACTJ,EAAOe,SAAWA,EAClBf,EAAOW,MAAQA,EACfX,EAAOY,QAAUA,EACbZ,EAAOW,QACTX,EAAOkB,GAAK,SAEVlB,EAAOY,UACTZ,EAAOkB,GAAK,YAKhBlB,EAAOuB,WAAa5Z,EAAO6Z,kBAAoB,EAGxCxB,CACT,CA/Ge,GAiHf,SAASyB,EAAcx/B,GACrB,MAAMkwB,EAAS3wB,KACTwB,EAAOmvB,EAAOuP,iBACd,OAAEv/B,EAAM,QAAEw/B,GAAYxP,EAE5B,GAAIA,EAAO2J,WAAa35B,EAAO45B,+BAC7B,OAEF,IAAI5sB,EAAIlN,EACJkN,EAAEoI,gBAAepI,EAAIA,EAAEoI,eAC3B,MAAMqqB,EAAYzhC,EAAEgP,EAAEvE,QAEtB,GAAiC,YAA7BzI,EAAO0/B,oBACJD,EAAUjgC,QAAQwwB,EAAOoJ,WAAWl6B,OAAQ,OAGnD,GADA2B,EAAK8+B,aAA0B,eAAX3yB,EAAE1M,MACjBO,EAAK8+B,cAAgB,UAAW3yB,GAAiB,IAAZA,EAAE4J,MAAa,OACzD,IAAK/V,EAAK8+B,cAAgB,WAAY3yB,GAAKA,EAAE4yB,OAAS,EAAG,OACzD,GAAI/+B,EAAKg/B,WAAah/B,EAAKi/B,QAAS,OACpC,GAAI9/B,EAAO+/B,WAAaN,EAAUjgC,QAAQQ,EAAOggC,kBAAoBhgC,EAAOggC,kBAAoB,IAAIhgC,EAAOigC,kBAAkB,GAE3H,YADAjQ,EAAOkQ,YAAa,GAGtB,GAAIlgC,EAAOmgC,eACJV,EAAUjgC,QAAQQ,EAAOmgC,cAAc,GAAI,OAGlDX,EAAQY,SAAsB,eAAXpzB,EAAE1M,KAAwB0M,EAAEqzB,cAAc,GAAGC,MAAQtzB,EAAEszB,MAC1Ed,EAAQe,SAAsB,eAAXvzB,EAAE1M,KAAwB0M,EAAEqzB,cAAc,GAAGG,MAAQxzB,EAAEwzB,MAC1E,MAAMC,EAASjB,EAAQY,SACjBM,EAASlB,EAAQe,SAIjBI,EAAqB3gC,EAAO2gC,oBAAsB3gC,EAAO4gC,sBACzDC,EAAqB7gC,EAAO6gC,oBAAsB7gC,EAAO8gC,sBAC/D,IACEH,KACKF,GAAUI,GACXJ,GAAUjb,EAAOU,OAAO5d,MAAQu4B,GAHtC,CAuBA,GAfArV,EAAMpnB,OAAOvD,EAAM,CACjBg/B,WAAW,EACXC,SAAS,EACTiB,qBAAqB,EACrBC,iBAAa3Y,EACb4Y,iBAAa5Y,IAGfmX,EAAQiB,OAASA,EACjBjB,EAAQkB,OAASA,EACjB7/B,EAAKqgC,eAAiB1V,EAAMI,MAC5BoE,EAAOkQ,YAAa,EACpBlQ,EAAOD,aACPC,EAAOmR,oBAAiB9Y,EACpBroB,EAAOw7B,UAAY,IAAG36B,EAAKugC,oBAAqB,GACrC,eAAXp0B,EAAE1M,KAAuB,CAC3B,IAAIP,GAAiB,EACjB0/B,EAAUx8B,GAAGpC,EAAKwgC,gBAAethC,GAAiB,GAEpDskB,EAAWrN,eACRhZ,EAAEqmB,EAAWrN,eAAe/T,GAAGpC,EAAKwgC,eACpChd,EAAWrN,gBAAkByoB,EAAU,IAE1Cpb,EAAWrN,cAAcyN,OAG3B,MAAM6c,EAAuBvhC,GAAkBiwB,EAAOuR,gBAAkBvhC,EAAOwhC,0BAC3ExhC,EAAOyhC,+BAAiCH,IAC1Ct0B,EAAEjN,gBAEN,CACAiwB,EAAOpB,KAAK,aAAc5hB,EAjC1B,CAkCF,CAEA,SAAS00B,EAAa5hC,GACpB,MAAMkwB,EAAS3wB,KACTwB,EAAOmvB,EAAOuP,iBACd,OAAEv/B,EAAM,QAAEw/B,EAAS9O,aAAcC,GAAQX,EAC/C,IAAIhjB,EAAIlN,EAER,GADIkN,EAAEoI,gBAAepI,EAAIA,EAAEoI,gBACtBvU,EAAKg/B,UAIR,YAHIh/B,EAAKogC,aAAepgC,EAAKmgC,aAC3BhR,EAAOpB,KAAK,oBAAqB5hB,IAIrC,GAAInM,EAAK8+B,cAA2B,cAAX3yB,EAAE1M,KAAsB,OACjD,MAAMqhC,EAAyB,cAAX30B,EAAE1M,MAAwB0M,EAAEqzB,gBAAkBrzB,EAAEqzB,cAAc,IAAMrzB,EAAE40B,eAAe,IACnGtB,EAAmB,cAAXtzB,EAAE1M,KAAuBqhC,EAAYrB,MAAQtzB,EAAEszB,MACvDE,EAAmB,cAAXxzB,EAAE1M,KAAuBqhC,EAAYnB,MAAQxzB,EAAEwzB,MAC7D,GAAIxzB,EAAE60B,wBAGJ,OAFArC,EAAQiB,OAASH,OACjBd,EAAQkB,OAASF,GAGnB,IAAKxQ,EAAOuR,eAYV,OAVAvR,EAAOkQ,YAAa,OAChBr/B,EAAKg/B,YACPrU,EAAMpnB,OAAOo7B,EAAS,CACpBiB,OAAQH,EACRI,OAAQF,EACRJ,SAAUE,EACVC,SAAUC,IAEZ3/B,EAAKqgC,eAAiB1V,EAAMI,QAIhC,GAAI/qB,EAAK8+B,cAAgB3/B,EAAO8hC,sBAAwB9hC,EAAO83B,KAC7D,GAAI9H,EAAOK,cAET,GACGmQ,EAAQhB,EAAQkB,QAAU1Q,EAAOmG,WAAanG,EAAOgH,gBAClDwJ,EAAQhB,EAAQkB,QAAU1Q,EAAOmG,WAAanG,EAAOwG,eAIzD,OAFA31B,EAAKg/B,WAAY,OACjBh/B,EAAKi/B,SAAU,QAGZ,GACJQ,EAAQd,EAAQiB,QAAUzQ,EAAOmG,WAAanG,EAAOgH,gBAClDsJ,EAAQd,EAAQiB,QAAUzQ,EAAOmG,WAAanG,EAAOwG,eAEzD,OAGJ,GAAI31B,EAAK8+B,cAAgBtb,EAAWrN,eAC9BhK,EAAEvE,SAAW4b,EAAWrN,eAAiBhZ,EAAEgP,EAAEvE,QAAQxF,GAAGpC,EAAKwgC,cAG/D,OAFAxgC,EAAKi/B,SAAU,OACf9P,EAAOkQ,YAAa,GAOxB,GAHIr/B,EAAKkgC,qBACP/Q,EAAOpB,KAAK,YAAa5hB,GAEvBA,EAAEqzB,eAAiBrzB,EAAEqzB,cAAcnhC,OAAS,EAAG,OAEnDsgC,EAAQY,SAAWE,EACnBd,EAAQe,SAAWC,EAEnB,MAAMuB,EAAQvC,EAAQY,SAAWZ,EAAQiB,OACnCuB,EAAQxC,EAAQe,SAAWf,EAAQkB,OACzC,GAAI1Q,EAAOhwB,OAAOw7B,WAAahrB,KAAKyxB,KAAMF,GAAS,EAAMC,GAAS,GAAMhS,EAAOhwB,OAAOw7B,UAAW,OAEjG,QAAgC,IAArB36B,EAAKmgC,YAA6B,CAC3C,IAAIkB,EACClS,EAAOI,gBAAkBoP,EAAQe,WAAaf,EAAQkB,QAAY1Q,EAAOK,cAAgBmP,EAAQY,WAAaZ,EAAQiB,OACzH5/B,EAAKmgC,aAAc,EAGde,EAAQA,EAAUC,EAAQA,GAAU,KACvCE,EAA6D,IAA/C1xB,KAAK2xB,MAAM3xB,KAAK8jB,IAAI0N,GAAQxxB,KAAK8jB,IAAIyN,IAAiBvxB,KAAK4xB,GACzEvhC,EAAKmgC,YAAchR,EAAOI,eAAiB8R,EAAaliC,EAAOkiC,WAAc,GAAKA,EAAaliC,EAAOkiC,WAG5G,CASA,GARIrhC,EAAKmgC,aACPhR,EAAOpB,KAAK,oBAAqB5hB,QAEH,IAArBnM,EAAKogC,cACVzB,EAAQY,WAAaZ,EAAQiB,QAAUjB,EAAQe,WAAaf,EAAQkB,SACtE7/B,EAAKogC,aAAc,IAGnBpgC,EAAKmgC,YAEP,YADAngC,EAAKg/B,WAAY,GAGnB,IAAKh/B,EAAKogC,YACR,OAEFjR,EAAOkQ,YAAa,GACflgC,EAAOyxB,SAAWzkB,EAAEgc,YACvBhc,EAAEjN,iBAEAC,EAAOqiC,2BAA6BriC,EAAOsiC,QAC7Ct1B,EAAEmI,kBAGCtU,EAAKi/B,UACJ9/B,EAAO83B,MACT9H,EAAO+K,UAETl6B,EAAK0hC,eAAiBvS,EAAOnE,eAC7BmE,EAAO4F,cAAc,GACjB5F,EAAO2J,WACT3J,EAAOQ,WAAW9tB,QAAQ,qCAE5B7B,EAAK2hC,qBAAsB,GAEvBxiC,EAAOu8B,aAAyC,IAA1BvM,EAAOuK,iBAAqD,IAA1BvK,EAAOwK,gBACjExK,EAAOwM,eAAc,GAEvBxM,EAAOpB,KAAK,kBAAmB5hB,IAEjCgjB,EAAOpB,KAAK,aAAc5hB,GAC1BnM,EAAKi/B,SAAU,EAEf,IAAIzD,EAAOrM,EAAOI,eAAiB2R,EAAQC,EAC3CxC,EAAQnD,KAAOA,EAEfA,GAAQr8B,EAAOyiC,WACX9R,IAAK0L,GAAQA,GAEjBrM,EAAOmR,eAAiB9E,EAAO,EAAI,OAAS,OAC5Cx7B,EAAKo4B,iBAAmBoD,EAAOx7B,EAAK0hC,eAEpC,IAAIG,GAAsB,EACtBC,EAAkB3iC,EAAO2iC,gBA0B7B,GAzBI3iC,EAAO8hC,sBACTa,EAAkB,GAEftG,EAAO,GAAKx7B,EAAKo4B,iBAAmBjJ,EAAOwG,gBAC9CkM,GAAsB,EAClB1iC,EAAO4iC,aAAY/hC,EAAKo4B,iBAAoBjJ,EAAOwG,eAAiB,IAAQxG,EAAOwG,eAAiB31B,EAAK0hC,eAAiBlG,IAASsG,IAC9HtG,EAAO,GAAKx7B,EAAKo4B,iBAAmBjJ,EAAOgH,iBACpD0L,GAAsB,EAClB1iC,EAAO4iC,aAAY/hC,EAAKo4B,iBAAoBjJ,EAAOgH,eAAiB,GAAOhH,EAAOgH,eAAiBn2B,EAAK0hC,eAAiBlG,IAASsG,IAGpID,IACF11B,EAAE60B,yBAA0B,IAIzB7R,EAAOuK,gBAA4C,SAA1BvK,EAAOmR,gBAA6BtgC,EAAKo4B,iBAAmBp4B,EAAK0hC,iBAC7F1hC,EAAKo4B,iBAAmBp4B,EAAK0hC,iBAE1BvS,EAAOwK,gBAA4C,SAA1BxK,EAAOmR,gBAA6BtgC,EAAKo4B,iBAAmBp4B,EAAK0hC,iBAC7F1hC,EAAKo4B,iBAAmBp4B,EAAK0hC,gBAK3BviC,EAAOw7B,UAAY,EAAG,CACxB,KAAIhrB,KAAK8jB,IAAI+H,GAAQr8B,EAAOw7B,WAAa36B,EAAKugC,oBAW5C,YADAvgC,EAAKo4B,iBAAmBp4B,EAAK0hC,gBAT7B,IAAK1hC,EAAKugC,mBAMR,OALAvgC,EAAKugC,oBAAqB,EAC1B5B,EAAQiB,OAASjB,EAAQY,SACzBZ,EAAQkB,OAASlB,EAAQe,SACzB1/B,EAAKo4B,iBAAmBp4B,EAAK0hC,oBAC7B/C,EAAQnD,KAAOrM,EAAOI,eAAiBoP,EAAQY,SAAWZ,EAAQiB,OAASjB,EAAQe,SAAWf,EAAQkB,OAO5G,CAEK1gC,EAAO6iC,eAAgB7iC,EAAOyxB,WAG/BzxB,EAAO8iC,UAAY9iC,EAAOs1B,qBAAuBt1B,EAAOu1B,yBAC1DvF,EAAOkI,oBACPlI,EAAOqH,uBAELr3B,EAAO8iC,WAEsB,IAA3BjiC,EAAKkiC,WAAW7jC,QAClB2B,EAAKkiC,WAAWt8B,KAAK,CACnBoB,SAAU23B,EAAQxP,EAAOI,eAAiB,SAAW,UACrD4S,KAAMniC,EAAKqgC,iBAGfrgC,EAAKkiC,WAAWt8B,KAAK,CACnBoB,SAAU23B,EAAQxP,EAAOI,eAAiB,WAAa,YACvD4S,KAAMxX,EAAMI,SAIhBoE,EAAO6G,eAAeh2B,EAAKo4B,kBAE3BjJ,EAAOkJ,aAAar4B,EAAKo4B,kBAC3B,CAEA,SAASgK,EAAYnjC,GACnB,MAAMkwB,EAAS3wB,KACTwB,EAAOmvB,EAAOuP,iBAEd,OACJv/B,EAAM,QAAEw/B,EAAS9O,aAAcC,EAAG,WAAEH,EAAU,WAAEa,EAAU,SAAED,GAC1DpB,EACJ,IAAIhjB,EAAIlN,EAMR,GALIkN,EAAEoI,gBAAepI,EAAIA,EAAEoI,eACvBvU,EAAKkgC,qBACP/Q,EAAOpB,KAAK,WAAY5hB,GAE1BnM,EAAKkgC,qBAAsB,GACtBlgC,EAAKg/B,UAMR,OALIh/B,EAAKi/B,SAAW9/B,EAAOu8B,YACzBvM,EAAOwM,eAAc,GAEvB37B,EAAKi/B,SAAU,OACfj/B,EAAKogC,aAAc,GAIjBjhC,EAAOu8B,YAAc17B,EAAKi/B,SAAWj/B,EAAKg/B,aAAwC,IAA1B7P,EAAOuK,iBAAqD,IAA1BvK,EAAOwK,iBACnGxK,EAAOwM,eAAc,GAIvB,MAAM0G,EAAe1X,EAAMI,MACrBuX,EAAWD,EAAeriC,EAAKqgC,eAgBrC,GAbIlR,EAAOkQ,aACTlQ,EAAO2I,mBAAmB3rB,GAC1BgjB,EAAOpB,KAAK,YAAa5hB,GACrBm2B,EAAW,KAAQD,EAAeriC,EAAKuiC,cAAiB,KAC1DpT,EAAOpB,KAAK,wBAAyB5hB,IAIzCnM,EAAKuiC,cAAgB5X,EAAMI,MAC3BJ,EAAMG,UAAS,KACRqE,EAAOkK,YAAWlK,EAAOkQ,YAAa,EAAI,KAG5Cr/B,EAAKg/B,YAAch/B,EAAKi/B,UAAY9P,EAAOmR,gBAAmC,IAAjB3B,EAAQnD,MAAcx7B,EAAKo4B,mBAAqBp4B,EAAK0hC,eAIrH,OAHA1hC,EAAKg/B,WAAY,EACjBh/B,EAAKi/B,SAAU,OACfj/B,EAAKogC,aAAc,GAOrB,IAAIoC,EAOJ,GAXAxiC,EAAKg/B,WAAY,EACjBh/B,EAAKi/B,SAAU,EACfj/B,EAAKogC,aAAc,EAIjBoC,EADErjC,EAAO6iC,aACIlS,EAAMX,EAAOmG,WAAanG,EAAOmG,WAEhCt1B,EAAKo4B,iBAGjBj5B,EAAOyxB,QACT,OAGF,GAAIzxB,EAAO8iC,SAAU,CACnB,GAAIO,GAAcrT,EAAOwG,eAEvB,YADAxG,EAAOqK,QAAQrK,EAAO8F,aAGxB,GAAIuN,GAAcrT,EAAOgH,eAMvB,YALIhH,EAAOiB,OAAO/xB,OAASkyB,EAASlyB,OAClC8wB,EAAOqK,QAAQjJ,EAASlyB,OAAS,GAEjC8wB,EAAOqK,QAAQrK,EAAOiB,OAAO/xB,OAAS,IAK1C,GAAIc,EAAOsjC,iBAAkB,CAC3B,GAAIziC,EAAKkiC,WAAW7jC,OAAS,EAAG,CAC9B,MAAMqkC,EAAgB1iC,EAAKkiC,WAAWS,MAChCC,EAAgB5iC,EAAKkiC,WAAWS,MAEhCE,EAAWH,EAAc17B,SAAW47B,EAAc57B,SAClDm7B,EAAOO,EAAcP,KAAOS,EAAcT,KAChDhT,EAAO2T,SAAWD,EAAWV,EAC7BhT,EAAO2T,UAAY,EACfnzB,KAAK8jB,IAAItE,EAAO2T,UAAY3jC,EAAO4jC,0BACrC5T,EAAO2T,SAAW,IAIhBX,EAAO,KAAQxX,EAAMI,MAAQ2X,EAAcP,KAAQ,OACrDhT,EAAO2T,SAAW,EAEtB,MACE3T,EAAO2T,SAAW,EAEpB3T,EAAO2T,UAAY3jC,EAAO6jC,8BAE1BhjC,EAAKkiC,WAAW7jC,OAAS,EACzB,IAAI4kC,EAAmB,IAAO9jC,EAAO+jC,sBACrC,MAAMC,EAAmBhU,EAAO2T,SAAWG,EAE3C,IAAIG,EAAcjU,EAAOmG,UAAY6N,EACjCrT,IAAKsT,GAAeA,GAExB,IACIC,EADAC,GAAW,EAEf,MAAMC,EAA2C,GAA5B5zB,KAAK8jB,IAAItE,EAAO2T,UAAiB3jC,EAAOqkC,4BAC7D,IAAIC,EACJ,GAAIL,EAAcjU,EAAOgH,eACnBh3B,EAAOukC,wBACLN,EAAcjU,EAAOgH,gBAAkBoN,IACzCH,EAAcjU,EAAOgH,eAAiBoN,GAExCF,EAAsBlU,EAAOgH,eAC7BmN,GAAW,EACXtjC,EAAK2hC,qBAAsB,GAE3ByB,EAAcjU,EAAOgH,eAEnBh3B,EAAO83B,MAAQ93B,EAAOq0B,iBAAgBiQ,GAAe,QACpD,GAAIL,EAAcjU,EAAOwG,eAC1Bx2B,EAAOukC,wBACLN,EAAcjU,EAAOwG,eAAiB4N,IACxCH,EAAcjU,EAAOwG,eAAiB4N,GAExCF,EAAsBlU,EAAOwG,eAC7B2N,GAAW,EACXtjC,EAAK2hC,qBAAsB,GAE3ByB,EAAcjU,EAAOwG,eAEnBx2B,EAAO83B,MAAQ93B,EAAOq0B,iBAAgBiQ,GAAe,QACpD,GAAItkC,EAAOwkC,eAAgB,CAChC,IAAIxM,EACJ,IAAK,IAAI/Q,EAAI,EAAGA,EAAImK,EAASlyB,OAAQ+nB,GAAK,EACxC,GAAImK,EAASnK,IAAMgd,EAAa,CAC9BjM,EAAY/Q,EACZ,KACF,CAIAgd,EADEzzB,KAAK8jB,IAAIlD,EAAS4G,GAAaiM,GAAezzB,KAAK8jB,IAAIlD,EAAS4G,EAAY,GAAKiM,IAA0C,SAA1BjU,EAAOmR,eAC5F/P,EAAS4G,GAET5G,EAAS4G,EAAY,GAErCiM,GAAeA,CACjB,CAOA,GANIK,GACFtU,EAAOxB,KAAK,iBAAiB,KAC3BwB,EAAO+K,SAAS,IAII,IAApB/K,EAAO2T,UAMT,GAJEG,EADEnT,EACiBngB,KAAK8jB,MAAM2P,EAAcjU,EAAOmG,WAAanG,EAAO2T,UAEpDnzB,KAAK8jB,KAAK2P,EAAcjU,EAAOmG,WAAanG,EAAO2T,UAEpE3jC,EAAOwkC,eAAgB,CAQzB,MAAMC,EAAej0B,KAAK8jB,KAAK3D,GAAOsT,EAAcA,GAAejU,EAAOmG,WACpEuO,EAAmB1U,EAAOsB,gBAAgBtB,EAAO8F,aAErDgO,EADEW,EAAeC,EACE1kC,EAAOiJ,MACjBw7B,EAAe,EAAIC,EACM,IAAf1kC,EAAOiJ,MAEQ,IAAfjJ,EAAOiJ,KAE9B,OACK,GAAIjJ,EAAOwkC,eAEhB,YADAxU,EAAOuL,iBAILv7B,EAAOukC,wBAA0BJ,GACnCnU,EAAO6G,eAAeqN,GACtBlU,EAAO4F,cAAckO,GACrB9T,EAAOkJ,aAAa+K,GACpBjU,EAAOmK,iBAAgB,EAAMnK,EAAOmR,gBACpCnR,EAAO2J,WAAY,EACnBnJ,EAAWrH,eAAc,KAClB6G,IAAUA,EAAOkK,WAAcr5B,EAAK2hC,sBACzCxS,EAAOpB,KAAK,kBACZoB,EAAO4F,cAAc51B,EAAOiJ,OAC5BY,YAAW,KACTmmB,EAAOkJ,aAAagL,GACpB1T,EAAWrH,eAAc,KAClB6G,IAAUA,EAAOkK,WACtBlK,EAAO7G,eAAe,GACtB,GACD,GAAE,KAEE6G,EAAO2T,UAChB3T,EAAO6G,eAAeoN,GACtBjU,EAAO4F,cAAckO,GACrB9T,EAAOkJ,aAAa+K,GACpBjU,EAAOmK,iBAAgB,EAAMnK,EAAOmR,gBAC/BnR,EAAO2J,YACV3J,EAAO2J,WAAY,EACnBnJ,EAAWrH,eAAc,KAClB6G,IAAUA,EAAOkK,WACtBlK,EAAO7G,eAAe,MAI1B6G,EAAO6G,eAAeoN,GAGxBjU,EAAOkI,oBACPlI,EAAOqH,qBACT,MAAO,GAAIr3B,EAAOwkC,eAEhB,YADAxU,EAAOuL,iBAST,cALKv7B,EAAOsjC,kBAAoBH,GAAYnjC,EAAO2kC,gBACjD3U,EAAO6G,iBACP7G,EAAOkI,oBACPlI,EAAOqH,uBAGX,CAGA,IAAIuN,EAAY,EACZC,EAAY7U,EAAOsB,gBAAgB,GACvC,IAAK,IAAIjmB,EAAI,EAAGA,EAAIgmB,EAAWnyB,OAAQmM,GAAMA,EAAIrL,EAAOu0B,mBAAqB,EAAIv0B,EAAOqzB,eAAiB,CACvG,MAAMyH,EAAazvB,EAAIrL,EAAOu0B,mBAAqB,EAAI,EAAIv0B,EAAOqzB,oBACzB,IAA9BhC,EAAWhmB,EAAIyvB,GACpBuI,GAAchS,EAAWhmB,IAAMg4B,EAAahS,EAAWhmB,EAAIyvB,KAC7D8J,EAAYv5B,EACZw5B,EAAYxT,EAAWhmB,EAAIyvB,GAAazJ,EAAWhmB,IAE5Cg4B,GAAchS,EAAWhmB,KAClCu5B,EAAYv5B,EACZw5B,EAAYxT,EAAWA,EAAWnyB,OAAS,GAAKmyB,EAAWA,EAAWnyB,OAAS,GAEnF,CAGA,MAAM4lC,GAASzB,EAAahS,EAAWuT,IAAcC,EAC/C/J,EAAa8J,EAAY5kC,EAAOu0B,mBAAqB,EAAI,EAAIv0B,EAAOqzB,eAE1E,GAAI8P,EAAWnjC,EAAO2kC,aAAc,CAElC,IAAK3kC,EAAO+kC,WAEV,YADA/U,EAAOqK,QAAQrK,EAAO8F,aAGM,SAA1B9F,EAAOmR,iBACL2D,GAAS9kC,EAAOglC,gBAAiBhV,EAAOqK,QAAQuK,EAAY9J,GAC3D9K,EAAOqK,QAAQuK,IAEQ,SAA1B5U,EAAOmR,iBACL2D,EAAS,EAAI9kC,EAAOglC,gBAAkBhV,EAAOqK,QAAQuK,EAAY9J,GAChE9K,EAAOqK,QAAQuK,GAExB,KAAO,CAEL,IAAK5kC,EAAOilC,YAEV,YADAjV,EAAOqK,QAAQrK,EAAO8F,aAGE9F,EAAOkV,aAAel4B,EAAEvE,SAAWunB,EAAOkV,WAAWC,QAAUn4B,EAAEvE,SAAWunB,EAAOkV,WAAWE,QAQ7Gp4B,EAAEvE,SAAWunB,EAAOkV,WAAWC,OACxCnV,EAAOqK,QAAQuK,EAAY9J,GAE3B9K,EAAOqK,QAAQuK,IATe,SAA1B5U,EAAOmR,gBACTnR,EAAOqK,QAAQuK,EAAY9J,GAEC,SAA1B9K,EAAOmR,gBACTnR,EAAOqK,QAAQuK,GAOrB,CACF,CAEA,SAASS,IACP,MAAMrV,EAAS3wB,MAET,OAAEW,EAAM,GAAE8K,GAAOklB,EAEvB,GAAIllB,GAAyB,IAAnBA,EAAG0e,YAAmB,OAG5BxpB,EAAOslC,aACTtV,EAAOuV,gBAIT,MAAM,eAAEhL,EAAc,eAAEC,EAAc,SAAEpJ,GAAapB,EAGrDA,EAAOuK,gBAAiB,EACxBvK,EAAOwK,gBAAiB,EAExBxK,EAAOD,aACPC,EAAOO,eAEPP,EAAOqH,uBACuB,SAAzBr3B,EAAO4yB,eAA4B5yB,EAAO4yB,cAAgB,IAAM5C,EAAOkH,QAAUlH,EAAOiH,cAAgBjH,EAAOhwB,OAAOq0B,eACzHrE,EAAOqK,QAAQrK,EAAOiB,OAAO/xB,OAAS,EAAG,GAAG,GAAO,GAEnD8wB,EAAOqK,QAAQrK,EAAO8F,YAAa,GAAG,GAAO,GAG3C9F,EAAOwV,UAAYxV,EAAOwV,SAASC,SAAWzV,EAAOwV,SAASE,QAChE1V,EAAOwV,SAASG,MAGlB3V,EAAOwK,eAAiBA,EACxBxK,EAAOuK,eAAiBA,EAEpBvK,EAAOhwB,OAAOo1B,eAAiBhE,IAAapB,EAAOoB,UACrDpB,EAAOqF,eAEX,CAEA,SAASuQ,EAAS54B,GAChB,MAAMgjB,EAAS3wB,KACV2wB,EAAOkQ,aACNlQ,EAAOhwB,OAAO6lC,eAAe74B,EAAEjN,iBAC/BiwB,EAAOhwB,OAAO8lC,0BAA4B9V,EAAO2J,YACnD3sB,EAAEmI,kBACFnI,EAAE+4B,4BAGR,CAEA,SAASC,IACP,MAAMhW,EAAS3wB,MACT,UAAE+5B,EAAS,aAAE1I,GAAiBV,EAiBpC,IAAIqJ,EAhBJrJ,EAAOsJ,kBAAoBtJ,EAAOmG,UAC9BnG,EAAOI,eAEPJ,EAAOmG,UADLzF,EACmB0I,EAAU7nB,YAAc6nB,EAAU5P,YAAe4P,EAAUzc,YAE5Dyc,EAAUzc,WAGhCqT,EAAOmG,WAAaiD,EAAUlxB,WAGN,IAAtB8nB,EAAOmG,YAAkBnG,EAAOmG,UAAY,GAEhDnG,EAAOkI,oBACPlI,EAAOqH,sBAGP,MAAMN,EAAiB/G,EAAOgH,eAAiBhH,EAAOwG,eAEpD6C,EADqB,IAAnBtC,EACY,GAEC/G,EAAOmG,UAAYnG,EAAOwG,gBAAkB,EAEzD6C,IAAgBrJ,EAAO4G,UACzB5G,EAAO6G,eAAenG,GAAgBV,EAAOmG,UAAYnG,EAAOmG,WAGlEnG,EAAOpB,KAAK,eAAgBoB,EAAOmG,WAAW,EAChD,CAEA,IAAI8P,GAAqB,EACzB,SAASC,IAAsB,CAuG/B,IAAI5d,EAAS,CACX6d,aAtGF,WACE,MAAMnW,EAAS3wB,MACT,OACJW,EAAM,YAAEomC,EAAW,GAAEt7B,EAAE,UAAEsuB,GACvBpJ,EAEJA,EAAOsP,aAAeA,EAAa1uB,KAAKof,GACxCA,EAAO0R,YAAcA,EAAY9wB,KAAKof,GACtCA,EAAOiT,WAAaA,EAAWryB,KAAKof,GAChChwB,EAAOyxB,UACTzB,EAAOgW,SAAWA,EAASp1B,KAAKof,IAGlCA,EAAO4V,QAAUA,EAAQh1B,KAAKof,GAE9B,MAAMjI,IAAY/nB,EAAOsiC,OAGzB,IAAK/U,EAAQC,OAASD,EAAQG,cAC5B5iB,EAAGyZ,iBAAiB6hB,EAAYC,MAAOrW,EAAOsP,cAAc,GAC5Djb,EAAWE,iBAAiB6hB,EAAYE,KAAMtW,EAAO0R,YAAa3Z,GAClE1D,EAAWE,iBAAiB6hB,EAAY7nC,IAAKyxB,EAAOiT,YAAY,OAC3D,CACL,GAAI1V,EAAQC,MAAO,CACjB,MAAMM,IAAwC,eAAtBsY,EAAYC,QAA0B9Y,EAAQO,kBAAmB9tB,EAAOumC,mBAAmB,CAAEC,SAAS,EAAMze,SAAS,GAC7Ijd,EAAGyZ,iBAAiB6hB,EAAYC,MAAOrW,EAAOsP,aAAcxR,GAC5DhjB,EAAGyZ,iBAAiB6hB,EAAYE,KAAMtW,EAAO0R,YAAanU,EAAQO,gBAAkB,CAAE0Y,SAAS,EAAOze,WAAYA,GAClHjd,EAAGyZ,iBAAiB6hB,EAAY7nC,IAAKyxB,EAAOiT,WAAYnV,GACpDsY,EAAYK,QACd37B,EAAGyZ,iBAAiB6hB,EAAYK,OAAQzW,EAAOiT,WAAYnV,GAExDmY,IACH5hB,EAAWE,iBAAiB,aAAc2hB,GAC1CD,GAAqB,EAEzB,EACKjmC,EAAO08B,gBAAkBgB,EAAOI,MAAQJ,EAAOK,SAAa/9B,EAAO08B,gBAAkBnP,EAAQC,OAASkQ,EAAOI,OAChHhzB,EAAGyZ,iBAAiB,YAAayL,EAAOsP,cAAc,GACtDjb,EAAWE,iBAAiB,YAAayL,EAAO0R,YAAa3Z,GAC7D1D,EAAWE,iBAAiB,UAAWyL,EAAOiT,YAAY,GAE9D,EAEIjjC,EAAO6lC,eAAiB7lC,EAAO8lC,2BACjCh7B,EAAGyZ,iBAAiB,QAASyL,EAAO4V,SAAS,GAE3C5lC,EAAOyxB,SACT2H,EAAU7U,iBAAiB,SAAUyL,EAAOgW,UAI1ChmC,EAAO0mC,qBACT1W,EAAO5wB,GAAIs+B,EAAOI,KAAOJ,EAAOK,QAAU,0CAA4C,wBAA0BsH,GAAU,GAE1HrV,EAAO5wB,GAAG,iBAAkBimC,GAAU,EAE1C,EA+CEsB,aA7CF,WACE,MAAM3W,EAAS3wB,MAET,OACJW,EAAM,YAAEomC,EAAW,GAAEt7B,EAAE,UAAEsuB,GACvBpJ,EAEEjI,IAAY/nB,EAAOsiC,OAGzB,IAAK/U,EAAQC,OAASD,EAAQG,cAC5B5iB,EAAG0Z,oBAAoB4hB,EAAYC,MAAOrW,EAAOsP,cAAc,GAC/Djb,EAAWG,oBAAoB4hB,EAAYE,KAAMtW,EAAO0R,YAAa3Z,GACrE1D,EAAWG,oBAAoB4hB,EAAY7nC,IAAKyxB,EAAOiT,YAAY,OAC9D,CACL,GAAI1V,EAAQC,MAAO,CACjB,MAAMM,IAAwC,iBAAtBsY,EAAYC,QAA4B9Y,EAAQO,kBAAmB9tB,EAAOumC,mBAAmB,CAAEC,SAAS,EAAMze,SAAS,GAC/Ijd,EAAG0Z,oBAAoB4hB,EAAYC,MAAOrW,EAAOsP,aAAcxR,GAC/DhjB,EAAG0Z,oBAAoB4hB,EAAYE,KAAMtW,EAAO0R,YAAa3Z,GAC7Djd,EAAG0Z,oBAAoB4hB,EAAY7nC,IAAKyxB,EAAOiT,WAAYnV,GACvDsY,EAAYK,QACd37B,EAAG0Z,oBAAoB4hB,EAAYK,OAAQzW,EAAOiT,WAAYnV,EAElE,EACK9tB,EAAO08B,gBAAkBgB,EAAOI,MAAQJ,EAAOK,SAAa/9B,EAAO08B,gBAAkBnP,EAAQC,OAASkQ,EAAOI,OAChHhzB,EAAG0Z,oBAAoB,YAAawL,EAAOsP,cAAc,GACzDjb,EAAWG,oBAAoB,YAAawL,EAAO0R,YAAa3Z,GAChE1D,EAAWG,oBAAoB,UAAWwL,EAAOiT,YAAY,GAEjE,EAEIjjC,EAAO6lC,eAAiB7lC,EAAO8lC,2BACjCh7B,EAAG0Z,oBAAoB,QAASwL,EAAO4V,SAAS,GAG9C5lC,EAAOyxB,SACT2H,EAAU5U,oBAAoB,SAAUwL,EAAOgW,UAIjDhW,EAAO9Y,IAAKwmB,EAAOI,KAAOJ,EAAOK,QAAU,0CAA4C,wBAA0BsH,EACnH,GAkGA,IAAIC,EAAc,CAAEC,cA3FpB,WACE,MAAMvV,EAAS3wB,MACT,YACJy2B,EAAW,YAAE2C,EAAW,aAAEmC,EAAe,EAAC,OAAE56B,EAAM,IAAEiwB,GAClDD,EACEsV,EAActlC,EAAOslC,YAC3B,IAAKA,GAAgBA,GAAmD,IAApCrlC,OAAOkkB,KAAKmhB,GAAapmC,OAAe,OAG5E,MAAM0nC,EAAa5W,EAAO6W,cAAcvB,GAExC,GAAIsB,GAAc5W,EAAO8W,oBAAsBF,EAAY,CACzD,MAAMG,EAAuBH,KAActB,EAAcA,EAAYsB,QAAcve,EAC/E0e,GACF,CAAC,gBAAiB,eAAgB,iBAAkB,qBAAsB,mBAAmB3iB,SAASuI,IACpG,MAAMqa,EAAaD,EAAqBpa,QACd,IAAfqa,IAITD,EAAqBpa,GAHT,kBAAVA,GAA6C,SAAfqa,GAAwC,SAAfA,EAEtC,kBAAVra,EACqBlD,WAAWud,GAEXljC,SAASkjC,EAAY,IAJrB,OAKhC,IAIJ,MAAMC,EAAmBF,GAAwB/W,EAAOkX,eAClDC,EAAcnnC,EAAO0yB,gBAAkB,EACvC0U,EAAaH,EAAiBvU,gBAAkB,EAClDyU,IAAgBC,EAClBnX,EAAIzxB,YAAY,GAAGwB,EAAOqnC,kCAAkCrnC,EAAOqnC,0CACzDF,GAAeC,IACzBnX,EAAIxxB,SAAS,GAAGuB,EAAOqnC,kCACsB,WAAzCJ,EAAiBpU,qBACnB5C,EAAIxxB,SAAS,GAAGuB,EAAOqnC,0CAI3B,MAAMC,EAAmBL,EAAiB7M,WAAa6M,EAAiB7M,YAAcp6B,EAAOo6B,UACvFmN,EAAcvnC,EAAO83B,OAASmP,EAAiBrU,gBAAkB5yB,EAAO4yB,eAAiB0U,GAE3FA,GAAoB7O,GACtBzI,EAAOwX,kBAGThc,EAAMpnB,OAAO4rB,EAAOhwB,OAAQinC,GAE5Bzb,EAAMpnB,OAAO4rB,EAAQ,CACnBuR,eAAgBvR,EAAOhwB,OAAOuhC,eAC9BhH,eAAgBvK,EAAOhwB,OAAOu6B,eAC9BC,eAAgBxK,EAAOhwB,OAAOw6B,iBAGhCxK,EAAO8W,kBAAoBF,EAEvBW,GAAe9O,IACjBzI,EAAOsM,cACPtM,EAAO4L,aACP5L,EAAOO,eACPP,EAAOqK,QAASvE,EAAc8E,EAAgB5K,EAAO4K,aAAc,GAAG,IAGxE5K,EAAOpB,KAAK,aAAcqY,EAC5B,CACF,EA0BmCJ,cAxBnC,SAAwBvB,GAEtB,IAAKA,EAAa,OAClB,IAAIsB,GAAa,EAEjB,MAAMa,EAASxnC,OAAOkkB,KAAKmhB,GAAa3xB,KAAK+zB,IAC3C,GAAqB,iBAAVA,GAA6C,IAAvBA,EAAMt1B,QAAQ,KAAY,CACzD,MAAMu1B,EAAWle,WAAWie,EAAM9sB,OAAO,IAEzC,MAAO,CAAEjc,MADK6mB,EAAOpU,YAAcu2B,EACnBD,QAClB,CACA,MAAO,CAAE/oC,MAAO+oC,EAAOA,QAAO,IAGhCD,EAAOr0B,MAAK,CAACzF,EAAGsB,IAAMnL,SAAS6J,EAAEhP,MAAO,IAAMmF,SAASmL,EAAEtQ,MAAO,MAChE,IAAK,IAAI0M,EAAI,EAAGA,EAAIo8B,EAAOvoC,OAAQmM,GAAK,EAAG,CACzC,MAAM,MAAEq8B,EAAK,MAAE/oC,GAAU8oC,EAAOp8B,GAC5B1M,GAAS6mB,EAAOlU,aAClBs1B,EAAac,EAEjB,CACA,OAAOd,GAAc,KACvB,GA8GA,IAAI,EAAS,CACXgB,UAvDF,SAAoBC,EAASx7B,EAAKy7B,EAAQC,EAAOC,EAAkBz4B,GACjE,IAAI04B,EACJ,SAASthC,IACH4I,GAAUA,GAChB,CACkBvR,EAAE6pC,GAAStlC,OAAO,WAAW,IAE3BslC,EAAQK,UAAaF,EAmBvCrhC,IAlBI0F,GACF47B,EAAQ,IAAIziB,EAAOpZ,MACnB67B,EAAM17B,OAAS5F,EACfshC,EAAME,QAAUxhC,EACZohC,IACFE,EAAMF,MAAQA,GAEZD,IACFG,EAAMH,OAASA,GAEbz7B,IACF47B,EAAM57B,IAAMA,IAGd1F,GAMN,EA4BEyhC,cA1BF,WACE,MAAMpY,EAAS3wB,KAEf,SAASsH,IACH,MAAOqpB,GAA8CA,IAAUA,EAAOkK,iBAC9C7R,IAAxB2H,EAAOqY,eAA4BrY,EAAOqY,cAAgB,GAC1DrY,EAAOqY,eAAiBrY,EAAOsY,aAAappC,SAC1C8wB,EAAOhwB,OAAOuoC,qBAAqBvY,EAAOnZ,SAC9CmZ,EAAOpB,KAAK,gBAEhB,CARAoB,EAAOsY,aAAetY,EAAOC,IAAI5xB,KAAK,OAStC,IAAK,IAAIgN,EAAI,EAAGA,EAAI2kB,EAAOsY,aAAappC,OAAQmM,GAAK,EAAG,CACtD,MAAMw8B,EAAU7X,EAAOsY,aAAaj9B,GACpC2kB,EAAO4X,UACLC,EACAA,EAAQW,YAAcX,EAAQj2B,aAAa,OAC3Ci2B,EAAQC,QAAUD,EAAQj2B,aAAa,UACvCi2B,EAAQE,OAASF,EAAQj2B,aAAa,UACtC,EACAjL,EAEJ,CACF,GA+BA,IAAI8hC,EAAkB,CAAEpT,cAxBxB,WACE,MAAMrF,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAChB0oC,EAAY1Y,EAAO2M,SACnBgM,EAAoB3Y,EAAOiB,OAAO/xB,OAAS,GAAMc,EAAO2xB,mBAAsB3xB,EAAOkyB,cAAgBlC,EAAOiB,OAAO/xB,OAAS,GAAQ8wB,EAAOiB,OAAO,GAAe,YAAIjB,EAAOiB,OAAO/xB,OAErLc,EAAO2xB,oBAAsB3xB,EAAO6xB,mBAAqB8W,EAC3D3Y,EAAO2M,SAAWgM,GAAqB3Y,EAAOM,KAE9CN,EAAO2M,SAAsC,IAA3B3M,EAAOoB,SAASlyB,OAGpC8wB,EAAOuK,gBAAkBvK,EAAO2M,SAChC3M,EAAOwK,gBAAkBxK,EAAO2M,SAG5B+L,IAAc1Y,EAAO2M,UAAU3M,EAAOpB,KAAKoB,EAAO2M,SAAW,OAAS,UAEtE+L,GAAaA,IAAc1Y,EAAO2M,WACpC3M,EAAOkH,OAAQ,EACXlH,EAAOkV,YAAYlV,EAAOkV,WAAWruB,SAE7C,GAII+H,EAAW,CACbgqB,MAAM,EACNxO,UAAW,aACXsF,kBAAmB,YACnBpF,aAAc,EACdrxB,MAAO,IACPwoB,SAAS,EACTiV,sBAAsB,EAEtB9M,gCAAgC,EAGhC+G,oBAAoB,EACpBE,mBAAoB,GAGpBiC,UAAU,EACVQ,kBAAkB,EAClBS,sBAAuB,EACvBQ,wBAAwB,EACxBF,4BAA6B,EAC7BR,8BAA+B,EAC/BW,gBAAgB,EAChBZ,wBAAyB,IAGzBnN,YAAY,EAGZ/B,gBAAgB,EAGhBsE,kBAAkB,EAGlBvE,OAAQ,QAGR6Q,iBAAajd,EAGb6J,aAAc,EACdU,cAAe,EACfF,gBAAiB,EACjBG,oBAAqB,SACrBQ,eAAgB,EAChBkB,mBAAoB,EACpBF,gBAAgB,EAChBO,sBAAsB,EACtBjD,mBAAoB,EACpBE,kBAAmB,EACnB0G,qBAAqB,EACrBtD,0BAA0B,EAG1BG,eAAe,EAGftB,cAAc,EAGd2O,WAAY,EACZP,WAAY,GACZxF,eAAe,EACfuI,aAAa,EACbF,YAAY,EACZC,gBAAiB,GACjBL,aAAc,IACd9B,cAAc,EACdtB,gBAAgB,EAChB/F,UAAW,EACX6G,0BAA0B,EAC1Bb,0BAA0B,EAC1BC,+BAA+B,EAC/BK,qBAAqB,EAGrB+G,mBAAmB,EAGnBjG,YAAY,EACZD,gBAAiB,IAGjBrN,qBAAqB,EACrBC,uBAAuB,EAGvBgH,YAAY,EAGZsJ,eAAe,EACfC,0BAA0B,EAC1B/M,qBAAqB,EAGrBqP,eAAe,EACfG,qBAAqB,EAGrBzQ,MAAM,EACNmE,qBAAsB,EACtBrB,aAAc,KACdiB,wBAAwB,EAGxBrB,gBAAgB,EAChBD,gBAAgB,EAChB4F,aAAc,KACdJ,WAAW,EACXE,eAAgB,oBAChBD,kBAAmB,KAGnBuG,kBAAkB,EAGlBc,uBAAwB,oBACxBnW,WAAY,eACZ8K,gBAAiB,+BACjBxE,iBAAkB,sBAClBG,0BAA2B,gCAC3BtB,kBAAmB,uBACnB0B,oBAAqB,yBACrBN,eAAgB,oBAChBG,wBAAyB,8BACzBF,eAAgB,oBAChBG,wBAAyB,8BACzBiR,aAAc,iBAGdpQ,oBAAoB,GAKtB,MAAMqQ,EAAa,CACjBlyB,SACAsf,YACA1uB,WAAU,EACVwrB,QACA6E,OACAyE,aACAO,eACAxU,SACAgd,cACAjQ,cAAeoT,EACfzhB,QA1OY,CAAEgiB,WAlDhB,WACE,MACM,WACJC,EAAU,OAAEjpC,EAAM,IAAE2wB,EAAG,IAAEV,GAFZ5wB,KAIT6pC,EAAW,GAEjBA,EAASziC,KAAK,eACdyiC,EAASziC,KAAKzG,EAAOo6B,WAEjBp6B,EAAO8iC,UACToG,EAASziC,KAAK,aAEZzG,EAAOy2B,YACTyS,EAASziC,KAAK,cAEZkqB,GACFuY,EAASziC,KAAK,OAEZzG,EAAO0yB,gBAAkB,IAC3BwW,EAASziC,KAAK,YACqB,WAA/BzG,EAAO6yB,qBACTqW,EAASziC,KAAK,oBAGdi3B,EAAOK,SACTmL,EAASziC,KAAK,WAEZi3B,EAAOI,KACToL,EAASziC,KAAK,OAGZzG,EAAOyxB,SACTyX,EAASziC,KAAK,YAGhByiC,EAAS9kB,SAAS+kB,IAChBF,EAAWxiC,KAAKzG,EAAOqnC,uBAAyB8B,EAAO,IAGzDlZ,EAAIxxB,SAASwqC,EAAW32B,KAAK,KAC/B,EAS4B82B,cAP5B,WACE,MACM,IAAEnZ,EAAG,WAAEgZ,GADE5pC,KAGf4wB,EAAIzxB,YAAYyqC,EAAW32B,KAAK,KAClC,GA6OE+2B,OAAM,GAGFC,EAAmB,CAAC,EAE1B,MAAMC,UAAepb,EACnB,WAAAve,IAAeoD,GACb,IAAIlI,EACA9K,EACgB,IAAhBgT,EAAK9T,QAAgB8T,EAAK,GAAGpD,aAAeoD,EAAK,GAAGpD,cAAgB3P,OACtED,EAASgT,EAAK,IAEblI,EAAI9K,GAAUgT,EAEZhT,IAAQA,EAAS,CAAC,GAEvBA,EAASwrB,EAAMpnB,OAAO,CAAC,EAAGpE,GACtB8K,IAAO9K,EAAO8K,KAAI9K,EAAO8K,GAAKA,GAElC0+B,MAAMxpC,GAENC,OAAOkkB,KAAK4kB,GAAY3kB,SAASqlB,IAC/BxpC,OAAOkkB,KAAK4kB,EAAWU,IAAiBrlB,SAASslB,IAC1CH,EAAOr7B,UAAUw7B,KACpBH,EAAOr7B,UAAUw7B,GAAeX,EAAWU,GAAgBC,GAC7D,GACA,IAIJ,MAAM1Z,EAAS3wB,UACe,IAAnB2wB,EAAOhB,UAChBgB,EAAOhB,QAAU,CAAC,GAEpB/uB,OAAOkkB,KAAK6L,EAAOhB,SAAS5K,SAAS6K,IACnC,MAAMrgB,EAASohB,EAAOhB,QAAQC,GAC9B,GAAIrgB,EAAO5O,OAAQ,CACjB,MAAM2pC,EAAkB1pC,OAAOkkB,KAAKvV,EAAO5O,QAAQ,GAC7CovB,EAAexgB,EAAO5O,OAAO2pC,GACnC,GAA4B,iBAAjBva,GAA8C,OAAjBA,EAAuB,OAC/D,KAAMua,KAAmB3pC,MAAU,YAAaovB,GAAe,QAC/B,IAA5BpvB,EAAO2pC,KACT3pC,EAAO2pC,GAAmB,CAAE5Y,SAAS,IAGF,iBAA5B/wB,EAAO2pC,IACT,YAAa3pC,EAAO2pC,KAEzB3pC,EAAO2pC,GAAiB5Y,SAAU,GAE/B/wB,EAAO2pC,KAAkB3pC,EAAO2pC,GAAmB,CAAE5Y,SAAS,GACrE,KAIF,MAAM6Y,EAAepe,EAAMpnB,OAAO,CAAC,EAAGwa,GACtCoR,EAAOnB,iBAAiB+a,GAGxB5Z,EAAOhwB,OAASwrB,EAAMpnB,OAAO,CAAC,EAAGwlC,EAAcN,EAAkBtpC,GACjEgwB,EAAOkX,eAAiB1b,EAAMpnB,OAAO,CAAC,EAAG4rB,EAAOhwB,QAChDgwB,EAAO6Z,aAAere,EAAMpnB,OAAO,CAAC,EAAGpE,GAGvCgwB,EAAOhyB,EAAIA,EAGX,MAAMiyB,EAAMjyB,EAAEgyB,EAAOhwB,OAAO8K,IAG5B,GAFAA,EAAKmlB,EAAI,IAEJnlB,EACH,OAGF,GAAImlB,EAAI/wB,OAAS,EAAG,CAClB,MAAM4qC,EAAU,GAKhB,OAJA7Z,EAAIltB,MAAK,CAAC8H,EAAOk/B,KACf,MAAMC,EAAYxe,EAAMpnB,OAAO,CAAC,EAAGpE,EAAQ,CAAE8K,GAAIi/B,IACjDD,EAAQrjC,KAAK,IAAI8iC,EAAOS,GAAW,IAE9BF,CACT,CAMA,IAAItZ,EA6HJ,OAjIA1lB,EAAGklB,OAASA,EACZC,EAAIpvB,KAAK,SAAUmvB,GAIfllB,GAAMA,EAAGm/B,YAAcn/B,EAAGm/B,WAAWtlB,eACvC6L,EAAaxyB,EAAE8M,EAAGm/B,WAAWtlB,cAAc,IAAIqL,EAAOhwB,OAAO8oC,iBAE7DtY,EAAW/qB,SAAY+M,GAAYyd,EAAIxqB,SAAS+M,IAEhDge,EAAaP,EAAIxqB,SAAS,IAAIuqB,EAAOhwB,OAAO8oC,gBAG9Ctd,EAAMpnB,OAAO4rB,EAAQ,CACnBC,MACAnlB,KACA0lB,aACA4I,UAAW5I,EAAW,GAGtByY,WAAY,GAGZhY,OAAQjzB,IACRqzB,WAAY,GACZD,SAAU,GACVE,gBAAiB,GAGjBlB,aAAY,IACyB,eAA5BJ,EAAOhwB,OAAOo6B,UAEvB/J,WAAU,IAC2B,aAA5BL,EAAOhwB,OAAOo6B,UAGvBzJ,IAA+B,QAAzB7lB,EAAGgW,IAAI/P,eAAoD,QAAzBkf,EAAI3X,IAAI,aAChDoY,aAA0C,eAA5BV,EAAOhwB,OAAOo6B,YAAwD,QAAzBtvB,EAAGgW,IAAI/P,eAAoD,QAAzBkf,EAAI3X,IAAI,cACrGsY,SAAwC,gBAA9BJ,EAAWlY,IAAI,WAGzBwd,YAAa,EACbwB,UAAW,EAGXL,aAAa,EACbC,OAAO,EAGPf,UAAW,EACXmD,kBAAmB,EACnB1C,SAAU,EACV+M,SAAU,EACVhK,WAAW,EAGXY,eAAgBvK,EAAOhwB,OAAOu6B,eAC9BC,eAAgBxK,EAAOhwB,OAAOw6B,eAG9B4L,YAAc,WACZ,MAAM5Y,EAAQ,CAAC,aAAc,YAAa,WAAY,eACtD,IAAIyQ,EAAU,CAAC,YAAa,YAAa,WAezC,OAdI1Q,EAAQG,gBACVuQ,EAAU,CAAC,cAAe,cAAe,cAE3CjO,EAAOka,iBAAmB,CACxB7D,MAAO7Y,EAAM,GACb8Y,KAAM9Y,EAAM,GACZjvB,IAAKivB,EAAM,GACXiZ,OAAQjZ,EAAM,IAEhBwC,EAAOma,mBAAqB,CAC1B9D,MAAOpI,EAAQ,GACfqI,KAAMrI,EAAQ,GACd1/B,IAAK0/B,EAAQ,IAER1Q,EAAQC,QAAUwC,EAAOhwB,OAAO08B,cAAgB1M,EAAOka,iBAAmBla,EAAOma,kBAC1F,CAlBa,GAmBb5K,gBAAiB,CACfM,eAAWxX,EACXyX,aAASzX,EACT0Y,yBAAqB1Y,EACrB6Y,oBAAgB7Y,EAChB2Y,iBAAa3Y,EACb4Q,sBAAkB5Q,EAClBka,oBAAgBla,EAChB+Y,wBAAoB/Y,EAEpBgZ,aAAc,wDAEd+B,cAAe5X,EAAMI,MACrBwe,kBAAc/hB,EAEd0a,WAAY,GACZP,yBAAqBna,EACrBsX,kBAActX,EACd4Y,iBAAa5Y,GAIf6X,YAAY,EAGZqB,eAAgBvR,EAAOhwB,OAAOuhC,eAE9B/B,QAAS,CACPiB,OAAQ,EACRC,OAAQ,EACRN,SAAU,EACVG,SAAU,EACVlE,KAAM,GAIRiM,aAAc,GACdD,aAAc,IAKhBrY,EAAOd,aAGHc,EAAOhwB,OAAO4oC,MAChB5Y,EAAO4Y,OAIF5Y,CACT,CAEA,oBAAA0L,GACE,MACM,OACJ17B,EAAM,OAAEixB,EAAM,WAAEI,EAAYf,KAAMG,EAAU,YAAEqF,GAFjCz2B,KAIf,IAAIgrC,EAAM,EACV,GAAIrqC,EAAOq0B,eAAgB,CACzB,IACIiW,EADArY,EAAYhB,EAAO6E,GAAa1B,gBAEpC,IAAK,IAAI/oB,EAAIyqB,EAAc,EAAGzqB,EAAI4lB,EAAO/xB,OAAQmM,GAAK,EAChD4lB,EAAO5lB,KAAOi/B,IAChBrY,GAAahB,EAAO5lB,GAAG+oB,gBACvBiW,GAAO,EACHpY,EAAYxB,IAAY6Z,GAAY,IAG5C,IAAK,IAAIj/B,EAAIyqB,EAAc,EAAGzqB,GAAK,EAAGA,GAAK,EACrC4lB,EAAO5lB,KAAOi/B,IAChBrY,GAAahB,EAAO5lB,GAAG+oB,gBACvBiW,GAAO,EACHpY,EAAYxB,IAAY6Z,GAAY,GAG9C,MACE,IAAK,IAAIj/B,EAAIyqB,EAAc,EAAGzqB,EAAI4lB,EAAO/xB,OAAQmM,GAAK,EAChDgmB,EAAWhmB,GAAKgmB,EAAWyE,GAAerF,IAC5C4Z,GAAO,GAIb,OAAOA,CACT,CAEA,MAAAxzB,GACE,MAAMmZ,EAAS3wB,KACf,IAAK2wB,GAAUA,EAAOkK,UAAW,OACjC,MAAM,SAAE9I,EAAQ,OAAEpxB,GAAWgwB,EAU7B,SAASkJ,IACP,MAAMqR,EAAiBva,EAAOU,cAAmC,EAApBV,EAAOmG,UAAiBnG,EAAOmG,UACtE0D,EAAerpB,KAAKijB,IAAIjjB,KAAKsiB,IAAIyX,EAAgBva,EAAOgH,gBAAiBhH,EAAOwG,gBACtFxG,EAAOkJ,aAAaW,GACpB7J,EAAOkI,oBACPlI,EAAOqH,qBACT,CACA,IAAImT,EAfAxqC,EAAOslC,aACTtV,EAAOuV,gBAETvV,EAAOD,aACPC,EAAOO,eACPP,EAAO6G,iBACP7G,EAAOqH,sBAUHrH,EAAOhwB,OAAO8iC,UAChB5J,IACIlJ,EAAOhwB,OAAOy2B,YAChBzG,EAAOyF,qBAIP+U,GADmC,SAAhCxa,EAAOhwB,OAAO4yB,eAA4B5C,EAAOhwB,OAAO4yB,cAAgB,IAAM5C,EAAOkH,QAAUlH,EAAOhwB,OAAOq0B,eACnGrE,EAAOqK,QAAQrK,EAAOiB,OAAO/xB,OAAS,EAAG,GAAG,GAAO,GAEnD8wB,EAAOqK,QAAQrK,EAAO8F,YAAa,GAAG,GAAO,GAEvD0U,GACHtR,KAGAl5B,EAAOo1B,eAAiBhE,IAAapB,EAAOoB,UAC9CpB,EAAOqF,gBAETrF,EAAOpB,KAAK,SACd,CAEA,eAAA4Y,CAAgBiD,EAAcC,GAAa,GACzC,MAAM1a,EAAS3wB,KACTsrC,EAAmB3a,EAAOhwB,OAAOo6B,UAKvC,OAJKqQ,IAEHA,EAAoC,eAArBE,EAAoC,WAAa,cAE7DF,IAAiBE,GAAuC,eAAjBF,GAAkD,aAAjBA,IAI7Eza,EAAOC,IACJzxB,YAAY,GAAGwxB,EAAOhwB,OAAOqnC,yBAAyBsD,KACtDlsC,SAAS,GAAGuxB,EAAOhwB,OAAOqnC,yBAAyBoD,KAEtDza,EAAOhwB,OAAOo6B,UAAYqQ,EAE1Bza,EAAOiB,OAAOluB,MAAK,CAACyuB,EAAYoZ,KACT,aAAjBH,EACFG,EAAQ35B,MAAM3I,MAAQ,GAEtBsiC,EAAQ35B,MAAM5G,OAAS,EACzB,IAGF2lB,EAAOpB,KAAK,mBACR8b,GAAY1a,EAAOnZ,UAlBdmZ,CAqBX,CAEA,IAAA4Y,GACE,MAAM5Y,EAAS3wB,KACX2wB,EAAOyI,cAEXzI,EAAOpB,KAAK,cAGRoB,EAAOhwB,OAAOslC,aAChBtV,EAAOuV,gBAITvV,EAAOgZ,aAGHhZ,EAAOhwB,OAAO83B,MAChB9H,EAAO4L,aAIT5L,EAAOD,aAGPC,EAAOO,eAEHP,EAAOhwB,OAAOo1B,eAChBpF,EAAOqF,gBAILrF,EAAOhwB,OAAOu8B,YAChBvM,EAAOwM,gBAGLxM,EAAOhwB,OAAOooC,eAChBpY,EAAOoY,gBAILpY,EAAOhwB,OAAO83B,KAChB9H,EAAOqK,QAAQrK,EAAOhwB,OAAOs6B,aAAetK,EAAO4K,aAAc,EAAG5K,EAAOhwB,OAAO04B,oBAElF1I,EAAOqK,QAAQrK,EAAOhwB,OAAOs6B,aAAc,EAAGtK,EAAOhwB,OAAO04B,oBAI9D1I,EAAOmW,eAGPnW,EAAOyI,aAAc,EAGrBzI,EAAOpB,KAAK,QACd,CAEA,OAAAvZ,CAAQw1B,GAAiB,EAAMC,GAAc,GAC3C,MAAM9a,EAAS3wB,MACT,OACJW,EAAM,IAAEiwB,EAAG,WAAEO,EAAU,OAAES,GACvBjB,EAEJ,YAA6B,IAAlBA,EAAOhwB,QAA0BgwB,EAAOkK,YAInDlK,EAAOpB,KAAK,iBAGZoB,EAAOyI,aAAc,EAGrBzI,EAAO2W,eAGH3mC,EAAO83B,MACT9H,EAAOsM,cAILwO,IACF9a,EAAOoZ,gBACPnZ,EAAInb,WAAW,SACf0b,EAAW1b,WAAW,SAClBmc,GAAUA,EAAO/xB,QACnB+xB,EACGzyB,YAAY,CACXwB,EAAOq2B,kBACPr2B,EAAOw3B,iBACPx3B,EAAOy3B,eACPz3B,EAAO03B,gBACPplB,KAAK,MACNwC,WAAW,SACXA,WAAW,4BAIlBkb,EAAOpB,KAAK,WAGZ3uB,OAAOkkB,KAAK6L,EAAO5B,iBAAiBhK,SAASiK,IAC3C2B,EAAO9Y,IAAImX,EAAU,KAGA,IAAnBwc,IACF7a,EAAOC,IAAI,GAAGD,OAAS,KACvBA,EAAOC,IAAIpvB,KAAK,SAAU,MAC1B2qB,EAAMC,YAAYuE,IAEpBA,EAAOkK,WAAY,GA9CV,IAiDX,CAEA,qBAAO6Q,CAAeC,GACpBxf,EAAMpnB,OAAOklC,EAAkB0B,EACjC,CAEA,2BAAW1B,GACT,OAAOA,CACT,CAEA,mBAAW1qB,GACT,OAAOA,CACT,CAEA,gBAAWkI,GACT,OAAOqH,CACT,CAEA,YAAWnwB,GACT,OAAOA,CACT,EAGF,IAAIitC,EAAW,CACbjoC,KAAM,SACN4sB,MAAO,CACLiO,OAAQH,GAEV7N,OAAQ,CACNgO,OAAQH,IAIRwN,EAAY,CACdloC,KAAM,UACN4sB,MAAO,CACLub,QAAS5d,GAEXsC,OAAQ,CACNsb,QAAS5d,IAIb,MAAM6d,EAKG,CACLC,SAAU7lB,EAAOjC,UAAUkC,UAAUtmB,MAAM,SAC3CmsC,SANF,WACE,MAAM1N,EAAKpY,EAAOjC,UAAUkC,UAAU1U,cACtC,OAAQ6sB,EAAGxrB,QAAQ,WAAa,GAAKwrB,EAAGxrB,QAAQ,UAAY,GAAKwrB,EAAGxrB,QAAQ,WAAa,CAC3F,CAGYk5B,GACVC,UAAW,+CAA+C/mC,KAAKghB,EAAOjC,UAAUkC,YAIpF,IAAI+lB,EAAY,CACdxoC,KAAM,UACN4sB,MAAO,CACL6b,QAASL,GAEXvb,OAAQ,CACN4b,QAASL,IAITM,EAAS,CACX1oC,KAAM,SACN,MAAAwsB,GACE,MAAMQ,EAAS3wB,KACfmsB,EAAMpnB,OAAO4rB,EAAQ,CACnB2b,OAAQ,CACN,aAAAC,GACO5b,IAAUA,EAAOkK,WAAclK,EAAOyI,cAC3CzI,EAAOpB,KAAK,gBACZoB,EAAOpB,KAAK,UACd,EACA,wBAAAid,GACO7b,IAAUA,EAAOkK,WAAclK,EAAOyI,aAC3CzI,EAAOpB,KAAK,oBACd,IAGN,EACAxvB,GAAI,CACF,IAAAwpC,GAGEpjB,EAAOjB,iBAAiB,SAFTllB,KAE0BssC,OAAOC,eAGhDpmB,EAAOjB,iBAAiB,oBALTllB,KAKqCssC,OAAOE,yBAC7D,EACA,OAAAx2B,GAEEmQ,EAAOhB,oBAAoB,SADZnlB,KAC6BssC,OAAOC,eACnDpmB,EAAOhB,oBAAoB,oBAFZnlB,KAEwCssC,OAAOE,yBAChE,IAIJ,MAAMC,EAAW,CACfC,KAAMvmB,EAAOrD,kBAAoBqD,EAAOwmB,uBACxC,MAAAC,CAAOxjC,EAAQ+J,EAAU,CAAC,GACxB,MAAMwd,EAAS3wB,KAGTwuB,EAAW,IAAIqe,EADAJ,EAASC,OACKI,IAIjC,GAAyB,IAArBA,EAAUjtC,OAEZ,YADA8wB,EAAOpB,KAAK,iBAAkBud,EAAU,IAG1C,MAAMC,EAAiB,WACrBpc,EAAOpB,KAAK,iBAAkBud,EAAU,GAC1C,EAEI3mB,EAAO6mB,sBACT7mB,EAAO6mB,sBAAsBD,GAE7B5mB,EAAO3b,WAAWuiC,EAAgB,EACpC,IAGFve,EAASzL,QAAQ3Z,EAAQ,CACvBsY,gBAA0C,IAAvBvO,EAAQuO,YAAoCvO,EAAQuO,WACvEsB,eAAwC,IAAtB7P,EAAQ6P,WAAmC7P,EAAQ6P,UACrEiqB,mBAAgD,IAA1B95B,EAAQ85B,eAAuC95B,EAAQ85B,gBAG/Etc,EAAOnC,SAAS0e,UAAU9lC,KAAKonB,EACjC,EACA,IAAA+a,GACE,MAAM5Y,EAAS3wB,KACf,GAAKkuB,EAAQM,UAAamC,EAAOhwB,OAAO6tB,SAAxC,CACA,GAAImC,EAAOhwB,OAAOwsC,eAAgB,CAChC,MAAMC,EAAmBzc,EAAOC,IAAIvnB,UACpC,IAAK,IAAI2C,EAAI,EAAGA,EAAIohC,EAAiBvtC,OAAQmM,GAAK,EAChD2kB,EAAOnC,SAASoe,OAAOQ,EAAiBphC,GAE5C,CAEA2kB,EAAOnC,SAASoe,OAAOjc,EAAOC,IAAI,GAAI,CAAE5N,UAAW2N,EAAOhwB,OAAO0sC,uBAGjE1c,EAAOnC,SAASoe,OAAOjc,EAAOQ,WAAW,GAAI,CAAEzP,YAAY,GAXH,CAY1D,EACA,OAAA1L,GACiBhW,KACRwuB,SAAS0e,UAAUnoB,SAASyJ,IACjCA,EAAS5K,YAAY,IAFR5jB,KAIRwuB,SAAS0e,UAAY,EAC9B,GAGF,IAAII,EAAa,CACf3pC,KAAM,WACNhD,OAAQ,CACN6tB,UAAU,EACV2e,gBAAgB,EAChBE,sBAAsB,GAExB,MAAAld,GACE,MAAMQ,EAAS3wB,KACfmsB,EAAMpnB,OAAO4rB,EAAQ,CACnBnC,SAAU,CACR+a,KAAMkD,EAASlD,KAAKh4B,KAAKof,GACzBic,OAAQH,EAASG,OAAOr7B,KAAKof,GAC7B3a,QAASy2B,EAASz2B,QAAQzE,KAAKof,GAC/Buc,UAAW,KAGjB,EACAntC,GAAI,CACF,IAAAwpC,GACiBvpC,KACRwuB,SAAS+a,MAClB,EACA,OAAAvzB,GACiBhW,KACRwuB,SAASxY,SAClB,IAwYJ,MAAMu3B,EAAa,CACjBC,eAAgBrhB,EAAMI,MACtBkhB,yBAAqBzkB,EACrB0kB,kBAAmB,GACnBjtC,MAAK,IACC0lB,EAAOjC,UAAUkC,UAAUrT,QAAQ,YAAc,EAAU,iBA5BnE,WACE,MAAMic,EAAY,UAClB,IAAI2e,EAAc3e,KAAahK,EAE/B,IAAK2oB,EAAa,CAChB,MAAMp5B,EAAUyQ,EAAWlQ,cAAc,OACzCP,EAAQ/B,aAAawc,EAAW,WAChC2e,EAA4C,mBAAvBp5B,EAAQya,EAC/B,CAaA,OAXK2e,GACA3oB,EAAW4oB,gBACX5oB,EAAW4oB,eAAeC,aAGuB,IAAjD7oB,EAAW4oB,eAAeC,WAAW,GAAI,MAG5CF,EAAc3oB,EAAW4oB,eAAeC,WAAW,eAAgB,QAG9DF,CACT,CAOWG,GAAqB,QAAU,aAExC,SAAA5+B,CAAUvB,GAMR,IAAIogC,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EAuDT,MApDI,WAAYvgC,IACdqgC,EAAKrgC,EAAE8b,QAEL,eAAgB9b,IAClBqgC,GAAMrgC,EAAEwgC,WAAa,KAEnB,gBAAiBxgC,IACnBqgC,GAAMrgC,EAAEygC,YAAc,KAEpB,gBAAiBzgC,IACnBogC,GAAMpgC,EAAE0gC,YAAc,KAIpB,SAAU1gC,GAAKA,EAAE8e,OAAS9e,EAAE2gC,kBAC9BP,EAAKC,EACLA,EAAK,GAGPC,EA7BmB,GA6BdF,EACLG,EA9BmB,GA8BdF,EAED,WAAYrgC,IACdugC,EAAKvgC,EAAEkI,QAEL,WAAYlI,IACdsgC,EAAKtgC,EAAE4gC,QAGL5gC,EAAE6gC,WAAaP,IACjBA,EAAKC,EACLA,EAAK,IAGFD,GAAMC,IAAOvgC,EAAE8gC,YACE,IAAhB9gC,EAAE8gC,WACJR,GA7CgB,GA8ChBC,GA9CgB,KAgDhBD,GA/CgB,IAgDhBC,GAhDgB,MAqDhBD,IAAOF,IACTA,EAAME,EAAK,GAAM,EAAI,GAEnBC,IAAOF,IACTA,EAAME,EAAK,GAAM,EAAI,GAGhB,CACLQ,MAAOX,EACPY,MAAOX,EACPY,OAAQX,EACRY,OAAQX,EAEZ,EACA,gBAAAY,GACiB9uC,KACR+uC,cAAe,CACxB,EACA,gBAAAC,GACiBhvC,KACR+uC,cAAe,CACxB,EACA,MAAAE,CAAOxuC,GACL,IAAIkN,EAAIlN,EACR,MAAMkwB,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAAOiV,WAEzB+a,EAAOhwB,OAAOyxB,SAChBzkB,EAAEjN,iBAGJ,IAAI0I,EAASunB,EAAOC,IAIpB,GAH8C,cAA1CD,EAAOhwB,OAAOiV,WAAWs5B,eAC3B9lC,EAASzK,EAAEgyB,EAAOhwB,OAAOiV,WAAWs5B,gBAEjCve,EAAOoe,eAAiB3lC,EAAO,GAAGG,SAASoE,EAAEvE,UAAYzI,EAAOwuC,eAAgB,OAAO,EAExFxhC,EAAEoI,gBAAepI,EAAIA,EAAEoI,eAC3B,IAAIq5B,EAAQ,EACZ,MAAMC,EAAY1e,EAAOU,cAAgB,EAAI,EAEvC7vB,EAAO+rC,EAAWr+B,UAAUvB,GAElC,GAAIhN,EAAO2uC,YACT,GAAI3e,EAAOI,eAAgB,CACzB,KAAI5f,KAAK8jB,IAAIzzB,EAAKotC,QAAUz9B,KAAK8jB,IAAIzzB,EAAKqtC,SACrC,OAAO,EADuCO,GAAS5tC,EAAKotC,OAASS,CAE5E,KAAO,MAAIl+B,KAAK8jB,IAAIzzB,EAAKqtC,QAAU19B,KAAK8jB,IAAIzzB,EAAKotC,SAC5C,OAAO,EAD8CQ,GAAS5tC,EAAKqtC,MACxD,MAEhBO,EAAQj+B,KAAK8jB,IAAIzzB,EAAKotC,QAAUz9B,KAAK8jB,IAAIzzB,EAAKqtC,SAAWrtC,EAAKotC,OAASS,GAAa7tC,EAAKqtC,OAG3F,GAAc,IAAVO,EAAa,OAAO,EAIxB,GAFIzuC,EAAO4uC,SAAQH,GAASA,GAEvBze,EAAOhwB,OAAO8iC,SAoCZ,CAOL,MAAM+L,EAAW,CAAE7L,KAAMxX,EAAMI,MAAO6iB,MAAOj+B,KAAK8jB,IAAIma,GAAQrU,UAAW5pB,KAAKs+B,KAAKL,KAC7E,oBAAE3B,GAAwB9c,EAAO/a,WACjC85B,EAAoBjC,GACrB+B,EAAS7L,KAAO8J,EAAoB9J,KAAO,KAC3C6L,EAASJ,OAAS3B,EAAoB2B,OACtCI,EAASzU,YAAc0S,EAAoB1S,UAChD,IAAK2U,EAAmB,CACtB/e,EAAO/a,WAAW63B,yBAAsBzkB,EAEpC2H,EAAOhwB,OAAO83B,MAChB9H,EAAO+K,UAET,IAAIlzB,EAAWmoB,EAAOnE,eAAkB4iB,EAAQzuC,EAAOgvC,YACvD,MAAM7X,EAAenH,EAAOiH,YACtBG,EAASpH,EAAOkH,MAetB,GAbIrvB,GAAYmoB,EAAOwG,iBAAgB3uB,EAAWmoB,EAAOwG,gBACrD3uB,GAAYmoB,EAAOgH,iBAAgBnvB,EAAWmoB,EAAOgH,gBAEzDhH,EAAO4F,cAAc,GACrB5F,EAAOkJ,aAAarxB,GACpBmoB,EAAO6G,iBACP7G,EAAOkI,oBACPlI,EAAOqH,wBAEDF,GAAgBnH,EAAOiH,cAAkBG,GAAUpH,EAAOkH,QAC9DlH,EAAOqH,sBAGLrH,EAAOhwB,OAAOwkC,eAAgB,CAYhCpqB,aAAa4V,EAAO/a,WAAWg6B,SAC/Bjf,EAAO/a,WAAWg6B,aAAU5mB,EAC5B,MAAM0kB,EAAoB/c,EAAO/a,WAAW83B,kBACxCA,EAAkB7tC,QAAU,IAC9B6tC,EAAkBmC,QAEpB,MAAMC,EAAYpC,EAAkB7tC,OAAS6tC,EAAkBA,EAAkB7tC,OAAS,QAAKmpB,EACzF+mB,EAAarC,EAAkB,GAErC,GADAA,EAAkBtmC,KAAKooC,GACnBM,IAAcN,EAASJ,MAAQU,EAAUV,OAASI,EAASzU,YAAc+U,EAAU/U,WAErF2S,EAAkB19B,OAAO,QACpB,GAAI09B,EAAkB7tC,QAAU,IAChC2vC,EAAS7L,KAAOoM,EAAWpM,KAAO,KAClCoM,EAAWX,MAAQI,EAASJ,OAAS,GACrCI,EAASJ,OAAS,EACvB,CAOA,MAAMY,EAAkBZ,EAAQ,EAAI,GAAM,GAC1Cze,EAAO/a,WAAW63B,oBAAsB+B,EACxC9B,EAAkB19B,OAAO,GACzB2gB,EAAO/a,WAAWg6B,QAAUzjB,EAAMG,UAAS,KACzCqE,EAAOuL,eAAevL,EAAOhwB,OAAOiJ,OAAO,OAAMof,EAAWgnB,EAAgB,GAC3E,EACL,CACKrf,EAAO/a,WAAWg6B,UAIrBjf,EAAO/a,WAAWg6B,QAAUzjB,EAAMG,UAAS,KAEzCqE,EAAO/a,WAAW63B,oBAAsB+B,EACxC9B,EAAkB19B,OAAO,GACzB2gB,EAAOuL,eAAevL,EAAOhwB,OAAOiJ,OAAO,OAAMof,EAHzB,GAGoD,GAC3E,KAEP,CAQA,GALK0mB,GAAmB/e,EAAOpB,KAAK,SAAU5hB,GAG1CgjB,EAAOhwB,OAAOwlC,UAAYxV,EAAOhwB,OAAOsvC,8BAA8Btf,EAAOwV,SAAS+J,OAEtF1nC,IAAamoB,EAAOwG,gBAAkB3uB,IAAamoB,EAAOgH,eAAgB,OAAO,CACvF,CACF,KAvI6B,CAE3B,MAAM6X,EAAW,CACf7L,KAAMxX,EAAMI,MACZ6iB,MAAOj+B,KAAK8jB,IAAIma,GAChBrU,UAAW5pB,KAAKs+B,KAAKL,GACrBe,IAAK1vC,GAIDitC,EAAoB/c,EAAO/a,WAAW83B,kBACxCA,EAAkB7tC,QAAU,GAC9B6tC,EAAkBmC,QAEpB,MAAMC,EAAYpC,EAAkB7tC,OAAS6tC,EAAkBA,EAAkB7tC,OAAS,QAAKmpB,EAmB/F,GAlBA0kB,EAAkBtmC,KAAKooC,GAQnBM,GACEN,EAASzU,YAAc+U,EAAU/U,WAAayU,EAASJ,MAAQU,EAAUV,OAASI,EAAS7L,KAAOmM,EAAUnM,KAAO,MACrHhT,EAAO/a,WAAWw6B,cAAcZ,GAGlC7e,EAAO/a,WAAWw6B,cAAcZ,GAK9B7e,EAAO/a,WAAWy6B,cAAcb,GAClC,OAAO,CAEX,CAuGA,OAFI7hC,EAAEjN,eAAgBiN,EAAEjN,iBACnBiN,EAAE2iC,aAAc,GACd,CACT,EACA,aAAAF,CAAcZ,GACZ,MAAM7e,EAAS3wB,KAIf,OAAIwvC,EAASJ,OAAS,GAAKjjB,EAAMI,MAAQoE,EAAO/a,WAAW43B,eAAiB,KAgBxEgC,EAASzU,UAAY,EACjBpK,EAAOkH,QAASlH,EAAOhwB,OAAO83B,MAAU9H,EAAO2J,YACnD3J,EAAO6K,YACP7K,EAAOpB,KAAK,SAAUigB,EAASW,MAEtBxf,EAAOiH,cAAejH,EAAOhwB,OAAO83B,MAAU9H,EAAO2J,YAChE3J,EAAOiL,YACPjL,EAAOpB,KAAK,SAAUigB,EAASW,MAGjCxf,EAAO/a,WAAW43B,gBAAiB,IAAKrnB,EAAOS,MAAQ2pB,WAEhD,EACT,EACA,aAAAF,CAAcb,GACZ,MAAM7e,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAAOiV,WAC7B,GAAI45B,EAASzU,UAAY,GACvB,GAAIpK,EAAOkH,QAAUlH,EAAOhwB,OAAO83B,MAAQ93B,EAAOwuC,eAEhD,OAAO,OAEJ,GAAIxe,EAAOiH,cAAgBjH,EAAOhwB,OAAO83B,MAAQ93B,EAAOwuC,eAE7D,OAAO,EAET,OAAO,CACT,EACA,MAAAxrB,GACE,MAAMgN,EAAS3wB,KACTS,EAAQ8sC,EAAW9sC,QACzB,GAAIkwB,EAAOhwB,OAAOyxB,QAEhB,OADAzB,EAAOoJ,UAAU5U,oBAAoB1kB,EAAOkwB,EAAO/a,WAAWq5B,SACvD,EAET,IAAKxuC,EAAO,OAAO,EACnB,GAAIkwB,EAAO/a,WAAW8b,QAAS,OAAO,EACtC,IAAItoB,EAASunB,EAAOC,IAQpB,MAP8C,cAA1CD,EAAOhwB,OAAOiV,WAAWs5B,eAC3B9lC,EAASzK,EAAEgyB,EAAOhwB,OAAOiV,WAAWs5B,eAEtC9lC,EAAOrJ,GAAG,aAAc4wB,EAAO/a,WAAWk5B,kBAC1C1lC,EAAOrJ,GAAG,aAAc4wB,EAAO/a,WAAWo5B,kBAC1C5lC,EAAOrJ,GAAGU,EAAOkwB,EAAO/a,WAAWq5B,QACnCte,EAAO/a,WAAW8b,SAAU,GACrB,CACT,EACA,OAAA8e,GACE,MAAM7f,EAAS3wB,KACTS,EAAQ8sC,EAAW9sC,QACzB,GAAIkwB,EAAOhwB,OAAOyxB,QAEhB,OADAzB,EAAOoJ,UAAU7U,iBAAiBzkB,EAAOkwB,EAAO/a,WAAWq5B,SACpD,EAET,IAAKxuC,EAAO,OAAO,EACnB,IAAKkwB,EAAO/a,WAAW8b,QAAS,OAAO,EACvC,IAAItoB,EAASunB,EAAOC,IAMpB,MAL8C,cAA1CD,EAAOhwB,OAAOiV,WAAWs5B,eAC3B9lC,EAASzK,EAAEgyB,EAAOhwB,OAAOiV,WAAWs5B,eAEtC9lC,EAAOyO,IAAIpX,EAAOkwB,EAAO/a,WAAWq5B,QACpCte,EAAO/a,WAAW8b,SAAU,GACrB,CACT,GA2vGF,MAAMtB,EAAa,CACjBwb,EACAC,EACAM,EACAE,EACAiB,QAIwB,IAAfpD,EAAO7Z,MAChB6Z,EAAO7Z,IAAM6Z,EAAOziB,MAAM4I,IAC1B6Z,EAAO5Z,cAAgB4Z,EAAOziB,MAAM6I,eAGtC4Z,EAAO7Z,IAAID,GCzjPX5xB,OAAOC,UAAUC,OAAM,SAASC,GAE/B,MAAM8xC,EAAY,KACjB,IAAIC,EAAS/xC,EAAE,6BACf4I,EAAQ5I,EAAE,4BAEVA,EAAE+E,KAAK6D,GAAO,WACb5I,EAAEqB,MAAMkE,IAAI,GAAGysC,OAChB,IAEAhyC,EAAE+E,KAAKgtC,GAAQ,WACd/xC,EAAEqB,MAAMjB,KAAK,MAAOJ,EAAEqB,MAAMjB,KAAK,OAClC,GAAE,EAMH,GAFeJ,EAAE,8BAA8BkB,OAEjC,EAAE,CAEf,IAAI+wC,EAAY,GAEhBjyC,EAAE,kBAAkB+E,MAAK,WACxB,IAAI2D,EAAK1I,EAAEqB,MAAMwB,KAAK,YACtBovC,EAAUxpC,KAAKC,EAChB,IAEA1I,EAAE,gBAAgB+E,MAAK,WAEtB/E,EAAEqB,MAAMhB,KAAK,sBAAsBG,YAAY,gBAE7B,IAAI,IAAJ,CAAWR,EAAEqB,MAAMhB,KAAK,sBAAuB,CAChEo2B,OAAQ,YACRJ,gBAAgB,EAChBzB,cAAe,OACf2O,gBAAgB,EAChBzJ,MAAM,EACN7uB,MAAO,IACPinC,gBAAiB,CAChBC,OAAQ,EACRC,QAAS,IACTC,MAAO,IACPC,SAAU,EACVC,cAAc,EACdC,MAAO,GAERtL,WAAY,CACXC,OAAQnnC,EAAEqB,MAAMhB,KAAK,uBACrB+mC,OAAQpnC,EAAEqB,MAAMhB,KAAK,wBAEtBwd,WAAY,CACX/Q,GAAI9M,EAAEqB,MAAMhB,KAAK,kBACjBoyC,WAAW,EACXC,WAAW,EACXpwC,KAAM,WAEPglC,YAAa,CACZ,IAAK,CACJ/D,gBAAgB,EAChB2O,gBAAiB,CAChBE,QAAS,MAGX,IAAK,CACJ7O,gBAAgB,EAChB2O,gBAAiB,CAChBE,QAAS,MAGX,IAAK,CACJ7O,gBAAgB,EAChB2O,gBAAiB,CAChBE,QAAS,MAGX,IAAK,CACJ7O,gBAAgB,EAChB2O,gBAAiB,CAChBE,QAAS,MAGX,KAAM,CACLF,gBAAiB,CAChBE,QAAS,SAODhxC,GAAG,eAAe,WAE7BpB,EAAE,sBAAsBQ,YAAY,eAEpCR,EAAE,oDAAoD+E,MAAK,WAE1D,IACI6G,EADW5L,EAAEqB,MAAMjB,KAAK,OACAsD,QAAQ,aAAc,cAClD1D,EAAEqB,MAAMjB,KAAK,MAAOwL,EACrB,IAEA5L,EAAE,kDAAkD+E,MAAK,WAExD,IACI6G,EADW5L,EAAEqB,MAAMjB,KAAK,OACAsD,QAAQ,aAAc,cAClD1D,EAAEqB,MAAMjB,KAAK,MAAOwL,EACrB,IAEAkmC,IAEAtuC,OAAOgF,IAAMhF,OAAOgF,KAAO,GAC3BypC,EAAU7rB,SAAQusB,IACjBnqC,IAAIC,KAAK,CACRC,GAAIiqC,EACJhqC,QAAS,SAASC,GACjBA,EAAMopC,OACP,GACC,GAEJ,GACD,GACD,CAEuC,IAAjChyC,EAAE,oBAAoBkB,QACrBlB,EAAE,oBAAoB+E,MAAK,WAEvB,IAAI,IAAJ,CAAW/E,EAAEqB,MAAMhB,KAAK,qBAAqB,CACzCu0B,cAAe,OACfV,aAAc,IACd4F,MAAM,EACNzD,gBAAgB,EAChB6Q,WAAY,CACRC,OAAQnnC,EAAEqB,MAAMhB,KAAK,uBACrB+mC,OAAQpnC,EAAEqB,MAAMhB,KAAK,yBAGjC,IAGqC,IAAtCL,EAAE,yBAAyBkB,QAC1BlB,EAAE,yBAAyB+E,MAAK,WAE5B/E,EAAEqB,MAAMhB,KAAK,uBAAuBuyC,OAAM,WACtC5yC,EAAE,yBAAyB+E,MAAK,WAC5B/E,EAAEqB,MAAMhB,KAAK,sBAAsBia,IAAI,aAAc,gBAChDA,IAAI,YAAa,sBACjBA,IAAI,UAAW,MACxB,GACJ,IAAG,WACCta,EAAE,yBAAyB+E,MAAK,WAC5B/E,EAAE,sBAAsBsa,IAAI,YAAa,iBAC7C,GACJ,IAEAta,EAAEqB,MAAMhB,KAAK,uBAAuBe,GAAG,SAAS,WAC5CpB,EAAE,yBAAyB+E,MAAK,WAC5B/E,EAAE,sBAAsBsa,IAAI,YAAa,kBACpCA,IAAI,aAAc,eAC3B,GACJ,IAEAta,EAAEqB,MAAMhB,KAAK,uBAAuBuyC,OAAM,WACtC5yC,EAAE,yBAAyB+E,MAAK,WAC5B/E,EAAE,sBAAsBsa,IAAI,aAAc,gBACrCA,IAAI,YAAa,qBACjBA,IAAI,UAAW,MACxB,GACJ,IAAG,WACCta,EAAE,yBAAyB+E,MAAK,WAC5B/E,EAAE,sBAAsBsa,IAAI,YAAa,iBAC7C,GACJ,IAEAta,EAAEqB,MAAMhB,KAAK,uBAAuBe,GAAG,SAAS,WAC5CpB,EAAE,yBAAyB+E,MAAK,WAC5B/E,EAAE,sBAAsBsa,IAAI,YAAa,kBACpCA,IAAI,aAAc,eAC3B,GACJ,IAEGta,EAAEqB,MAAMhB,KAAK,uBAAuBa,OAAS,IAC5ClB,EAAEqB,MAAMhB,KAAK,uBAAuBia,IAAI,UAAW,QACnDta,EAAEqB,MAAMhB,KAAK,uBAAuBia,IAAI,UAAW,QAEnD,IAAI,IAAJ,CAAWta,EAAEqB,MAAMhB,KAAK,qBAAsB,CAC1Cu0B,cAAe,EACfV,aAAc,EACd4F,MAAM,EACNoN,WAAY,CACRC,OAAQnnC,EAAEqB,MAAMhB,KAAK,uBACrB+mC,OAAQpnC,EAAEqB,MAAMhB,KAAK,0BAIrC,IAGgC,IAAjCL,EAAE,oBAAoBkB,QACrBlB,EAAE,oBAAoB+E,MAAK,WAEvB,IAAI,IAAJ,CAAW/E,EAAEqB,MAAMhB,KAAK,qBAAsB,CAC1Cu0B,cAAe,EACfV,aAAc,EACd4F,MAAM,EACN2K,WAAY,EACZ6C,YAAa,CACT,IAAK,CACD1S,cAAe,GAEnB,IAAK,CACDA,cAAe,IAGvBxzB,GAAI,CACAwpC,KAAM,KACF5qC,EAAEqB,MAAMZ,SAAS,kDAAkD,EAEvEoyC,YAAa,KACL7yC,EAAEqB,MAAMhB,KAAK,uBAAuBqB,SAAS,0BAC7C1B,EAAEqB,MAAMb,YAAY,mDAEpBR,EAAEqB,MAAMZ,SAAS,mDAGjBT,EAAEqB,MAAMhB,KAAK,uBAAuBqB,SAAS,0BAC7C1B,EAAEqB,MAAMb,YAAY,kDAEpBR,EAAEqB,MAAMZ,SAAS,iDACpB,GAGTymC,WAAY,CACRC,OAAQnnC,EAAEqB,MAAMhB,KAAK,uBACrB+mC,OAAQpnC,EAAEqB,MAAMhB,KAAK,yBAGjC,IAG0C,IAA9CL,EAAE,iCAAiCkB,QACrClB,EAAE,iCAAiC+E,MAAK,WAEvC,IAAI,IAAJ,CAAW/E,EAAEqB,MAAMhB,KAAK,qBAAsB,CAC5Cwd,WAAY,CACX/Q,GAAI9M,EAAEqB,MAAMhB,KAAK,kBACjBoyC,WAAW,EACXC,WAAW,EACXpwC,KAAM,WAEP4kC,WAAY,CACXC,OAAQnnC,EAAEqB,MAAMhB,KAAK,uBACrB+mC,OAAQpnC,EAAEqB,MAAMhB,KAAK,wBAEtBinC,YAAa,CACZ,IAAK,CACJ1S,cAAe,EACfV,aAAc,IAEf,IAAK,CACJU,cAAe,EACfV,aAAc,IAEf,KAAM,CACLU,cAAe,EACfV,aAAc,MAKnB,IAG2C,IAAtCl0B,EAAE,yBAAyBkB,QAC1BlB,EAAE,yBAAyB+E,MAAK,WAElC/E,EAAEqB,MAAMG,QAAQ,sBAAsBE,SAAS,mBAEjD,IAAI,IAAJ,CAAW1B,EAAEqB,MAAMhB,KAAK,qBAAsB,CAC9B6zB,aAAc,GAC7B4F,MAAM,EACSwN,YAAa,CACT,IAAK,CACD1S,cAAe,EACf2O,gBAAgB,GAEpB,IAAK,CACD3O,cAAe,EACf2O,gBAAgB,GAEpB,IAAK,CACD3O,cAAe,EACf2O,gBAAgB,GAEpB,KAAM,CACF3O,cAAe,EACf2O,gBAAgB,IAGxBniC,GAAI,CACAwpC,KAAM,KACF5qC,EAAEqB,MAAMZ,SAAS,kDAAkD,EAEvEoyC,YAAa,KACL7yC,EAAEqB,MAAMhB,KAAK,uBAAuBqB,SAAS,0BAC7C1B,EAAEqB,MAAMb,YAAY,mDAEpBR,EAAEqB,MAAMZ,SAAS,mDAGjBT,EAAEqB,MAAMhB,KAAK,uBAAuBqB,SAAS,0BAC7C1B,EAAEqB,MAAMb,YAAY,kDAEpBR,EAAEqB,MAAMZ,SAAS,iDACpB,GAGTymC,WAAY,CACRC,OAAQnnC,EAAEqB,MAAMhB,KAAK,uBACrB+mC,OAAQpnC,EAAEqB,MAAMhB,KAAK,0BAMzC,IAAI,IAAJ,CAAWL,EAAEqB,MAAMhB,KAAK,qBAAsB,CAC9Bu0B,cAAe,EACfV,aAAc,EACd4F,MAAM,EACNwN,YAAa,CACT,IAAK,CACtB1S,cAAe,GAEE,IAAK,CACtBA,cAAe,GAEE,KAAM,CACFA,cAAe,MAGvBxzB,GAAI,CACAwpC,KAAM,KACF5qC,EAAEqB,MAAMZ,SAAS,kDAAkD,EAEvEoyC,YAAa,KACL7yC,EAAEqB,MAAMhB,KAAK,uBAAuBqB,SAAS,0BAC7C1B,EAAEqB,MAAMb,YAAY,mDAEpBR,EAAEqB,MAAMZ,SAAS,mDAGjBT,EAAEqB,MAAMhB,KAAK,uBAAuBqB,SAAS,0BAC7C1B,EAAEqB,MAAMb,YAAY,kDAEpBR,EAAEqB,MAAMZ,SAAS,iDACpB,GAGTymC,WAAY,CACRC,OAAQnnC,EAAEqB,MAAMhB,KAAK,uBACrB+mC,OAAQpnC,EAAEqB,MAAMhB,KAAK,yBAIrC,IAG+B,IAAhCL,EAAE,mBAAmBkB,QACpBlB,EAAE,mBAAmB+E,MAAK,WAElB/E,EAAEqB,MAAMqJ,QAAQ,wBAAwBxJ,OAEpD,IAAI,IAAJ,CAAWlB,EAAEqB,MAAMhB,KAAK,qBAAsB,CAC9Bu0B,cAAe,EACfV,aAAc,GACd4F,MAAM,EACNoN,WAAY,CACRC,OAAQnnC,EAAEqB,MAAMhB,KAAK,uBACrB+mC,OAAQpnC,EAAEqB,MAAMhB,KAAK,0BAMzC,IAAI,IAAJ,CAAWL,EAAEqB,MAAMhB,KAAK,qBAAsB,CAC9Bu0B,cAAe,EACfV,aAAc,GACd4F,MAAM,EACNwN,YAAa,CACT,IAAK,CACD1S,cAAe,IAGvBsS,WAAY,CACRC,OAAQnnC,EAAEqB,MAAMhB,KAAK,uBACrB+mC,OAAQpnC,EAAEqB,MAAMhB,KAAK,yBAIrC,IAkBPL,EAAEwD,QAAQpC,GAAG,UAAU,WAbhBpB,EAAE,yHAAyH+E,MAAK,SAASsI,EAAEP,GACvIjB,YAAW,WACP,IAGIinC,GAHchtC,SAAS9F,EAAE8M,GAAIzM,KAAK,mDAAmDyJ,eACvEhE,SAAS9F,EAAE8M,GAAIzM,KAAK,kDAAkDia,IAAI,eAAgB,KAEtE,EADpBxU,SAAS9F,EAAE8M,GAAIzM,KAAK,uBAAuBgM,UACZ,EAEjDrM,EAAE8M,GAAIzM,KAAK,4CAA4Cia,IAAI,aAAc,QACzEta,EAAE8M,GAAIzM,KAAK,4CAA4Cia,IAAI,MAAOw4B,EAAc,KACpF,GAAG,IACP,GAKP,IAEA9yC,EAAEwD,QAAQkB,QAAQ,SAEnB,G,iFC5ZA,MAAMquC,EAAiB,gBA2BvB,SAASC,EAAsBvpB,GAC7B,IAAIwpB,GAAS,EAYb,OAVA,IAAE5xC,MAAM6xC,IAAIC,EAAKJ,gBAAgB,KAC/BE,GAAS,KAGXpnC,YAAW,KACJonC,GACHE,EAAKC,qBAAqB/xC,KAC5B,GACCooB,GAEIpoB,IACT,CAWA,MAAM8xC,EAAO,CACXJ,eAAgB,kBAEhB,MAAAM,CAAOC,GACL,GAEEA,MAzDU,IAyDG9gC,KAAKE,gBACX5S,SAAS8mB,eAAe0sB,IAEjC,OAAOA,CACT,EAEA,sBAAAC,CAAuB39B,GACrB,IAAI5K,EAAW4K,EAAQhC,aAAa,eAEpC,IAAK5I,GAAyB,MAAbA,EAAkB,CACjC,MAAMwoC,EAAW59B,EAAQhC,aAAa,QACtC5I,EAAWwoC,GAAyB,MAAbA,EAAmBA,EAASvyC,OAAS,EAC9D,CAEA,IACE,OAAOnB,SAAS6mB,cAAc3b,GAAYA,EAAW,IACvD,CAAE,MAAO4E,GACP,OAAO,IACT,CACF,EAEA,gCAAA6jC,CAAiC79B,GAC/B,IAAKA,EACH,OAAO,EAIT,IAAI+T,EAAqB,IAAE/T,GAAS0E,IAAI,uBACpCo5B,EAAkB,IAAE99B,GAAS0E,IAAI,oBAErC,MAAMq5B,EAA0BloB,WAAW9B,GACrCiqB,EAAuBnoB,WAAWioB,GAGxC,OAAKC,GAA4BC,GAKjCjqB,EAAqBA,EAAmB7W,MAAM,KAAK,GACnD4gC,EAAkBA,EAAgB5gC,MAAM,KAAK,GAhGjB,KAkGpB2Y,WAAW9B,GAAsB8B,WAAWioB,KAP3C,CAQX,EAEAG,OAAOj+B,GACEA,EAAQ8V,aAGjB,oBAAA0nB,CAAqBx9B,GACnB,IAAEA,GAASlR,QAAQquC,EACrB,EAEAe,sBAAqB,IACZC,QAAQhB,GAGjBiB,UAAUpzC,IACAA,EAAI,IAAMA,GAAK+nB,SAGzB,eAAAsrB,CAAgBC,EAAepjC,EAAQqjC,GACrC,IAAK,MAAMC,KAAYD,EACrB,GAAIlyC,OAAOiO,UAAUC,eAAe0B,KAAKsiC,EAAaC,GAAW,CAC/D,MAAMC,EAAgBF,EAAYC,GAC5BzzC,EAAQmQ,EAAOsjC,GACfE,EAAY3zC,GAASwyC,EAAKa,UAAUrzC,GACxC,UAvHJC,OADUA,EAwHaD,GAtHlB,GAAGC,IAGL,CAAC,EAAE+R,SAASd,KAAKjR,GAAKO,MAAM,eAAe,GAAG4R,cAqH/C,IAAK,IAAIwhC,OAAOF,GAAe7tC,KAAK8tC,GAClC,MAAM,IAAIpjC,MACR,GAAGgjC,EAAc13B,0BACN43B,qBAA4BE,yBACjBD,MAE5B,CAhIN,IAAgBzzC,CAkId,EAEA,cAAA4zC,CAAe5+B,GACb,IAAK9V,SAAS6d,gBAAgB82B,aAC5B,OAAO,KAIT,GAAmC,mBAAxB7+B,EAAQ8+B,YAA4B,CAC7C,MAAMC,EAAO/+B,EAAQ8+B,cACrB,OAAOC,aAAgBC,WAAaD,EAAO,IAC7C,CAEA,OAAI/+B,aAAmBg/B,WACdh/B,EAIJA,EAAQsX,WAINimB,EAAKqB,eAAe5+B,EAAQsX,YAH1B,IAIX,EAEA,eAAA2nB,GACE,QAAiB,IAAN,IACT,MAAM,IAAIC,UAAU,kGAGtB,MAAMC,EAAU,OAAK/xB,OAAOlQ,MAAM,KAAK,GAAGA,MAAM,KAOhD,GAAIiiC,EAAQ,GALI,GAKYA,EAAQ,GAJnB,GAFA,IAMoCA,EAAQ,IAJ5C,IAI+DA,EAAQ,IAAmBA,EAAQ,GAHlG,GAGmHA,EAAQ,IAF3H,EAGf,MAAM,IAAI7jC,MAAM,8EAEpB,GAGFiiC,EAAK0B,kBAtIH,OAAKG,qBAAuBhC,EAC5B,UAAQiC,QAAQ9B,EAAKJ,gBA/Bd,CACLmC,SAAUnC,EACVoC,aAAcpC,EACd,MAAAzC,CAAOxuC,GACL,GAAI,IAAEA,EAAM2I,QAAQxF,GAAG5D,MACrB,OAAOS,EAAMszC,UAAUzqB,QAAQvZ,MAAM/P,KAAM6Q,UAI/C,GA8JJ,UCpLMmjC,EAAO,QAEPC,EAAW,WACXC,EAAY,IAAID,IAEhBE,EAAqB,OAAKH,GAM1BI,EAAkB,aAClBC,EAAkB,OAClBC,EAAkB,OAClBC,EAAoB,eAEpBC,EAAa,OAAON,IACpBO,EAAuB,gBAAgBP,IACvCQ,EAAe,SAASR,IACxBS,EAAa,OAAOT,IACpBU,EAAc,QAAQV,IACtBW,EAAgB,UAAUX,IAC1BY,EAAe,SAASZ,IACxBa,EAAsB,gBAAgBb,IACtCc,EAAwB,kBAAkBd,IAC1Ce,EAAwB,kBAAkBf,IAC1CgB,EAA0B,oBAAoBhB,IAC9CiB,EAAuB,QAAQjB,aAM/BkB,EAAyB,oDACzBC,EAA0B,cAE1BC,EAAU,CACdC,UAAU,EACVC,UAAU,EACV/uC,OAAO,EACP3H,MAAM,GAGF22C,EAAc,CAClBF,SAAU,mBACVC,SAAU,UACV/uC,MAAO,UACP3H,KAAM,WAOR,MAAM42C,EACJ,WAAAnlC,CAAYgE,EAAS9E,GACnBzP,KAAK21C,QAAU31C,KAAK41C,WAAWnmC,GAC/BzP,KAAK61C,SAAWthC,EAChBvU,KAAK81C,QAAUvhC,EAAQ+Q,cA7BH,iBA8BpBtlB,KAAK+1C,UAAY,KACjB/1C,KAAKg2C,UAAW,EAChBh2C,KAAKi2C,oBAAqB,EAC1Bj2C,KAAKk2C,sBAAuB,EAC5Bl2C,KAAKm2C,kBAAmB,EACxBn2C,KAAKo2C,gBAAkB,CACzB,CAGA,kBAAWC,GACT,MApEY,OAqEd,CAEA,kBAAWf,GACT,OAAOA,CACT,CAGA,MAAAtuC,CAAOsvC,GACL,OAAOt2C,KAAKg2C,SAAWh2C,KAAKO,OAASP,KAAKlB,KAAKw3C,EACjD,CAEA,IAAAx3C,CAAKw3C,GACH,GAAIt2C,KAAKg2C,UAAYh2C,KAAKm2C,iBACxB,OAGF,MAAMI,EAAY,UAAQ5B,EAAY,CACpC2B,kBAGF,IAAEt2C,KAAK61C,UAAUxyC,QAAQkzC,GAErBA,EAAU39B,uBAId5Y,KAAKg2C,UAAW,EAEZ,IAAEh2C,KAAK61C,UAAUx1C,SAASg0C,KAC5Br0C,KAAKm2C,kBAAmB,GAG1Bn2C,KAAKw2C,kBACLx2C,KAAKy2C,gBAELz2C,KAAK02C,gBAEL12C,KAAK22C,kBACL32C,KAAK42C,kBAEL,IAAE52C,KAAK61C,UAAU91C,GACfg1C,EA/EwB,0BAiFxBt0C,GAAST,KAAKO,KAAKE,KAGrB,IAAET,KAAK81C,SAAS/1C,GAAGm1C,GAAyB,KAC1C,IAAEl1C,KAAK61C,UAAUhE,IAAIoD,GAAuBx0C,IACtC,IAAEA,EAAM2I,QAAQxF,GAAG5D,KAAK61C,YAC1B71C,KAAKk2C,sBAAuB,EAC9B,GACD,IAGHl2C,KAAK62C,eAAc,IAAM72C,KAAK82C,aAAaR,KAC7C,CAEA,IAAA/1C,CAAKE,GAKH,GAJIA,GACFA,EAAMC,kBAGHV,KAAKg2C,UAAYh2C,KAAKm2C,iBACzB,OAGF,MAAMY,EAAY,UAAQvC,GAI1B,GAFA,IAAEx0C,KAAK61C,UAAUxyC,QAAQ0zC,IAEpB/2C,KAAKg2C,UAAYe,EAAUn+B,qBAC9B,OAGF5Y,KAAKg2C,UAAW,EAChB,MAAM5tC,EAAa,IAAEpI,KAAK61C,UAAUx1C,SAASg0C,GAgB7C,GAdIjsC,IACFpI,KAAKm2C,kBAAmB,GAG1Bn2C,KAAK22C,kBACL32C,KAAK42C,kBAEL,IAAEn4C,UAAUoZ,IAAIg9B,GAEhB,IAAE70C,KAAK61C,UAAU12C,YAAYm1C,GAE7B,IAAEt0C,KAAK61C,UAAUh+B,IAAIk9B,GACrB,IAAE/0C,KAAK81C,SAASj+B,IAAIq9B,GAEhB9sC,EAAY,CACd,MAAMkgB,EAAqB,EAAK8pB,iCAAiCpyC,KAAK61C,UAEtE,IAAE71C,KAAK61C,UACJhE,IAAI,EAAKH,gBAAgBjxC,GAAST,KAAKg3C,WAAWv2C,KAClDkzC,qBAAqBrrB,EAC1B,MACEtoB,KAAKg3C,YAET,CAEA,OAAAC,GACE,CAAC90C,OAAQnC,KAAK61C,SAAU71C,KAAK81C,SAC1B/wB,SAAQmyB,GAAe,IAAEA,GAAar/B,IAAIq8B,KAO7C,IAAEz1C,UAAUoZ,IAAIg9B,GAEhB,eAAa70C,KAAK61C,SAAU5B,GAE5Bj0C,KAAK21C,QAAU,KACf31C,KAAK61C,SAAW,KAChB71C,KAAK81C,QAAU,KACf91C,KAAK+1C,UAAY,KACjB/1C,KAAKg2C,SAAW,KAChBh2C,KAAKi2C,mBAAqB,KAC1Bj2C,KAAKk2C,qBAAuB,KAC5Bl2C,KAAKm2C,iBAAmB,KACxBn2C,KAAKo2C,gBAAkB,IACzB,CAEA,YAAAe,GACEn3C,KAAK02C,eACP,CAGA,UAAAd,CAAWnmC,GAMT,OALAA,EAAS,IACJ6lC,KACA7lC,GAEL,EAAKmjC,gBAAgBoB,EAAMvkC,EAAQgmC,GAC5BhmC,CACT,CAEA,0BAAA2nC,GACE,MAAMC,EAAqB,UAAQ5C,GAGnC,GADA,IAAEz0C,KAAK61C,UAAUxyC,QAAQg0C,GACrBA,EAAmBz+B,qBACrB,OAGF,MAAM0+B,EAAqBt3C,KAAK61C,SAAS7jC,aAAevT,SAAS6d,gBAAgBwU,aAE5EwmB,IACHt3C,KAAK61C,SAASjkC,MAAME,UAAY,UAGlC9R,KAAK61C,SAASvsC,UAAUmL,IAAI8/B,GAE5B,MAAMgD,EAA0B,EAAKnF,iCAAiCpyC,KAAK81C,SAC3E,IAAE91C,KAAK61C,UAAUh+B,IAAI,EAAK65B,gBAE1B,IAAE1xC,KAAK61C,UAAUhE,IAAI,EAAKH,gBAAgB,KACxC1xC,KAAK61C,SAASvsC,UAAU7D,OAAO8uC,GAC1B+C,GACH,IAAEt3C,KAAK61C,UAAUhE,IAAI,EAAKH,gBAAgB,KACxC1xC,KAAK61C,SAASjkC,MAAME,UAAY,MAE/B6hC,qBAAqB3zC,KAAK61C,SAAU0B,EACzC,IAEC5D,qBAAqB4D,GACxBv3C,KAAK61C,SAASpvC,OAChB,CAEA,YAAAqwC,CAAaR,GACX,MAAMluC,EAAa,IAAEpI,KAAK61C,UAAUx1C,SAASg0C,GACvCmD,EAAYx3C,KAAK81C,QAAU91C,KAAK81C,QAAQxwB,cAtNtB,eAsN2D,KAE9EtlB,KAAK61C,SAAShqB,YACf7rB,KAAK61C,SAAShqB,WAAWvE,WAAamwB,KAAKC,cAE7Cj5C,SAASmZ,KAAK0M,YAAYtkB,KAAK61C,UAGjC71C,KAAK61C,SAASjkC,MAAMqE,QAAU,QAC9BjW,KAAK61C,SAASjjC,gBAAgB,eAC9B5S,KAAK61C,SAASrjC,aAAa,cAAc,GACzCxS,KAAK61C,SAASrjC,aAAa,OAAQ,UAE/B,IAAExS,KAAK81C,SAASz1C,SAzPM,4BAyP6Bm3C,EACrDA,EAAU3uC,UAAY,EAEtB7I,KAAK61C,SAAShtC,UAAY,EAGxBT,GACF,EAAKoqC,OAAOxyC,KAAK61C,UAGnB,IAAE71C,KAAK61C,UAAUz2C,SAASk1C,GAEtBt0C,KAAK21C,QAAQlvC,OACfzG,KAAK23C,gBAGP,MAAMC,EAAa,UAAQhD,EAAa,CACtC0B,kBAGIuB,EAAqB,KACrB73C,KAAK21C,QAAQlvC,OACfzG,KAAK61C,SAASpvC,QAGhBzG,KAAKm2C,kBAAmB,EACxB,IAAEn2C,KAAK61C,UAAUxyC,QAAQu0C,EAAU,EAGrC,GAAIxvC,EAAY,CACd,MAAMkgB,EAAqB,EAAK8pB,iCAAiCpyC,KAAK81C,SAEtE,IAAE91C,KAAK81C,SACJjE,IAAI,EAAKH,eAAgBmG,GACzBlE,qBAAqBrrB,EAC1B,MACEuvB,GAEJ,CAEA,aAAAF,GACE,IAAEl5C,UACCoZ,IAAIg9B,GACJ90C,GAAG80C,GAAep0C,IACbhC,WAAagC,EAAM2I,QACnBpJ,KAAK61C,WAAap1C,EAAM2I,QACsB,IAA9C,IAAEpJ,KAAK61C,UAAUlqC,IAAIlL,EAAM2I,QAAQvJ,QACrCG,KAAK61C,SAASpvC,OAChB,GAEN,CAEA,eAAAkwC,GACM32C,KAAKg2C,SACP,IAAEh2C,KAAK61C,UAAU91C,GAAGi1C,GAAuBv0C,IACrCT,KAAK21C,QAAQH,UAlTF,KAkTc/0C,EAAM8W,OACjC9W,EAAMC,iBACNV,KAAKO,QACKP,KAAK21C,QAAQH,UArTV,KAqTsB/0C,EAAM8W,OACzCvX,KAAKo3C,4BACP,IAEQp3C,KAAKg2C,UACf,IAAEh2C,KAAK61C,UAAUh+B,IAAIm9B,EAEzB,CAEA,eAAA4B,GACM52C,KAAKg2C,SACP,IAAE7zC,QAAQpC,GAAG+0C,GAAcr0C,GAAST,KAAKm3C,aAAa12C,KAEtD,IAAE0B,QAAQ0V,IAAIi9B,EAElB,CAEA,UAAAkC,GACEh3C,KAAK61C,SAASjkC,MAAMqE,QAAU,OAC9BjW,KAAK61C,SAASrjC,aAAa,eAAe,GAC1CxS,KAAK61C,SAASjjC,gBAAgB,cAC9B5S,KAAK61C,SAASjjC,gBAAgB,QAC9B5S,KAAKm2C,kBAAmB,EACxBn2C,KAAK62C,eAAc,KACjB,IAAEp4C,SAASmZ,MAAMzY,YAAYi1C,GAC7Bp0C,KAAK83C,oBACL93C,KAAK+3C,kBACL,IAAE/3C,KAAK61C,UAAUxyC,QAAQqxC,EAAY,GAEzC,CAEA,eAAAsD,GACMh4C,KAAK+1C,YACP,IAAE/1C,KAAK+1C,WAAWtwC,SAClBzF,KAAK+1C,UAAY,KAErB,CAEA,aAAAc,CAAc3mC,GACZ,MAAMtH,EAAU,IAAE5I,KAAK61C,UAAUx1C,SAASg0C,GACxCA,EAAkB,GAEpB,GAAIr0C,KAAKg2C,UAAYh2C,KAAK21C,QAAQJ,SAAU,CAiC1C,GAhCAv1C,KAAK+1C,UAAYt3C,SAASqW,cAAc,OACxC9U,KAAK+1C,UAAUniC,UA7VO,iBA+VlBhL,GACF5I,KAAK+1C,UAAUzsC,UAAUmL,IAAI7L,GAG/B,IAAE5I,KAAK+1C,WAAWl4B,SAASpf,SAASmZ,MAEpC,IAAE5X,KAAK61C,UAAU91C,GAAGg1C,GAAqBt0C,IACnCT,KAAKk2C,qBACPl2C,KAAKk2C,sBAAuB,EAI1Bz1C,EAAM2I,SAAW3I,EAAMw3C,gBAIG,WAA1Bj4C,KAAK21C,QAAQJ,SACfv1C,KAAKo3C,6BAELp3C,KAAKO,OACP,IAGEqI,GACF,EAAK4pC,OAAOxyC,KAAK+1C,WAGnB,IAAE/1C,KAAK+1C,WAAW32C,SAASk1C,IAEtBpkC,EACH,OAGF,IAAKtH,EAEH,YADAsH,IAIF,MAAMgoC,EAA6B,EAAK9F,iCAAiCpyC,KAAK+1C,WAE9E,IAAE/1C,KAAK+1C,WACJlE,IAAI,EAAKH,eAAgBxhC,GACzByjC,qBAAqBuE,EAC1B,MAAO,IAAKl4C,KAAKg2C,UAAYh2C,KAAK+1C,UAAW,CAC3C,IAAE/1C,KAAK+1C,WAAW52C,YAAYm1C,GAE9B,MAAM6D,EAAiB,KACrBn4C,KAAKg4C,kBACD9nC,GACFA,GACF,EAGF,GAAI,IAAElQ,KAAK61C,UAAUx1C,SAASg0C,GAAkB,CAC9C,MAAM6D,EAA6B,EAAK9F,iCAAiCpyC,KAAK+1C,WAE9E,IAAE/1C,KAAK+1C,WACJlE,IAAI,EAAKH,eAAgByG,GACzBxE,qBAAqBuE,EAC1B,MACEC,GAEJ,MAAWjoC,GACTA,GAEJ,CAOA,aAAAwmC,GACE,MAAMY,EAAqBt3C,KAAK61C,SAAS7jC,aAAevT,SAAS6d,gBAAgBwU,cAE5E9wB,KAAKi2C,oBAAsBqB,IAC9Bt3C,KAAK61C,SAASjkC,MAAM8iB,YAAc,GAAG10B,KAAKo2C,qBAGxCp2C,KAAKi2C,qBAAuBqB,IAC9Bt3C,KAAK61C,SAASjkC,MAAM+iB,aAAe,GAAG30B,KAAKo2C,oBAE/C,CAEA,iBAAA0B,GACE93C,KAAK61C,SAASjkC,MAAM8iB,YAAc,GAClC10B,KAAK61C,SAASjkC,MAAM+iB,aAAe,EACrC,CAEA,eAAA6hB,GACE,MAAM4B,EAAO35C,SAASmZ,KAAK2S,wBAC3BvqB,KAAKi2C,mBAAqB9kC,KAAKknC,MAAMD,EAAK56B,KAAO46B,EAAKE,OAASn2C,OAAO8P,WACtEjS,KAAKo2C,gBAAkBp2C,KAAKu4C,oBAC9B,CAEA,aAAA9B,GACE,GAAIz2C,KAAKi2C,mBAAoB,CAG3B,MAAMuC,EAAe,GAAG1xC,MAAM0J,KAAK/R,SAASgb,iBAAiB27B,IACvDqD,EAAgB,GAAG3xC,MAAM0J,KAAK/R,SAASgb,iBAAiB47B,IAG9D,IAAEmD,GAAc90C,MAAK,CAAC8H,EAAO+I,KAC3B,MAAMmkC,EAAgBnkC,EAAQ3C,MAAM+iB,aAC9BgkB,EAAoB,IAAEpkC,GAAS0E,IAAI,iBACzC,IAAE1E,GACC/S,KAAK,gBAAiBk3C,GACtBz/B,IAAI,gBAAiB,GAAGmR,WAAWuuB,GAAqB34C,KAAKo2C,oBAAmB,IAIrF,IAAEqC,GAAe/0C,MAAK,CAAC8H,EAAO+I,KAC5B,MAAMqkC,EAAerkC,EAAQ3C,MAAMuhB,YAC7B0lB,EAAmB,IAAEtkC,GAAS0E,IAAI,gBACxC,IAAE1E,GACC/S,KAAK,eAAgBo3C,GACrB3/B,IAAI,eAAmBmR,WAAWyuB,GAAoB74C,KAAKo2C,gBAAvC,KAA0D,IAInF,MAAMsC,EAAgBj6C,SAASmZ,KAAKhG,MAAM+iB,aACpCgkB,EAAoB,IAAEl6C,SAASmZ,MAAMqB,IAAI,iBAC/C,IAAExa,SAASmZ,MACRpW,KAAK,gBAAiBk3C,GACtBz/B,IAAI,gBAAiB,GAAGmR,WAAWuuB,GAAqB34C,KAAKo2C,oBAClE,CAEA,IAAE33C,SAASmZ,MAAMxY,SAASg1C,EAC5B,CAEA,eAAA2D,GAEE,MAAMS,EAAe,GAAG1xC,MAAM0J,KAAK/R,SAASgb,iBAAiB27B,IAC7D,IAAEoD,GAAc90C,MAAK,CAAC8H,EAAO+I,KAC3B,MAAMukC,EAAU,IAAEvkC,GAAS/S,KAAK,iBAChC,IAAE+S,GAASsP,WAAW,iBACtBtP,EAAQ3C,MAAM+iB,aAAemkB,GAAoB,MAInD,MAAMC,EAAW,GAAGjyC,MAAM0J,KAAK/R,SAASgb,iBAAiB,GAAG47B,MAC5D,IAAE0D,GAAUr1C,MAAK,CAAC8H,EAAO+I,KACvB,MAAMykC,EAAS,IAAEzkC,GAAS/S,KAAK,qBACT,IAAXw3C,GACT,IAAEzkC,GAAS0E,IAAI,eAAgB+/B,GAAQn1B,WAAW,eACpD,IAIF,MAAMi1B,EAAU,IAAEr6C,SAASmZ,MAAMpW,KAAK,iBACtC,IAAE/C,SAASmZ,MAAMiM,WAAW,iBAC5BplB,SAASmZ,KAAKhG,MAAM+iB,aAAemkB,GAAoB,EACzD,CAEA,kBAAAP,GACE,MAAMU,EAAYx6C,SAASqW,cAAc,OACzCmkC,EAAUrlC,UA7fwB,0BA8flCnV,SAASmZ,KAAK0M,YAAY20B,GAC1B,MAAMC,EAAiBD,EAAU1uB,wBAAwBthB,MAAQgwC,EAAUpoB,YAE3E,OADApyB,SAASmZ,KAAK4M,YAAYy0B,GACnBC,CACT,CAGA,uBAAOC,CAAiB1pC,EAAQ6mC,GAC9B,OAAOt2C,KAAK0D,MAAK,WACf,IAAIlC,EAAO,IAAExB,MAAMwB,KAAKyyC,GACxB,MAAM0B,EAAU,IACXL,KACA,IAAEt1C,MAAMwB,UACW,iBAAXiO,GAAuBA,EAASA,EAAS,CAAC,GAQvD,GALKjO,IACHA,EAAO,IAAIk0C,EAAM11C,KAAM21C,GACvB,IAAE31C,MAAMwB,KAAKyyC,EAAUzyC,IAGH,iBAAXiO,EAAqB,CAC9B,QAA4B,IAAjBjO,EAAKiO,GACd,MAAM,IAAIgkC,UAAU,oBAAoBhkC,MAG1CjO,EAAKiO,GAAQ6mC,EACf,MAAWX,EAAQ72C,MACjB0C,EAAK1C,KAAKw3C,EAEd,GACF,EAOF,IAAE73C,UAAUsB,GAAGo1C,EA9gBc,yBA8gB8B,SAAU10C,GACnE,IAAI2I,EACJ,MAAMO,EAAW,EAAKuoC,uBAAuBlyC,MAEzC2J,IACFP,EAAS3K,SAAS6mB,cAAc3b,IAGlC,MAAM8F,EAAS,IAAErG,GAAQ5H,KAAKyyC,GAC5B,SAAW,IACN,IAAE7qC,GAAQ5H,UACV,IAAExB,MAAMwB,QAGM,MAAjBxB,KAAK2Z,SAAoC,SAAjB3Z,KAAK2Z,SAC/BlZ,EAAMC,iBAGR,MAAM04C,EAAU,IAAEhwC,GAAQyoC,IAAI8C,GAAY4B,IACpCA,EAAU39B,sBAKdwgC,EAAQvH,IAAI6C,GAAc,KACpB,IAAE10C,MAAM4D,GAAG,aACb5D,KAAKyG,OACP,GACD,IAGHivC,EAAMyD,iBAAiB3oC,KAAK,IAAEpH,GAASqG,EAAQzP,KACjD,IAMA,OAAKg0C,GAAQ0B,EAAMyD,iBACnB,OAAKnF,GAAMqF,YAAc3D,EACzB,OAAK1B,GAAMsF,WAAa,KACtB,OAAKtF,GAAQG,EACNuB,EAAMyD,kBAGf,S,oBCxmBA;;;;;;;;;;IAUA,SAAYI,EAAQC,GAEnB,aAE6D,iBAAnBjqC,EAAOD,QAShDC,EAAOD,QAAUiqC,EAAO96C,SACvB+6C,EAASD,GAAQ,GACjB,SAAUlqC,GACT,IAAMA,EAAE5Q,SACP,MAAM,IAAIoR,MAAO,4CAElB,OAAO2pC,EAASnqC,EACjB,EAEDmqC,EAASD,EAIT,CA1BF,CA0BuB,oBAAXp3C,OAAyBA,OAASnC,MAAM,SAAUmC,EAAQs3C,GAMtE,aAEA,IAAIzyB,EAAM,GAEN0yB,EAAW94C,OAAO+4C,eAElB7yC,EAAQkgB,EAAIlgB,MAEZ8yC,EAAO5yB,EAAI4yB,KAAO,SAAUC,GAC/B,OAAO7yB,EAAI4yB,KAAKppC,KAAMqpC,EACvB,EAAI,SAAUA,GACb,OAAO7yB,EAAIhU,OAAOjD,MAAO,GAAI8pC,EAC9B,EAGIzyC,EAAO4f,EAAI5f,KAEX2L,EAAUiU,EAAIjU,QAEd+mC,EAAa,CAAC,EAEdxoC,EAAWwoC,EAAWxoC,SAEtByoC,EAASD,EAAWhrC,eAEpBkrC,EAAaD,EAAOzoC,SAEpB2oC,EAAuBD,EAAWxpC,KAAM5P,QAExCkrC,EAAU,CAAC,EAEXoO,EAAa,SAAqB36C,GASpC,MAAsB,mBAARA,GAA8C,iBAAjBA,EAAI+nB,UAC1B,mBAAb/nB,EAAIyJ,IACb,EAGGmxC,EAAW,SAAmB56C,GAChC,OAAc,MAAPA,GAAeA,IAAQA,EAAI4C,MACnC,EAGG1D,EAAW0D,EAAO1D,SAIjB27C,EAA4B,CAC/Bn5C,MAAM,EACN+L,KAAK,EACLqtC,OAAO,EACPC,UAAU,GAGX,SAASC,EAASn2C,EAAMo2C,EAAMx1B,GAG7B,IAAIhZ,EAAG/L,EACNw6C,GAHDz1B,EAAMA,GAAOvmB,GAGCqW,cAAe,UAG7B,GADA2lC,EAAOx7C,KAAOmF,EACTo2C,EACJ,IAAMxuC,KAAKouC,GAYVn6C,EAAMu6C,EAAMxuC,IAAOwuC,EAAKjoC,cAAgBioC,EAAKjoC,aAAcvG,KAE1DyuC,EAAOjoC,aAAcxG,EAAG/L,GAI3B+kB,EAAI01B,KAAKp2B,YAAam2B,GAAS5uB,WAAWrH,YAAai2B,EACxD,CAGD,SAASE,EAAQp7C,GAChB,OAAY,MAAPA,EACGA,EAAM,GAIQ,iBAARA,GAAmC,mBAARA,EACxCu6C,EAAYxoC,EAASd,KAAMjR,KAAW,gBAC/BA,CACT,CAOA,IAAIm0C,EAAU,QAEbkH,EAAc,SAGdp8C,EAAS,SAAUmL,EAAUud,GAI5B,OAAO,IAAI1oB,EAAOuD,GAAGwnC,KAAM5/B,EAAUud,EACtC,EAkYD,SAAS2zB,EAAat7C,GAMrB,IAAIM,IAAWN,GAAO,WAAYA,GAAOA,EAAIM,OAC5CoB,EAAO05C,EAAQp7C,GAEhB,OAAK26C,EAAY36C,KAAS46C,EAAU56C,KAIpB,UAAT0B,GAA+B,IAAXpB,GACR,iBAAXA,GAAuBA,EAAS,GAAOA,EAAS,KAAON,EAChE,CAGA,SAAS8lB,EAAUy1B,EAAMn3C,GAExB,OAAOm3C,EAAKz1B,UAAYy1B,EAAKz1B,SAAS3T,gBAAkB/N,EAAK+N,aAE9D,CAtZAlT,EAAOuD,GAAKvD,EAAOqQ,UAAY,CAG9B8S,OAAQ+xB,EAERnjC,YAAa/R,EAGbqB,OAAQ,EAERk7C,QAAS,WACR,OAAOj0C,EAAM0J,KAAMxQ,KACpB,EAIAkE,IAAK,SAAU82C,GAGd,OAAY,MAAPA,EACGl0C,EAAM0J,KAAMxQ,MAIbg7C,EAAM,EAAIh7C,KAAMg7C,EAAMh7C,KAAKH,QAAWG,KAAMg7C,EACpD,EAIAC,UAAW,SAAUC,GAGpB,IAAIC,EAAM38C,EAAO48C,MAAOp7C,KAAKuQ,cAAe2qC,GAM5C,OAHAC,EAAIE,WAAar7C,KAGVm7C,CACR,EAGAz3C,KAAM,SAAUwM,GACf,OAAO1R,EAAOkF,KAAM1D,KAAMkQ,EAC3B,EAEAoE,IAAK,SAAUpE,GACd,OAAOlQ,KAAKi7C,UAAWz8C,EAAO8V,IAAKtU,MAAM,SAAU86C,EAAM9uC,GACxD,OAAOkE,EAASM,KAAMsqC,EAAM9uC,EAAG8uC,EAChC,IACD,EAEAh0C,MAAO,WACN,OAAO9G,KAAKi7C,UAAWn0C,EAAMiJ,MAAO/P,KAAM6Q,WAC3C,EAEAqD,MAAO,WACN,OAAOlU,KAAK2V,GAAI,EACjB,EAEAnJ,KAAM,WACL,OAAOxM,KAAK2V,IAAK,EAClB,EAEA2lC,KAAM,WACL,OAAOt7C,KAAKi7C,UAAWz8C,EAAO+8C,KAAMv7C,MAAM,SAAUw7C,EAAOxvC,GAC1D,OAASA,EAAI,GAAM,CACpB,IACD,EAEAyvC,IAAK,WACJ,OAAOz7C,KAAKi7C,UAAWz8C,EAAO+8C,KAAMv7C,MAAM,SAAUw7C,EAAOxvC,GAC1D,OAAOA,EAAI,CACZ,IACD,EAEA2J,GAAI,SAAU3J,GACb,IAAI3G,EAAMrF,KAAKH,OACd+nB,GAAK5b,GAAMA,EAAI,EAAI3G,EAAM,GAC1B,OAAOrF,KAAKi7C,UAAWrzB,GAAK,GAAKA,EAAIviB,EAAM,CAAErF,KAAM4nB,IAAQ,GAC5D,EAEA1oB,IAAK,WACJ,OAAOc,KAAKq7C,YAAcr7C,KAAKuQ,aAChC,EAIAnJ,KAAMA,EACN2M,KAAMiT,EAAIjT,KACV/D,OAAQgX,EAAIhX,QAGbxR,EAAOuG,OAASvG,EAAOuD,GAAGgD,OAAS,WAClC,IAAIoO,EAASxP,EAAMqJ,EAAK0uC,EAAMC,EAAaC,EAC1CxyC,EAASyH,UAAW,IAAO,CAAC,EAC5B7E,EAAI,EACJnM,EAASgR,UAAUhR,OACnBg8C,GAAO,EAsBR,IAnBuB,kBAAXzyC,IACXyyC,EAAOzyC,EAGPA,EAASyH,UAAW7E,IAAO,CAAC,EAC5BA,KAIsB,iBAAX5C,GAAwB8wC,EAAY9wC,KAC/CA,EAAS,CAAC,GAIN4C,IAAMnM,IACVuJ,EAASpJ,KACTgM,KAGOA,EAAInM,EAAQmM,IAGnB,GAAqC,OAA9BmH,EAAUtC,UAAW7E,IAG3B,IAAMrI,KAAQwP,EACbuoC,EAAOvoC,EAASxP,GAIF,cAATA,GAAwByF,IAAWsyC,IAKnCG,GAAQH,IAAUl9C,EAAO4iB,cAAes6B,KAC1CC,EAAchrC,MAAMiK,QAAS8gC,MAC/B1uC,EAAM5D,EAAQzF,GAIbi4C,EADID,IAAgBhrC,MAAMiK,QAAS5N,GAC3B,GACI2uC,GAAgBn9C,EAAO4iB,cAAepU,GAG1CA,EAFA,CAAC,EAIV2uC,GAAc,EAGdvyC,EAAQzF,GAASnF,EAAOuG,OAAQ82C,EAAMD,EAAOF,SAGzB1yB,IAAT0yB,IACXtyC,EAAQzF,GAAS+3C,IAOrB,OAAOtyC,CACR,EAEA5K,EAAOuG,OAAQ,CAGd+2C,QAAS,UAAapI,EAAUviC,KAAKE,UAAWhP,QAAS,MAAO,IAGhE05C,SAAS,EAET95C,MAAO,SAAU+5C,GAChB,MAAM,IAAInsC,MAAOmsC,EAClB,EAEAC,KAAM,WAAY,EAElB76B,cAAe,SAAU7hB,GACxB,IAAIgxB,EAAO2rB,EAIX,SAAM38C,GAAgC,oBAAzB+R,EAASd,KAAMjR,QAI5BgxB,EAAQmpB,EAAUn6C,KASK,mBADvB28C,EAAOnC,EAAOvpC,KAAM+f,EAAO,gBAAmBA,EAAMhgB,cACfypC,EAAWxpC,KAAM0rC,KAAWjC,EAClE,EAEA94B,cAAe,SAAU5hB,GACxB,IAAIoE,EAEJ,IAAMA,KAAQpE,EACb,OAAO,EAER,OAAO,CACR,EAIA48C,WAAY,SAAU/3C,EAAM+O,EAAS6R,GACpCu1B,EAASn2C,EAAM,CAAEi2C,MAAOlnC,GAAWA,EAAQknC,OAASr1B,EACrD,EAEAthB,KAAM,SAAUnE,EAAK2Q,GACpB,IAAIrQ,EAAQmM,EAAI,EAEhB,GAAK6uC,EAAat7C,GAEjB,IADAM,EAASN,EAAIM,OACLmM,EAAInM,IACqC,IAA3CqQ,EAASM,KAAMjR,EAAKyM,GAAKA,EAAGzM,EAAKyM,IADnBA,UAMpB,IAAMA,KAAKzM,EACV,IAAgD,IAA3C2Q,EAASM,KAAMjR,EAAKyM,GAAKA,EAAGzM,EAAKyM,IACrC,MAKH,OAAOzM,CACR,EAIAN,KAAM,SAAU67C,GACf,IAAIN,EACHW,EAAM,GACNnvC,EAAI,EACJsb,EAAWwzB,EAAKxzB,SAEjB,IAAMA,EAGL,KAAUkzB,EAAOM,EAAM9uC,MAGtBmvC,GAAO38C,EAAOS,KAAMu7C,GAGtB,OAAkB,IAAblzB,GAA+B,KAAbA,EACfwzB,EAAK/gC,YAEK,IAAbuN,EACGwzB,EAAKx+B,gBAAgBvC,YAEX,IAAbuN,GAA+B,IAAbA,EACfwzB,EAAKsB,UAKNjB,CACR,EAGAkB,UAAW,SAAUr1B,EAAKlT,GACzB,IAAIqnC,EAAMrnC,GAAW,GAarB,OAXY,MAAPkT,IACC6zB,EAAaj6C,OAAQomB,IACzBxoB,EAAO48C,MAAOD,EACE,iBAARn0B,EACN,CAAEA,GAAQA,GAGZ5f,EAAKoJ,KAAM2qC,EAAKn0B,IAIXm0B,CACR,EAEAmB,QAAS,SAAUxB,EAAM9zB,EAAKhb,GAC7B,OAAc,MAAPgb,GAAe,EAAIjU,EAAQvC,KAAMwW,EAAK8zB,EAAM9uC,EACpD,EAEAuwC,SAAU,SAAUzB,GACnB,IAAI0B,EAAY1B,GAAQA,EAAK2B,aAC5BC,EAAU5B,IAAUA,EAAK6B,eAAiB7B,GAAOx+B,gBAIlD,OAAQs+B,EAAYz1C,KAAMq3C,GAAaE,GAAWA,EAAQr3B,UAAY,OACvE,EAIA+1B,MAAO,SAAUlnC,EAAO0oC,GAKvB,IAJA,IAAIv3C,GAAOu3C,EAAO/8C,OACjB+nB,EAAI,EACJ5b,EAAIkI,EAAMrU,OAEH+nB,EAAIviB,EAAKuiB,IAChB1T,EAAOlI,KAAQ4wC,EAAQh1B,GAKxB,OAFA1T,EAAMrU,OAASmM,EAERkI,CACR,EAEAqnC,KAAM,SAAUL,EAAOhrC,EAAUq/B,GAShC,IARA,IACCt6B,EAAU,GACVjJ,EAAI,EACJnM,EAASq7C,EAAMr7C,OACfg9C,GAAkBtN,EAIXvjC,EAAInM,EAAQmM,KACAkE,EAAUgrC,EAAOlvC,GAAKA,KAChB6wC,GACxB5nC,EAAQ7N,KAAM8zC,EAAOlvC,IAIvB,OAAOiJ,CACR,EAGAX,IAAK,SAAU4mC,EAAOhrC,EAAU4sC,GAC/B,IAAIj9C,EAAQP,EACX0M,EAAI,EACJmvC,EAAM,GAGP,GAAKN,EAAaK,GAEjB,IADAr7C,EAASq7C,EAAMr7C,OACPmM,EAAInM,EAAQmM,IAGL,OAFd1M,EAAQ4Q,EAAUgrC,EAAOlvC,GAAKA,EAAG8wC,KAGhC3B,EAAI/zC,KAAM9H,QAMZ,IAAM0M,KAAKkvC,EAGI,OAFd57C,EAAQ4Q,EAAUgrC,EAAOlvC,GAAKA,EAAG8wC,KAGhC3B,EAAI/zC,KAAM9H,GAMb,OAAOs6C,EAAMuB,EACd,EAGA4B,KAAM,EAINjR,QAASA,IAGa,mBAAXkR,SACXx+C,EAAOuD,GAAIi7C,OAAOC,UAAaj2B,EAAKg2B,OAAOC,WAI5Cz+C,EAAOkF,KAAM,uEAAuE+N,MAAO,MAC1F,SAAUyrC,EAAIv5C,GACbm2C,EAAY,WAAan2C,EAAO,KAAQA,EAAK+N,aAC9C,IAyBD,IAAIyyB,EAAMnd,EAAImd,IAGVpwB,EAAOiT,EAAIjT,KAGX/D,EAASgX,EAAIhX,OAGbmtC,EAAa,sBAGbC,EAAW,IAAIlK,OAClB,IAAMiK,EAAa,8BAAgCA,EAAa,KAChE,KAOD3+C,EAAO+K,SAAW,SAAU+E,EAAGsB,GAC9B,IAAIytC,EAAMztC,GAAKA,EAAEic,WAEjB,OAAOvd,IAAM+uC,MAAWA,GAAwB,IAAjBA,EAAI/1B,YAIlChZ,EAAE/E,SACD+E,EAAE/E,SAAU8zC,GACZ/uC,EAAEgvC,yBAA8D,GAAnChvC,EAAEgvC,wBAAyBD,IAE3D,EAOA,IAAIE,EAAa,+CAEjB,SAASC,EAAYC,EAAIC,GACxB,OAAKA,EAGQ,OAAPD,EACG,IAIDA,EAAG32C,MAAO,GAAI,GAAM,KAAO22C,EAAGE,WAAYF,EAAG59C,OAAS,GAAIyR,SAAU,IAAO,IAI5E,KAAOmsC,CACf,CAEAj/C,EAAOo/C,eAAiB,SAAUC,GACjC,OAASA,EAAM,IAAKx7C,QAASk7C,EAAYC,EAC1C,EAKA,IAAIM,EAAer/C,EAClBs/C,EAAa32C,GAEd,WAEA,IAAI4E,EACHgyC,EACAC,EACAC,EACAC,EAIA1/C,EACA6d,EACA8hC,EACAC,EACAppC,EAPA7N,EAAO22C,EAUPjC,EAAUt9C,EAAOs9C,QACjBwC,EAAU,EACVC,EAAO,EACPC,EAAaC,KACbC,EAAaD,KACbE,EAAgBF,KAChBG,EAAyBH,KACzBI,EAAY,SAAUvwC,EAAGsB,GAIxB,OAHKtB,IAAMsB,IACVuuC,GAAe,GAET,CACR,EAEAW,EAAW,6HAMXC,EAAa,0BAA4B5B,EACxC,0CAGDz7B,EAAa,MAAQy7B,EAAa,KAAO4B,EAAa,OAAS5B,EAG9D,gBAAkBA,EAGlB,2DAA6D4B,EAAa,OAC1E5B,EAAa,OAEd6B,EAAU,KAAOD,EAAP,wFAOoBr9B,EAPpB,eAcVu9B,EAAc,IAAI/L,OAAQiK,EAAa,IAAK,KAE5C+B,EAAS,IAAIhM,OAAQ,IAAMiK,EAAa,KAAOA,EAAa,KAC5DgC,EAAqB,IAAIjM,OAAQ,IAAMiK,EAAa,WAAaA,EAAa,IAC7EA,EAAa,KACdiC,EAAW,IAAIlM,OAAQiK,EAAa,MAEpCkC,EAAU,IAAInM,OAAQ8L,GACtBM,EAAc,IAAIpM,OAAQ,IAAM6L,EAAa,KAE7CQ,EAAY,CACXC,GAAI,IAAItM,OAAQ,MAAQ6L,EAAa,KACrCU,MAAO,IAAIvM,OAAQ,QAAU6L,EAAa,KAC1CW,IAAK,IAAIxM,OAAQ,KAAO6L,EAAa,SACrCY,KAAM,IAAIzM,OAAQ,IAAMxxB,GACxBk+B,OAAQ,IAAI1M,OAAQ,IAAM8L,GAC1Ba,MAAO,IAAI3M,OACV,yDACCiK,EAAa,+BAAiCA,EAAa,cAC3DA,EAAa,aAAeA,EAAa,SAAU,KACrD2C,KAAM,IAAI5M,OAAQ,OAAS4L,EAAW,KAAM,KAI5CiB,aAAc,IAAI7M,OAAQ,IAAMiK,EAC/B,mDAAqDA,EACrD,mBAAqBA,EAAa,mBAAoB,MAGxD6C,EAAU,sCACVC,EAAU,SAGVC,EAAa,mCAEbC,EAAW,OAIXC,EAAY,IAAIlN,OAAQ,uBAAyBiK,EAChD,uBAAwB,KACzBkD,EAAY,SAAUC,EAAQC,GAC7B,IAAIC,EAAO,KAAOF,EAAOx5C,MAAO,GAAM,MAEtC,OAAKy5C,IAUEC,EAAO,EACbpuC,OAAOquC,aAAcD,EAAO,OAC5BpuC,OAAOquC,aAAcD,GAAQ,GAAK,MAAe,KAAPA,EAAe,OAC3D,EAMAE,EAAgB,WACfC,IACD,EAEAC,EAAqBC,IACpB,SAAU/F,GACT,OAAyB,IAAlBA,EAAKnmC,UAAqB0Q,EAAUy1B,EAAM,WAClD,GACA,CAAEr5B,IAAK,aAAc4J,KAAM,WAa7B,IACCjkB,EAAK2I,MACFiX,EAAMlgB,EAAM0J,KAAMstC,EAAap4B,YACjCo4B,EAAap4B,YAMdsB,EAAK82B,EAAap4B,WAAW7lB,QAASynB,QACvC,CAAE,MAAQ3Z,GACTvG,EAAO,CACN2I,MAAO,SAAU3G,EAAQ+d,GACxB42B,EAAWhuC,MAAO3G,EAAQtC,EAAM0J,KAAM2W,GACvC,EACA3W,KAAM,SAAUpH,GACf20C,EAAWhuC,MAAO3G,EAAQtC,EAAM0J,KAAMK,UAAW,GAClD,EAEF,CAEA,SAAS7R,EAAM2K,EAAUud,EAASpT,EAASgtC,GAC1C,IAAI3yC,EAAGnC,EAAG8uC,EAAMiG,EAAKjhD,EAAOkhD,EAAQC,EACnCC,EAAah6B,GAAWA,EAAQy1B,cAGhCr1B,EAAWJ,EAAUA,EAAQI,SAAW,EAKzC,GAHAxT,EAAUA,GAAW,GAGI,iBAAbnK,IAA0BA,GACxB,IAAb2d,GAA+B,IAAbA,GAA+B,KAAbA,EAEpC,OAAOxT,EAIR,IAAMgtC,IACLH,GAAaz5B,GACbA,EAAUA,GAAWzoB,EAEhB2/C,GAAiB,CAIrB,GAAkB,KAAb92B,IAAqBxnB,EAAQogD,EAAWiB,KAAMx3C,IAGlD,GAAOwE,EAAIrO,EAAO,IAGjB,GAAkB,IAAbwnB,EAAiB,CACrB,KAAOwzB,EAAO5zB,EAAQ3B,eAAgBpX,IASrC,OAAO2F,EALP,GAAKgnC,EAAKzzC,KAAO8G,EAEhB,OADA/G,EAAKoJ,KAAMsD,EAASgnC,GACbhnC,CAOV,MAIC,GAAKotC,IAAgBpG,EAAOoG,EAAW37B,eAAgBpX,KACtDnP,EAAKuK,SAAU2d,EAAS4zB,IACxBA,EAAKzzC,KAAO8G,EAGZ,OADA/G,EAAKoJ,KAAMsD,EAASgnC,GACbhnC,MAKH,IAAKhU,EAAO,GAElB,OADAsH,EAAK2I,MAAO+D,EAASoT,EAAQvB,qBAAsBhc,IAC5CmK,EAGD,IAAO3F,EAAIrO,EAAO,KAASonB,EAAQk6B,uBAEzC,OADAh6C,EAAK2I,MAAO+D,EAASoT,EAAQk6B,uBAAwBjzC,IAC9C2F,CACR,CAID,KAAM8qC,EAAwBj1C,EAAW,MACrC00C,GAAcA,EAAUl5C,KAAMwE,IAAe,CAYhD,GAVAs3C,EAAct3C,EACdu3C,EAAah6B,EASK,IAAbI,IACF83B,EAASj6C,KAAMwE,IAAcw1C,EAAmBh6C,KAAMwE,IAAe,CAyBvE,KAtBAu3C,EAAaf,EAASh7C,KAAMwE,IAAc03C,GAAan6B,EAAQ2E,aAC9D3E,IAQkBA,GAAY4kB,EAAQwV,SAG/BP,EAAM75B,EAAQ3U,aAAc,OAClCwuC,EAAMviD,EAAOo/C,eAAgBmD,GAE7B75B,EAAQ1U,aAAc,KAAQuuC,EAAMjF,IAMtC9vC,GADAg1C,EAASO,GAAU53C,IACR9J,OACHmM,KACPg1C,EAAQh1C,IAAQ+0C,EAAM,IAAMA,EAAM,UAAa,IAC9CS,GAAYR,EAAQh1C,IAEtBi1C,EAAcD,EAAO/tC,KAAM,IAC5B,CAEA,IAIC,OAHA7L,EAAK2I,MAAO+D,EACXotC,EAAWznC,iBAAkBwnC,IAEvBntC,CACR,CAAE,MAAQ2tC,GACT7C,EAAwBj1C,GAAU,EACnC,CAAE,QACIo3C,IAAQjF,GACZ50B,EAAQtU,gBAAiB,KAE3B,CACD,CACD,CAID,OAAO8G,GAAQ/P,EAAStH,QAAS+6C,EAAU,MAAQl2B,EAASpT,EAASgtC,EACtE,CAQA,SAASrC,KACR,IAAI35B,EAAO,GAaX,OAXA,SAAS48B,EAAOx4C,EAAK5J,GASpB,OALKwlB,EAAK1d,KAAM8B,EAAM,KAAQ80C,EAAK2D,oBAG3BD,EAAO58B,EAAK+qB,SAEX6R,EAAOx4C,EAAM,KAAQ5J,CAC/B,CAED,CAMA,SAASsiD,GAAc7/C,GAEtB,OADAA,EAAI+5C,IAAY,EACT/5C,CACR,CAMA,SAAS8/C,GAAQ9/C,GAChB,IAAI0J,EAAKhN,EAASqW,cAAe,YAEjC,IACC,QAAS/S,EAAI0J,EACd,CAAE,MAAQkC,GACT,OAAO,CACR,CAAE,QAGIlC,EAAGogB,YACPpgB,EAAGogB,WAAWrH,YAAa/Y,GAI5BA,EAAK,IACN,CACD,CAMA,SAASq2C,GAAmB7gD,GAC3B,OAAO,SAAU65C,GAChB,OAAOz1B,EAAUy1B,EAAM,UAAaA,EAAK75C,OAASA,CACnD,CACD,CAMA,SAAS8gD,GAAoB9gD,GAC5B,OAAO,SAAU65C,GAChB,OAASz1B,EAAUy1B,EAAM,UAAaz1B,EAAUy1B,EAAM,YACrDA,EAAK75C,OAASA,CAChB,CACD,CAMA,SAAS+gD,GAAsBrtC,GAG9B,OAAO,SAAUmmC,GAKhB,MAAK,SAAUA,EASTA,EAAKjvB,aAAgC,IAAlBivB,EAAKnmC,SAGvB,UAAWmmC,EACV,UAAWA,EAAKjvB,WACbivB,EAAKjvB,WAAWlX,WAAaA,EAE7BmmC,EAAKnmC,WAAaA,EAMpBmmC,EAAK/iC,aAAepD,GAG1BmmC,EAAK/iC,cAAgBpD,GACpBisC,EAAoB9F,KAAWnmC,EAG3BmmC,EAAKnmC,WAAaA,EAKd,UAAWmmC,GACfA,EAAKnmC,WAAaA,CAK3B,CACD,CAMA,SAASstC,GAAwBlgD,GAChC,OAAO6/C,IAAc,SAAUM,GAE9B,OADAA,GAAYA,EACLN,IAAc,SAAUd,EAAM7rC,GAMpC,IALA,IAAI2S,EACHu6B,EAAepgD,EAAI,GAAI++C,EAAKjhD,OAAQqiD,GACpCl2C,EAAIm2C,EAAatiD,OAGVmM,KACF80C,EAAQl5B,EAAIu6B,EAAcn2C,MAC9B80C,EAAMl5B,KAAS3S,EAAS2S,GAAMk5B,EAAMl5B,IAGvC,GACD,GACD,CAOA,SAASy5B,GAAan6B,GACrB,OAAOA,QAAmD,IAAjCA,EAAQvB,sBAAwCuB,CAC1E,CAOA,SAASy5B,GAAanG,GACrB,IAAI4H,EACHp9B,EAAMw1B,EAAOA,EAAKmC,eAAiBnC,EAAOsD,EAO3C,OAAK94B,GAAOvmB,GAA6B,IAAjBumB,EAAIsC,UAAmBtC,EAAI1I,iBAMnDA,GADA7d,EAAWumB,GACgB1I,gBAC3B8hC,GAAkB5/C,EAAO+9C,SAAU99C,GAInCwW,EAAUqH,EAAgBrH,SACzBqH,EAAgBnH,uBAChBmH,EAAgBpH,kBAOZoH,EAAgBpH,mBAMpB4oC,GAAgBr/C,IACd2jD,EAAY3jD,EAAS4jD,cAAiBD,EAAUz5C,MAAQy5C,GAG1DA,EAAUl9B,iBAAkB,SAAUw7B,GAOvC5U,EAAQwW,QAAUT,IAAQ,SAAUp2C,GAEnC,OADA6Q,EAAgBgI,YAAa7Y,GAAKpE,GAAK7I,EAAOs9C,SACtCr9C,EAAS8jD,oBACf9jD,EAAS8jD,kBAAmB/jD,EAAOs9C,SAAUj8C,MAChD,IAKAisC,EAAQ0W,kBAAoBX,IAAQ,SAAUp2C,GAC7C,OAAOwJ,EAAQzE,KAAM/E,EAAI,IAC1B,IAIAqgC,EAAQwV,MAAQO,IAAQ,WACvB,OAAOpjD,EAASgb,iBAAkB,SACnC,IAWAqyB,EAAQ2W,OAASZ,IAAQ,WACxB,IAEC,OADApjD,EAAS6mB,cAAe,oBACjB,CACR,CAAE,MAAQ3X,GACT,OAAO,CACR,CACD,IAGKm+B,EAAQwW,SACZtE,EAAKlrC,OAAO0sC,GAAK,SAAUn4C,GAC1B,IAAIq7C,EAASr7C,EAAGhF,QAAS+9C,EAAWC,GACpC,OAAO,SAAUvF,GAChB,OAAOA,EAAKvoC,aAAc,QAAWmwC,CACtC,CACD,EACA1E,EAAKh/C,KAAKwgD,GAAK,SAAUn4C,EAAI6f,GAC5B,QAAuC,IAA3BA,EAAQ3B,gBAAkC64B,EAAiB,CACtE,IAAItD,EAAO5zB,EAAQ3B,eAAgBle,GACnC,OAAOyzC,EAAO,CAAEA,GAAS,EAC1B,CACD,IAEAkD,EAAKlrC,OAAO0sC,GAAM,SAAUn4C,GAC3B,IAAIq7C,EAASr7C,EAAGhF,QAAS+9C,EAAWC,GACpC,OAAO,SAAUvF,GAChB,IAAIN,OAAwC,IAA1BM,EAAK6H,kBACtB7H,EAAK6H,iBAAkB,MACxB,OAAOnI,GAAQA,EAAKl7C,QAAUojD,CAC/B,CACD,EAIA1E,EAAKh/C,KAAKwgD,GAAK,SAAUn4C,EAAI6f,GAC5B,QAAuC,IAA3BA,EAAQ3B,gBAAkC64B,EAAiB,CACtE,IAAI5D,EAAMxuC,EAAGkvC,EACZJ,EAAO5zB,EAAQ3B,eAAgBle,GAEhC,GAAKyzC,EAAO,CAIX,IADAN,EAAOM,EAAK6H,iBAAkB,QACjBnI,EAAKl7C,QAAU+H,EAC3B,MAAO,CAAEyzC,GAMV,IAFAI,EAAQh0B,EAAQq7B,kBAAmBl7C,GACnC2E,EAAI,EACM8uC,EAAOI,EAAOlvC,MAEvB,IADAwuC,EAAOM,EAAK6H,iBAAkB,QACjBnI,EAAKl7C,QAAU+H,EAC3B,MAAO,CAAEyzC,EAGZ,CAEA,MAAO,EACR,CACD,GAIDkD,EAAKh/C,KAAK0gD,IAAM,SAAUkD,EAAK17B,GAC9B,YAA6C,IAAjCA,EAAQvB,qBACZuB,EAAQvB,qBAAsBi9B,GAI9B17B,EAAQzN,iBAAkBmpC,EAEnC,EAGA5E,EAAKh/C,KAAKygD,MAAQ,SAAU7rC,EAAWsT,GACtC,QAA+C,IAAnCA,EAAQk6B,wBAA0ChD,EAC7D,OAAOl3B,EAAQk6B,uBAAwBxtC,EAEzC,EAOAyqC,EAAY,GAIZwD,IAAQ,SAAUp2C,GAEjB,IAAIjJ,EAEJ8Z,EAAgBgI,YAAa7Y,GAAKyK,UACjC,UAAY4lC,EAAZ,iDACiBA,EADjB,oEAMKrwC,EAAGgO,iBAAkB,cAAe5Z,QACzCw+C,EAAUj3C,KAAM,MAAQ+1C,EAAa,aAAe2B,EAAW,KAI1DrzC,EAAGgO,iBAAkB,QAAUqiC,EAAU,MAAOj8C,QACrDw+C,EAAUj3C,KAAM,MAMXqE,EAAGgO,iBAAkB,KAAOqiC,EAAU,MAAOj8C,QAClDw+C,EAAUj3C,KAAM,YAOXqE,EAAGgO,iBAAkB,YAAa5Z,QACvCw+C,EAAUj3C,KAAM,aAKjB5E,EAAQ/D,EAASqW,cAAe,UAC1BtC,aAAc,OAAQ,UAC5B/G,EAAG6Y,YAAa9hB,GAAQgQ,aAAc,OAAQ,KAQ9C8J,EAAgBgI,YAAa7Y,GAAKkJ,UAAW,EACM,IAA9ClJ,EAAGgO,iBAAkB,aAAc5Z,QACvCw+C,EAAUj3C,KAAM,WAAY,cAQ7B5E,EAAQ/D,EAASqW,cAAe,UAC1BtC,aAAc,OAAQ,IAC5B/G,EAAG6Y,YAAa9hB,GACViJ,EAAGgO,iBAAkB,aAAc5Z,QACxCw+C,EAAUj3C,KAAM,MAAQ+1C,EAAa,QAAUA,EAAa,KAC3DA,EAAa,eAEhB,IAEMrR,EAAQ2W,QAQbpE,EAAUj3C,KAAM,QAGjBi3C,EAAYA,EAAUx+C,QAAU,IAAIqzC,OAAQmL,EAAUprC,KAAM,MAM5D4rC,EAAY,SAAUvwC,EAAGsB,GAGxB,GAAKtB,IAAMsB,EAEV,OADAuuC,GAAe,EACR,EAIR,IAAI0E,GAAWv0C,EAAEgvC,yBAA2B1tC,EAAE0tC,wBAC9C,OAAKuF,IAgBU,GAPfA,GAAYv0C,EAAEquC,eAAiBruC,KAASsB,EAAE+sC,eAAiB/sC,GAC1DtB,EAAEgvC,wBAAyB1tC,GAG3B,KAIGk8B,EAAQgX,cAAgBlzC,EAAE0tC,wBAAyBhvC,KAAQu0C,EAOzDv0C,IAAM7P,GAAY6P,EAAEquC,eAAiBmB,GACzC9+C,EAAKuK,SAAUu0C,EAAcxvC,IACrB,EAOJsB,IAAMnR,GAAYmR,EAAE+sC,eAAiBmB,GACzC9+C,EAAKuK,SAAUu0C,EAAcluC,GACtB,EAIDsuC,EACJnrC,EAAQvC,KAAM0tC,EAAW5vC,GAAMyE,EAAQvC,KAAM0tC,EAAWtuC,GAC1D,EAGe,EAAVizC,GAAe,EAAI,EAC3B,EAEOpkD,GAvSCA,CAwST,CAopBA,IAAMuN,KAlpBNhN,EAAKiW,QAAU,SAAU8tC,EAAMhK,GAC9B,OAAO/5C,EAAM+jD,EAAM,KAAM,KAAMhK,EAChC,EAEA/5C,EAAKgkD,gBAAkB,SAAUlI,EAAMiI,GAGtC,GAFApC,GAAa7F,GAERsD,IACHQ,EAAwBmE,EAAO,QAC7B1E,IAAcA,EAAUl5C,KAAM49C,IAEjC,IACC,IAAI5H,EAAMlmC,EAAQzE,KAAMsqC,EAAMiI,GAG9B,GAAK5H,GAAOrP,EAAQ0W,mBAIlB1H,EAAKr8C,UAAuC,KAA3Bq8C,EAAKr8C,SAAS6oB,SAChC,OAAO6zB,CAET,CAAE,MAAQxtC,GACTixC,EAAwBmE,GAAM,EAC/B,CAGD,OAAO/jD,EAAM+jD,EAAMtkD,EAAU,KAAM,CAAEq8C,IAASj7C,OAAS,CACxD,EAEAb,EAAKuK,SAAW,SAAU2d,EAAS4zB,GAUlC,OAHO5zB,EAAQy1B,eAAiBz1B,IAAazoB,GAC5CkiD,GAAaz5B,GAEP1oB,EAAO+K,SAAU2d,EAAS4zB,EAClC,EAGA97C,EAAKD,KAAO,SAAU+7C,EAAMn3C,IAOpBm3C,EAAK6B,eAAiB7B,IAAUr8C,GACtCkiD,GAAa7F,GAGd,IAAI/4C,EAAKi8C,EAAKiF,WAAYt/C,EAAK+N,eAG9BzR,EAAM8B,GAAMg4C,EAAOvpC,KAAMwtC,EAAKiF,WAAYt/C,EAAK+N,eAC9C3P,EAAI+4C,EAAMn3C,GAAOy6C,QACjBp1B,EAEF,YAAaA,IAAR/oB,EACGA,EAGD66C,EAAKvoC,aAAc5O,EAC3B,EAEA3E,EAAKiD,MAAQ,SAAU+5C,GACtB,MAAM,IAAInsC,MAAO,0CAA4CmsC,EAC9D,EAMAx9C,EAAO0kD,WAAa,SAAUpvC,GAC7B,IAAIgnC,EACHqI,EAAa,GACbv7B,EAAI,EACJ5b,EAAI,EAWL,GAJAmyC,GAAgBrS,EAAQsX,WACxBlF,GAAapS,EAAQsX,YAAct8C,EAAM0J,KAAMsD,EAAS,GACxDC,EAAKvD,KAAMsD,EAAS+qC,GAEfV,EAAe,CACnB,KAAUrD,EAAOhnC,EAAS9H,MACpB8uC,IAAShnC,EAAS9H,KACtB4b,EAAIu7B,EAAW/7C,KAAM4E,IAGvB,KAAQ4b,KACP5X,EAAOQ,KAAMsD,EAASqvC,EAAYv7B,GAAK,EAEzC,CAMA,OAFAs2B,EAAY,KAELpqC,CACR,EAEAtV,EAAOuD,GAAGmhD,WAAa,WACtB,OAAOljD,KAAKi7C,UAAWz8C,EAAO0kD,WAAYp8C,EAAMiJ,MAAO/P,OACxD,EAEAg+C,EAAOx/C,EAAOukD,KAAO,CAGpBpB,YAAa,GAEb0B,aAAczB,GAEd9hD,MAAOy/C,EAEP0D,WAAY,CAAC,EAEbjkD,KAAM,CAAC,EAEPskD,SAAU,CACT,IAAK,CAAE7hC,IAAK,aAAcvN,OAAO,GACjC,IAAK,CAAEuN,IAAK,cACZ,IAAK,CAAEA,IAAK,kBAAmBvN,OAAO,GACtC,IAAK,CAAEuN,IAAK,oBAGb8hC,UAAW,CACV5D,KAAM,SAAU7/C,GAWf,OAVAA,EAAO,GAAMA,EAAO,GAAIuC,QAAS+9C,EAAWC,GAG5CvgD,EAAO,IAAQA,EAAO,IAAOA,EAAO,IAAOA,EAAO,IAAO,IACvDuC,QAAS+9C,EAAWC,GAEF,OAAfvgD,EAAO,KACXA,EAAO,GAAM,IAAMA,EAAO,GAAM,KAG1BA,EAAMgH,MAAO,EAAG,EACxB,EAEA+4C,MAAO,SAAU//C,GAkChB,OAtBAA,EAAO,GAAMA,EAAO,GAAI4R,cAEU,QAA7B5R,EAAO,GAAIgH,MAAO,EAAG,IAGnBhH,EAAO,IACZd,EAAKiD,MAAOnC,EAAO,IAKpBA,EAAO,KAASA,EAAO,GACtBA,EAAO,IAAQA,EAAO,IAAO,GAC7B,GAAqB,SAAfA,EAAO,IAAiC,QAAfA,EAAO,KAEvCA,EAAO,KAAWA,EAAO,GAAMA,EAAO,IAAwB,QAAfA,EAAO,KAG3CA,EAAO,IAClBd,EAAKiD,MAAOnC,EAAO,IAGbA,CACR,EAEA8/C,OAAQ,SAAU9/C,GACjB,IAAI0jD,EACHC,GAAY3jD,EAAO,IAAOA,EAAO,GAElC,OAAKy/C,EAAUM,MAAM16C,KAAMrF,EAAO,IAC1B,MAIHA,EAAO,GACXA,EAAO,GAAMA,EAAO,IAAOA,EAAO,IAAO,GAG9B2jD,GAAYpE,EAAQl6C,KAAMs+C,KAGnCD,EAASjC,GAAUkC,GAAU,MAG7BD,EAASC,EAAS1wC,QAAS,IAAK0wC,EAAS5jD,OAAS2jD,GAAWC,EAAS5jD,UAGxEC,EAAO,GAAMA,EAAO,GAAIgH,MAAO,EAAG08C,GAClC1jD,EAAO,GAAM2jD,EAAS38C,MAAO,EAAG08C,IAI1B1jD,EAAMgH,MAAO,EAAG,GACxB,GAGDgM,OAAQ,CAEP4sC,IAAK,SAAUgE,GACd,IAAIC,EAAmBD,EAAiBrhD,QAAS+9C,EAAWC,GAAY3uC,cACxE,MAA4B,MAArBgyC,EACN,WACC,OAAO,CACR,EACA,SAAU5I,GACT,OAAOz1B,EAAUy1B,EAAM6I,EACxB,CACF,EAEAlE,MAAO,SAAU7rC,GAChB,IAAIgwC,EAAUpF,EAAY5qC,EAAY,KAEtC,OAAOgwC,IACJA,EAAU,IAAI1Q,OAAQ,MAAQiK,EAAa,IAAMvpC,EAClD,IAAMupC,EAAa,SACpBqB,EAAY5qC,GAAW,SAAUknC,GAChC,OAAO8I,EAAQz+C,KACY,iBAAnB21C,EAAKlnC,WAA0BknC,EAAKlnC,gBACb,IAAtBknC,EAAKvoC,cACXuoC,EAAKvoC,aAAc,UACpB,GAEH,GACF,EAEAotC,KAAM,SAAUh8C,EAAMkgD,EAAUC,GAC/B,OAAO,SAAUhJ,GAChB,IAAIiJ,EAAS/kD,EAAKD,KAAM+7C,EAAMn3C,GAE9B,OAAe,MAAVogD,EACgB,OAAbF,GAEFA,IAINE,GAAU,GAEQ,MAAbF,EACGE,IAAWD,EAED,OAAbD,EACGE,IAAWD,EAED,OAAbD,EACGC,GAAqC,IAA5BC,EAAOhxC,QAAS+wC,GAEf,OAAbD,EACGC,GAASC,EAAOhxC,QAAS+wC,IAAW,EAE1B,OAAbD,EACGC,GAASC,EAAOj9C,OAAQg9C,EAAMjkD,UAAaikD,EAEjC,OAAbD,GACK,IAAME,EAAO1hD,QAAS48C,EAAa,KAAQ,KAClDlsC,QAAS+wC,IAAW,EAEL,OAAbD,IACGE,IAAWD,GAASC,EAAOj9C,MAAO,EAAGg9C,EAAMjkD,OAAS,KAAQikD,EAAQ,KAI7E,CACD,EAEAjE,MAAO,SAAU5+C,EAAM+iD,EAAMC,EAAW/vC,EAAO1H,GAC9C,IAAI03C,EAAgC,QAAvBjjD,EAAK6F,MAAO,EAAG,GAC3Bq9C,EAA+B,SAArBljD,EAAK6F,OAAQ,GACvBs9C,EAAkB,YAATJ,EAEV,OAAiB,IAAV9vC,GAAwB,IAAT1H,EAGrB,SAAUsuC,GACT,QAASA,EAAKjvB,UACf,EAEA,SAAUivB,EAAMuJ,EAAUC,GACzB,IAAI5C,EAAO6C,EAAY/J,EAAMgK,EAAWxd,EACvCvlB,EAAMyiC,IAAWC,EAAU,cAAgB,kBAC3CjhD,EAAS43C,EAAKjvB,WACdloB,EAAOygD,GAAUtJ,EAAKz1B,SAAS3T,cAC/B+yC,GAAYH,IAAQF,EACpBpnB,GAAO,EAER,GAAK95B,EAAS,CAGb,GAAKghD,EAAS,CACb,KAAQziC,GAAM,CAEb,IADA+4B,EAAOM,EACGN,EAAOA,EAAM/4B,IACtB,GAAK2iC,EACJ/+B,EAAUm1B,EAAM72C,GACE,IAAlB62C,EAAKlzB,SAEL,OAAO,EAKT0f,EAAQvlB,EAAe,SAATxgB,IAAoB+lC,GAAS,aAC5C,CACA,OAAO,CACR,CAKA,GAHAA,EAAQ,CAAEmd,EAAUjhD,EAAOioB,WAAajoB,EAAOwhD,WAG1CP,GAAWM,GASf,IAHAznB,GADAwnB,GADA9C,GADA6C,EAAarhD,EAAQ44C,KAAe54C,EAAQ44C,GAAY,CAAC,IACrC76C,IAAU,IACX,KAAQq9C,GAAWoD,EAAO,KACzBA,EAAO,GAC3BlH,EAAOgK,GAAathD,EAAOwiB,WAAY8+B,GAE7BhK,IAASgK,GAAahK,GAAQA,EAAM/4B,KAG3Cub,EAAOwnB,EAAY,IAAOxd,EAAM7C,OAGlC,GAAuB,IAAlBqW,EAAKlzB,YAAoB0V,GAAQwd,IAASM,EAAO,CACrDyJ,EAAYtjD,GAAS,CAAEq9C,EAASkG,EAAWxnB,GAC3C,KACD,OAeD,GATKynB,IAIJznB,EADAwnB,GADA9C,GADA6C,EAAazJ,EAAMgB,KAAehB,EAAMgB,GAAY,CAAC,IACjC76C,IAAU,IACX,KAAQq9C,GAAWoD,EAAO,KAMhC,IAAT1kB,EAGJ,MAAUwd,IAASgK,GAAahK,GAAQA,EAAM/4B,KAC3Cub,EAAOwnB,EAAY,IAAOxd,EAAM7C,WAE3BigB,EACN/+B,EAAUm1B,EAAM72C,GACE,IAAlB62C,EAAKlzB,cACH0V,IAGGynB,KACJF,EAAa/J,EAAMsB,KAChBtB,EAAMsB,GAAY,CAAC,IACV76C,GAAS,CAAEq9C,EAASthB,IAG5Bwd,IAASM,MAUlB,OADA9d,GAAQxwB,KACQ0H,GAAW8oB,EAAO9oB,GAAU,GAAK8oB,EAAO9oB,GAAS,CAClE,CACD,CACF,EAEA0rC,OAAQ,SAAU+E,EAAQzC,GAMzB,IAAIvuC,EACH5R,EAAKi8C,EAAKgB,QAAS2F,IAAY3G,EAAK4G,WAAYD,EAAOjzC,gBACtD1S,EAAKiD,MAAO,uBAAyB0iD,GAKvC,OAAK5iD,EAAI+5C,GACD/5C,EAAImgD,GAIPngD,EAAGlC,OAAS,GAChB8T,EAAO,CAAEgxC,EAAQA,EAAQ,GAAIzC,GACtBlE,EAAK4G,WAAW91C,eAAgB61C,EAAOjzC,eAC7CkwC,IAAc,SAAUd,EAAM7rC,GAI7B,IAHA,IAAI4vC,EACHC,EAAU/iD,EAAI++C,EAAMoB,GACpBl2C,EAAI84C,EAAQjlD,OACLmM,KAEP80C,EADA+D,EAAM9xC,EAAQvC,KAAMswC,EAAMgE,EAAS94C,OAClBiJ,EAAS4vC,GAAQC,EAAS94C,GAE7C,IACA,SAAU8uC,GACT,OAAO/4C,EAAI+4C,EAAM,EAAGnnC,EACrB,GAGK5R,CACR,GAGDi9C,QAAS,CAGRj4C,IAAK66C,IAAc,SAAUj4C,GAK5B,IAAInH,EAAQ,GACXsR,EAAU,GACV8M,EAAUmkC,GAASp7C,EAAStH,QAAS+6C,EAAU,OAEhD,OAAOx8B,EAASk7B,GACf8F,IAAc,SAAUd,EAAM7rC,EAASovC,EAAUC,GAMhD,IALA,IAAIxJ,EACHkK,EAAYpkC,EAASkgC,EAAM,KAAMwD,EAAK,IACtCt4C,EAAI80C,EAAKjhD,OAGFmM,MACA8uC,EAAOkK,EAAWh5C,MACxB80C,EAAM90C,KAASiJ,EAASjJ,GAAM8uC,GAGjC,IACA,SAAUA,EAAMuJ,EAAUC,GAOzB,OANA9hD,EAAO,GAAMs4C,EACbl6B,EAASpe,EAAO,KAAM8hD,EAAKxwC,GAI3BtR,EAAO,GAAM,MACLsR,EAAQqwB,KACjB,CACF,IAEAx4B,IAAKi2C,IAAc,SAAUj4C,GAC5B,OAAO,SAAUmxC,GAChB,OAAO97C,EAAM2K,EAAUmxC,GAAOj7C,OAAS,CACxC,CACD,IAEA0J,SAAUq4C,IAAc,SAAU3iD,GAEjC,OADAA,EAAOA,EAAKoD,QAAS+9C,EAAWC,GACzB,SAAUvF,GAChB,OAASA,EAAK/gC,aAAevb,EAAOS,KAAM67C,IAAS/nC,QAAS9T,IAAU,CACvE,CACD,IASAgmD,KAAMrD,IAAc,SAAUqD,GAO7B,OAJM3F,EAAYn6C,KAAM8/C,GAAQ,KAC/BjmD,EAAKiD,MAAO,qBAAuBgjD,GAEpCA,EAAOA,EAAK5iD,QAAS+9C,EAAWC,GAAY3uC,cACrC,SAAUopC,GAChB,IAAIoK,EACJ,GACC,GAAOA,EAAW9G,EACjBtD,EAAKmK,KACLnK,EAAKvoC,aAAc,aAAgBuoC,EAAKvoC,aAAc,QAGtD,OADA2yC,EAAWA,EAASxzC,iBACAuzC,GAA2C,IAAnCC,EAASnyC,QAASkyC,EAAO,YAE3CnK,EAAOA,EAAKjvB,aAAkC,IAAlBivB,EAAKxzB,UAC7C,OAAO,CACR,CACD,IAGAle,OAAQ,SAAU0xC,GACjB,IAAIj3C,EAAO1B,EAAOC,UAAYD,EAAOC,SAASyB,KAC9C,OAAOA,GAAQA,EAAKiD,MAAO,KAAQg0C,EAAKzzC,EACzC,EAEAisC,KAAM,SAAUwH,GACf,OAAOA,IAASx+B,CACjB,EAEA7V,MAAO,SAAUq0C,GAChB,OAAOA,IA5oCV,WACC,IACC,OAAOr8C,EAASkZ,aACjB,CAAE,MAAQwtC,GAAQ,CACnB,CAwoCmBC,IACf3mD,EAASilB,eACLo3B,EAAK75C,MAAQ65C,EAAKx4C,OAASw4C,EAAKuK,SACtC,EAGA3zB,QAASswB,IAAsB,GAC/BrtC,SAAUqtC,IAAsB,GAEhCsD,QAAS,SAAUxK,GAIlB,OAASz1B,EAAUy1B,EAAM,YAAeA,EAAKwK,SAC1CjgC,EAAUy1B,EAAM,aAAgBA,EAAKtmC,QACzC,EAEAA,SAAU,SAAUsmC,GAWnB,OALKA,EAAKjvB,YAETivB,EAAKjvB,WAAW05B,eAGQ,IAAlBzK,EAAKtmC,QACb,EAGAjB,MAAO,SAAUunC,GAMhB,IAAMA,EAAOA,EAAK3vB,WAAY2vB,EAAMA,EAAOA,EAAK0K,YAC/C,GAAK1K,EAAKxzB,SAAW,EACpB,OAAO,EAGT,OAAO,CACR,EAEApkB,OAAQ,SAAU43C,GACjB,OAAQkD,EAAKgB,QAAQzrC,MAAOunC,EAC7B,EAGA2K,OAAQ,SAAU3K,GACjB,OAAOmF,EAAQ96C,KAAM21C,EAAKz1B,SAC3B,EAEA7iB,MAAO,SAAUs4C,GAChB,OAAOkF,EAAQ76C,KAAM21C,EAAKz1B,SAC3B,EAEAkb,OAAQ,SAAUua,GACjB,OAAOz1B,EAAUy1B,EAAM,UAA2B,WAAdA,EAAK75C,MACxCokB,EAAUy1B,EAAM,SAClB,EAEA77C,KAAM,SAAU67C,GACf,IAAI/7C,EACJ,OAAOsmB,EAAUy1B,EAAM,UAA2B,SAAdA,EAAK75C,OAKI,OAAxClC,EAAO+7C,EAAKvoC,aAAc,UACN,SAAvBxT,EAAK2S,cACR,EAGAwC,MAAO+tC,IAAwB,WAC9B,MAAO,CAAE,EACV,IAEAz1C,KAAMy1C,IAAwB,SAAUyD,EAAe7lD,GACtD,MAAO,CAAEA,EAAS,EACnB,IAEA8V,GAAIssC,IAAwB,SAAUyD,EAAe7lD,EAAQqiD,GAC5D,MAAO,CAAEA,EAAW,EAAIA,EAAWriD,EAASqiD,EAC7C,IAEA5G,KAAM2G,IAAwB,SAAUE,EAActiD,GAErD,IADA,IAAImM,EAAI,EACAA,EAAInM,EAAQmM,GAAK,EACxBm2C,EAAa/6C,KAAM4E,GAEpB,OAAOm2C,CACR,IAEA1G,IAAKwG,IAAwB,SAAUE,EAActiD,GAEpD,IADA,IAAImM,EAAI,EACAA,EAAInM,EAAQmM,GAAK,EACxBm2C,EAAa/6C,KAAM4E,GAEpB,OAAOm2C,CACR,IAEAwD,GAAI1D,IAAwB,SAAUE,EAActiD,EAAQqiD,GAC3D,IAAIl2C,EAUJ,IAPCA,EADIk2C,EAAW,EACXA,EAAWriD,EACJqiD,EAAWriD,EAClBA,EAEAqiD,IAGKl2C,GAAK,GACdm2C,EAAa/6C,KAAM4E,GAEpB,OAAOm2C,CACR,IAEAyD,GAAI3D,IAAwB,SAAUE,EAActiD,EAAQqiD,GAE3D,IADA,IAAIl2C,EAAIk2C,EAAW,EAAIA,EAAWriD,EAASqiD,IACjCl2C,EAAInM,GACbsiD,EAAa/6C,KAAM4E,GAEpB,OAAOm2C,CACR,MAIFnE,EAAKgB,QAAQ6G,IAAM7H,EAAKgB,QAAQrpC,GAGrB,CAAEmwC,OAAO,EAAMC,UAAU,EAAMt5C,MAAM,EAAMu5C,UAAU,EAAMpd,OAAO,GAC5EoV,EAAKgB,QAAShzC,GAAM81C,GAAmB91C,GAExC,IAAMA,IAAK,CAAEi6C,QAAQ,EAAM3mC,OAAO,GACjC0+B,EAAKgB,QAAShzC,GAAM+1C,GAAoB/1C,GAIzC,SAAS44C,KAAc,CAIvB,SAASrD,GAAU53C,EAAUu8C,GAC5B,IAAIpB,EAAShlD,EAAOqmD,EAAQllD,EAC3BmlD,EAAOpF,EAAQqF,EACfC,EAAS5H,EAAY/0C,EAAW,KAEjC,GAAK28C,EACJ,OAAOJ,EAAY,EAAII,EAAOx/C,MAAO,GAOtC,IAJAs/C,EAAQz8C,EACRq3C,EAAS,GACTqF,EAAarI,EAAKuF,UAEV6C,GAAQ,CA2Bf,IAAMnlD,KAxBA6jD,KAAahlD,EAAQo/C,EAAOiC,KAAMiF,MAClCtmD,IAGJsmD,EAAQA,EAAMt/C,MAAOhH,EAAO,GAAID,SAAYumD,GAE7CpF,EAAO55C,KAAQ++C,EAAS,KAGzBrB,GAAU,GAGHhlD,EAAQq/C,EAAmBgC,KAAMiF,MACvCtB,EAAUhlD,EAAM+vC,QAChBsW,EAAO/+C,KAAM,CACZ9H,MAAOwlD,EAGP7jD,KAAMnB,EAAO,GAAIuC,QAAS+6C,EAAU,OAErCgJ,EAAQA,EAAMt/C,MAAOg+C,EAAQjlD,SAIhBm+C,EAAKlrC,SACXhT,EAAQy/C,EAAWt+C,GAAOkgD,KAAMiF,KAAgBC,EAAYplD,MAChEnB,EAAQumD,EAAYplD,GAAQnB,MAC9BglD,EAAUhlD,EAAM+vC,QAChBsW,EAAO/+C,KAAM,CACZ9H,MAAOwlD,EACP7jD,KAAMA,EACNgU,QAASnV,IAEVsmD,EAAQA,EAAMt/C,MAAOg+C,EAAQjlD,SAI/B,IAAMilD,EACL,KAEF,CAKA,OAAKoB,EACGE,EAAMvmD,OAGPumD,EACNpnD,EAAKiD,MAAO0H,GAGZ+0C,EAAY/0C,EAAUq3C,GAASl6C,MAAO,EACxC,CAEA,SAAS06C,GAAY2E,GAIpB,IAHA,IAAIn6C,EAAI,EACP3G,EAAM8gD,EAAOtmD,OACb8J,EAAW,GACJqC,EAAI3G,EAAK2G,IAChBrC,GAAYw8C,EAAQn6C,GAAI1M,MAEzB,OAAOqK,CACR,CAEA,SAASk3C,GAAejgC,EAAS2lC,EAAYC,GAC5C,IAAI/kC,EAAM8kC,EAAW9kC,IACpB0X,EAAOotB,EAAWl7B,KAClBniB,EAAMiwB,GAAQ1X,EACdglC,EAAmBD,GAAgB,eAARt9C,EAC3Bw9C,EAAWnI,IAEZ,OAAOgI,EAAWryC,MAGjB,SAAU4mC,EAAM5zB,EAASo9B,GACxB,KAAUxJ,EAAOA,EAAMr5B,IACtB,GAAuB,IAAlBq5B,EAAKxzB,UAAkBm/B,EAC3B,OAAO7lC,EAASk6B,EAAM5zB,EAASo9B,GAGjC,OAAO,CACR,EAGA,SAAUxJ,EAAM5zB,EAASo9B,GACxB,IAAIqC,EAAUpC,EACbqC,EAAW,CAAEtI,EAASoI,GAGvB,GAAKpC,GACJ,KAAUxJ,EAAOA,EAAMr5B,IACtB,IAAuB,IAAlBq5B,EAAKxzB,UAAkBm/B,IACtB7lC,EAASk6B,EAAM5zB,EAASo9B,GAC5B,OAAO,OAKV,KAAUxJ,EAAOA,EAAMr5B,IACtB,GAAuB,IAAlBq5B,EAAKxzB,UAAkBm/B,EAG3B,GAFAlC,EAAazJ,EAAMgB,KAAehB,EAAMgB,GAAY,CAAC,GAEhD3iB,GAAQ9T,EAAUy1B,EAAM3hB,GAC5B2hB,EAAOA,EAAMr5B,IAASq5B,MAChB,KAAO6L,EAAWpC,EAAYr7C,KACpCy9C,EAAU,KAAQrI,GAAWqI,EAAU,KAAQD,EAG/C,OAASE,EAAU,GAAMD,EAAU,GAOnC,GAHApC,EAAYr7C,GAAQ09C,EAGbA,EAAU,GAAMhmC,EAASk6B,EAAM5zB,EAASo9B,GAC9C,OAAO,CAET,CAIH,OAAO,CACR,CACF,CAEA,SAASuC,GAAgBC,GACxB,OAAOA,EAASjnD,OAAS,EACxB,SAAUi7C,EAAM5zB,EAASo9B,GAExB,IADA,IAAIt4C,EAAI86C,EAASjnD,OACTmM,KACP,IAAM86C,EAAU96C,GAAK8uC,EAAM5zB,EAASo9B,GACnC,OAAO,EAGT,OAAO,CACR,EACAwC,EAAU,EACZ,CAWA,SAASC,GAAU/B,EAAW1wC,EAAKxB,EAAQoU,EAASo9B,GAOnD,IANA,IAAIxJ,EACHkM,EAAe,GACfh7C,EAAI,EACJ3G,EAAM2/C,EAAUnlD,OAChBonD,EAAgB,MAAP3yC,EAEFtI,EAAI3G,EAAK2G,KACT8uC,EAAOkK,EAAWh5C,MAClB8G,IAAUA,EAAQgoC,EAAM5zB,EAASo9B,KACtC0C,EAAa5/C,KAAM0zC,GACdmM,GACJ3yC,EAAIlN,KAAM4E,KAMd,OAAOg7C,CACR,CAEA,SAASE,GAAY3D,EAAW55C,EAAUiX,EAASumC,EAAYC,EAAYC,GAO1E,OANKF,IAAeA,EAAYrL,KAC/BqL,EAAaD,GAAYC,IAErBC,IAAeA,EAAYtL,KAC/BsL,EAAaF,GAAYE,EAAYC,IAE/BzF,IAAc,SAAUd,EAAMhtC,EAASoT,EAASo9B,GACtD,IAAIgD,EAAMt7C,EAAG8uC,EAAMyM,EAClBC,EAAS,GACTC,EAAU,GACVC,EAAc5zC,EAAQjU,OAGtBq7C,EAAQ4F,GA5CX,SAA2Bn3C,EAAUg+C,EAAU7zC,GAG9C,IAFA,IAAI9H,EAAI,EACP3G,EAAMsiD,EAAS9nD,OACRmM,EAAI3G,EAAK2G,IAChBhN,EAAM2K,EAAUg+C,EAAU37C,GAAK8H,GAEhC,OAAOA,CACR,CAsCI8zC,CAAkBj+C,GAAY,IAC7Bud,EAAQI,SAAW,CAAEJ,GAAYA,EAAS,IAG5C2gC,GAAYtE,IAAezC,GAASn3C,EAEnCuxC,EADA6L,GAAU7L,EAAOsM,EAAQjE,EAAWr8B,EAASo9B,GAsB/C,GAnBK1jC,EAaJA,EAASinC,EATTN,EAAaH,IAAgBtG,EAAOyC,EAAYmE,GAAeP,GAG9D,GAGArzC,EAG+BoT,EAASo9B,GAEzCiD,EAAaM,EAITV,EAMJ,IALAG,EAAOP,GAAUQ,EAAYE,GAC7BN,EAAYG,EAAM,GAAIpgC,EAASo9B,GAG/Bt4C,EAAIs7C,EAAKznD,OACDmM,MACA8uC,EAAOwM,EAAMt7C,MACnBu7C,EAAYE,EAASz7C,MAAW67C,EAAWJ,EAASz7C,IAAQ8uC,IAK/D,GAAKgG,GACJ,GAAKsG,GAAc7D,EAAY,CAC9B,GAAK6D,EAAa,CAKjB,IAFAE,EAAO,GACPt7C,EAAIu7C,EAAW1nD,OACPmM,MACA8uC,EAAOyM,EAAYv7C,KAGzBs7C,EAAKlgD,KAAQygD,EAAW77C,GAAM8uC,GAGhCsM,EAAY,KAAQG,EAAa,GAAMD,EAAMhD,EAC9C,CAIA,IADAt4C,EAAIu7C,EAAW1nD,OACPmM,MACA8uC,EAAOyM,EAAYv7C,MACvBs7C,EAAOF,EAAar0C,EAAQvC,KAAMswC,EAAMhG,GAAS0M,EAAQx7C,KAAS,IAEpE80C,EAAMwG,KAAYxzC,EAASwzC,GAASxM,GAGvC,OAIAyM,EAAaR,GACZQ,IAAezzC,EACdyzC,EAAWv3C,OAAQ03C,EAAaH,EAAW1nD,QAC3C0nD,GAEGH,EACJA,EAAY,KAAMtzC,EAASyzC,EAAYjD,GAEvCl9C,EAAK2I,MAAO+D,EAASyzC,EAGxB,GACD,CAEA,SAASO,GAAmB3B,GA+B3B,IA9BA,IAAI4B,EAAcnnC,EAASgH,EAC1BviB,EAAM8gD,EAAOtmD,OACbmoD,EAAkBhK,EAAKsF,SAAU6C,EAAQ,GAAIllD,MAC7CgnD,EAAmBD,GAAmBhK,EAAKsF,SAAU,KACrDt3C,EAAIg8C,EAAkB,EAAI,EAG1BE,EAAerH,IAAe,SAAU/F,GACvC,OAAOA,IAASiN,CACjB,GAAGE,GAAkB,GACrBE,EAAkBtH,IAAe,SAAU/F,GAC1C,OAAO/nC,EAAQvC,KAAMu3C,EAAcjN,IAAU,CAC9C,GAAGmN,GAAkB,GACrBnB,EAAW,CAAE,SAAUhM,EAAM5zB,EAASo9B,GAMrC,IAAInJ,GAAS6M,IAAqB1D,GAAOp9B,GAAW+2B,MACjD8J,EAAe7gC,GAAUI,SAC1B4gC,EAAcpN,EAAM5zB,EAASo9B,GAC7B6D,EAAiBrN,EAAM5zB,EAASo9B,IAKlC,OADAyD,EAAe,KACR5M,CACR,GAEOnvC,EAAI3G,EAAK2G,IAChB,GAAO4U,EAAUo9B,EAAKsF,SAAU6C,EAAQn6C,GAAI/K,MAC3C6lD,EAAW,CAAEjG,GAAegG,GAAgBC,GAAYlmC,QAClD,CAIN,IAHAA,EAAUo9B,EAAKlrC,OAAQqzC,EAAQn6C,GAAI/K,MAAO8O,MAAO,KAAMo2C,EAAQn6C,GAAIiJ,UAGrD6mC,GAAY,CAIzB,IADAl0B,IAAM5b,EACE4b,EAAIviB,IACN24C,EAAKsF,SAAU6C,EAAQv+B,GAAI3mB,MADhB2mB,KAKjB,OAAOs/B,GACNl7C,EAAI,GAAK66C,GAAgBC,GACzB96C,EAAI,GAAKw1C,GAGR2E,EAAOr/C,MAAO,EAAGkF,EAAI,GACnBgH,OAAQ,CAAE1T,MAAgC,MAAzB6mD,EAAQn6C,EAAI,GAAI/K,KAAe,IAAM,MACvDoB,QAAS+6C,EAAU,MACrBx8B,EACA5U,EAAI4b,GAAKkgC,GAAmB3B,EAAOr/C,MAAOkF,EAAG4b,IAC7CA,EAAIviB,GAAOyiD,GAAqB3B,EAASA,EAAOr/C,MAAO8gB,IACvDA,EAAIviB,GAAOm8C,GAAY2E,GAEzB,CACAW,EAAS1/C,KAAMwZ,EAChB,CAGD,OAAOimC,GAAgBC,EACxB,CAgIA,SAAS/B,GAASp7C,EAAU7J,GAC3B,IAAIkM,EACHo8C,EAAc,GACdC,EAAkB,GAClB/B,EAAS3H,EAAeh1C,EAAW,KAEpC,IAAM28C,EAAS,CAOd,IAJMxmD,IACLA,EAAQyhD,GAAU53C,IAEnBqC,EAAIlM,EAAMD,OACFmM,MACPs6C,EAASwB,GAAmBhoD,EAAOkM,KACtB8vC,GACZsM,EAAYhhD,KAAMk/C,GAElB+B,EAAgBjhD,KAAMk/C,GAKxBA,EAAS3H,EAAeh1C,EArJ1B,SAAmC0+C,EAAiBD,GACnD,IAAIE,EAAQF,EAAYvoD,OAAS,EAChC0oD,EAAYF,EAAgBxoD,OAAS,EACrC2oD,EAAe,SAAU1H,EAAM55B,EAASo9B,EAAKxwC,EAAS20C,GACrD,IAAI3N,EAAMlzB,EAAGhH,EACZ8nC,EAAe,EACf18C,EAAI,IACJg5C,EAAYlE,GAAQ,GACpB6H,EAAa,GACbC,EAAgB3K,EAGhB/C,EAAQ4F,GAAQyH,GAAavK,EAAKh/C,KAAK0gD,IAAK,IAAK+I,GAGjDI,EAAkBvK,GAA4B,MAAjBsK,EAAwB,EAAIz3C,KAAKE,UAAY,GAC1EhM,EAAM61C,EAAMr7C,OAeb,IAbK4oD,IAMJxK,EAAmB/2B,GAAWzoB,GAAYyoB,GAAWuhC,GAO9Cz8C,IAAM3G,GAAgC,OAAvBy1C,EAAOI,EAAOlvC,IAAeA,IAAM,CACzD,GAAKu8C,GAAazN,EAAO,CAWxB,IAVAlzB,EAAI,EAMEV,GAAW4zB,EAAK6B,eAAiBl+C,IACtCkiD,GAAa7F,GACbwJ,GAAOlG,GAEEx9B,EAAUynC,EAAiBzgC,MACpC,GAAKhH,EAASk6B,EAAM5zB,GAAWzoB,EAAU6lD,GAAQ,CAChDl9C,EAAKoJ,KAAMsD,EAASgnC,GACpB,KACD,CAEI2N,IACJnK,EAAUuK,EAEZ,CAGKP,KAGGxN,GAAQl6B,GAAWk6B,IACzB4N,IAII5H,GACJkE,EAAU59C,KAAM0zC,GAGnB,CAaA,GATA4N,GAAgB18C,EASXs8C,GAASt8C,IAAM08C,EAAe,CAElC,IADA9gC,EAAI,EACMhH,EAAUwnC,EAAaxgC,MAChChH,EAASokC,EAAW2D,EAAYzhC,EAASo9B,GAG1C,GAAKxD,EAAO,CAGX,GAAK4H,EAAe,EACnB,KAAQ18C,KACCg5C,EAAWh5C,IAAO28C,EAAY38C,KACrC28C,EAAY38C,GAAMm4B,EAAI3zB,KAAMsD,IAM/B60C,EAAa5B,GAAU4B,EACxB,CAGAvhD,EAAK2I,MAAO+D,EAAS60C,GAGhBF,IAAc3H,GAAQ6H,EAAW9oD,OAAS,GAC5C6oD,EAAeN,EAAYvoD,OAAW,GAExCrB,EAAO0kD,WAAYpvC,EAErB,CAQA,OALK20C,IACJnK,EAAUuK,EACV5K,EAAmB2K,GAGb5D,CACR,EAED,OAAOsD,EACN1G,GAAc4G,GACdA,CACF,CA0BGM,CAA0BT,EAAiBD,IAG5C9B,EAAO38C,SAAWA,CACnB,CACA,OAAO28C,CACR,CAWA,SAAS5sC,GAAQ/P,EAAUud,EAASpT,EAASgtC,GAC5C,IAAI90C,EAAGm6C,EAAQrhD,EAAO7D,EAAMjC,EAC3B+pD,EAA+B,mBAAbp/C,GAA2BA,EAC7C7J,GAASghD,GAAQS,GAAY53C,EAAWo/C,EAASp/C,UAAYA,GAM9D,GAJAmK,EAAUA,GAAW,GAIC,IAAjBhU,EAAMD,OAAe,CAIzB,IADAsmD,EAASrmD,EAAO,GAAMA,EAAO,GAAIgH,MAAO,IAC5BjH,OAAS,GAAsC,QAA/BiF,EAAQqhD,EAAQ,IAAMllD,MAC3B,IAArBimB,EAAQI,UAAkB82B,GAAkBJ,EAAKsF,SAAU6C,EAAQ,GAAIllD,MAAS,CAMjF,KAJAimB,GAAY82B,EAAKh/C,KAAKwgD,GACrB16C,EAAMmQ,QAAS,GAAI5S,QAAS+9C,EAAWC,GACvCn5B,IACI,IAAM,IAEV,OAAOpT,EAGIi1C,IACX7hC,EAAUA,EAAQ2E,YAGnBliB,EAAWA,EAAS7C,MAAOq/C,EAAOtW,QAAQvwC,MAAMO,OACjD,CAIA,IADAmM,EAAIuzC,EAAUQ,aAAa56C,KAAMwE,GAAa,EAAIw8C,EAAOtmD,OACjDmM,MACPlH,EAAQqhD,EAAQn6C,IAGXgyC,EAAKsF,SAAYriD,EAAO6D,EAAM7D,QAGnC,IAAOjC,EAAOg/C,EAAKh/C,KAAMiC,MAGjB6/C,EAAO9hD,EACb8F,EAAMmQ,QAAS,GAAI5S,QAAS+9C,EAAWC,GACvCF,EAASh7C,KAAMghD,EAAQ,GAAIllD,OAC1BogD,GAAan6B,EAAQ2E,aAAgB3E,IACjC,CAKL,GAFAi/B,EAAOn2C,OAAQhE,EAAG,KAClBrC,EAAWm3C,EAAKjhD,QAAU2hD,GAAY2E,IAGrC,OADA/+C,EAAK2I,MAAO+D,EAASgtC,GACdhtC,EAGR,KACD,CAGH,CAWA,OAPEi1C,GAAYhE,GAASp7C,EAAU7J,IAChCghD,EACA55B,GACCk3B,EACDtqC,GACCoT,GAAWi5B,EAASh7C,KAAMwE,IAAc03C,GAAan6B,EAAQ2E,aAAgB3E,GAExEpT,CACR,CAtlBA8wC,GAAW/1C,UAAYmvC,EAAKgL,QAAUhL,EAAKgB,QAC3ChB,EAAK4G,WAAa,IAAIA,GA2lBtB9Y,EAAQsX,WAAatH,EAAQrqC,MAAO,IAAKsC,KAAM8qC,GAAY5rC,KAAM,MAAS6oC,EAG1E6E,KAIA7U,EAAQgX,aAAejB,IAAQ,SAAUp2C,GAGxC,OAA4E,EAArEA,EAAG6xC,wBAAyB7+C,EAASqW,cAAe,YAC5D,IAEAtW,EAAOQ,KAAOA,EAGdR,EAAOukD,KAAM,KAAQvkD,EAAOukD,KAAK/D,QACjCxgD,EAAO+oB,OAAS/oB,EAAO0kD,WAIvBlkD,EAAK+lD,QAAUA,GACf/lD,EAAK0a,OAASA,GACd1a,EAAK2hD,YAAcA,GACnB3hD,EAAKuiD,SAAWA,GAEhBviD,EAAKshD,OAAS9hD,EAAOo/C,eACrB5+C,EAAKiqD,QAAUzqD,EAAOS,KACtBD,EAAKkqD,MAAQ1qD,EAAO+9C,SACpBv9C,EAAKmqD,UAAY3qD,EAAOukD,KACxB/jD,EAAK8sC,QAAUttC,EAAOstC,QACtB9sC,EAAKkkD,WAAa1kD,EAAO0kD,UAIvB,CAviEF,GA0iEA,IAAIzhC,EAAM,SAAUq5B,EAAMr5B,EAAK2nC,GAI9B,IAHA,IAAItE,EAAU,GACbuE,OAAqBrgC,IAAVogC,GAEFtO,EAAOA,EAAMr5B,KAA6B,IAAlBq5B,EAAKxzB,UACtC,GAAuB,IAAlBwzB,EAAKxzB,SAAiB,CAC1B,GAAK+hC,GAAY7qD,EAAQs8C,GAAOl3C,GAAIwlD,GACnC,MAEDtE,EAAQ19C,KAAM0zC,EACf,CAED,OAAOgK,CACR,EAGIxjD,EAAW,SAAUsM,EAAGktC,GAG3B,IAFA,IAAIgK,EAAU,GAENl3C,EAAGA,EAAIA,EAAE43C,YACI,IAAf53C,EAAE0Z,UAAkB1Z,IAAMktC,GAC9BgK,EAAQ19C,KAAMwG,GAIhB,OAAOk3C,CACR,EAGIwE,EAAgB9qD,EAAOukD,KAAKjjD,MAAMigD,aAElCwJ,EAAa,kEAKjB,SAASC,EAAQzQ,EAAU0Q,EAAW1iD,GACrC,OAAKmzC,EAAYuP,GACTjrD,EAAO+8C,KAAMxC,GAAU,SAAU+B,EAAM9uC,GAC7C,QAASy9C,EAAUj5C,KAAMsqC,EAAM9uC,EAAG8uC,KAAW/zC,CAC9C,IAII0iD,EAAUniC,SACP9oB,EAAO+8C,KAAMxC,GAAU,SAAU+B,GACvC,OAASA,IAAS2O,IAAgB1iD,CACnC,IAIyB,iBAAd0iD,EACJjrD,EAAO+8C,KAAMxC,GAAU,SAAU+B,GACvC,OAAS/nC,EAAQvC,KAAMi5C,EAAW3O,IAAU,IAAQ/zC,CACrD,IAIMvI,EAAOsU,OAAQ22C,EAAW1Q,EAAUhyC,EAC5C,CAEAvI,EAAOsU,OAAS,SAAUiwC,EAAM7H,EAAOn0C,GACtC,IAAI+zC,EAAOI,EAAO,GAMlB,OAJKn0C,IACJg8C,EAAO,QAAUA,EAAO,KAGH,IAAjB7H,EAAMr7C,QAAkC,IAAlBi7C,EAAKxzB,SACxB9oB,EAAOQ,KAAKgkD,gBAAiBlI,EAAMiI,GAAS,CAAEjI,GAAS,GAGxDt8C,EAAOQ,KAAKiW,QAAS8tC,EAAMvkD,EAAO+8C,KAAML,GAAO,SAAUJ,GAC/D,OAAyB,IAAlBA,EAAKxzB,QACb,IACD,EAEA9oB,EAAOuD,GAAGgD,OAAQ,CACjB/F,KAAM,SAAU2K,GACf,IAAIqC,EAAGmvC,EACN91C,EAAMrF,KAAKH,OACXonB,EAAOjnB,KAER,GAAyB,iBAAb2J,EACX,OAAO3J,KAAKi7C,UAAWz8C,EAAQmL,GAAWmJ,QAAQ,WACjD,IAAM9G,EAAI,EAAGA,EAAI3G,EAAK2G,IACrB,GAAKxN,EAAO+K,SAAU0d,EAAMjb,GAAKhM,MAChC,OAAO,CAGV,KAKD,IAFAm7C,EAAMn7C,KAAKi7C,UAAW,IAEhBjvC,EAAI,EAAGA,EAAI3G,EAAK2G,IACrBxN,EAAOQ,KAAM2K,EAAUsd,EAAMjb,GAAKmvC,GAGnC,OAAO91C,EAAM,EAAI7G,EAAO0kD,WAAY/H,GAAQA,CAC7C,EACAroC,OAAQ,SAAUnJ,GACjB,OAAO3J,KAAKi7C,UAAWuO,EAAQxpD,KAAM2J,GAAY,IAAI,GACtD,EACA5C,IAAK,SAAU4C,GACd,OAAO3J,KAAKi7C,UAAWuO,EAAQxpD,KAAM2J,GAAY,IAAI,GACtD,EACA/F,GAAI,SAAU+F,GACb,QAAS6/C,EACRxpD,KAIoB,iBAAb2J,GAAyB2/C,EAAcnkD,KAAMwE,GACnDnL,EAAQmL,GACRA,GAAY,IACb,GACC9J,MACH,IAQD,IAAI6pD,EAMHxJ,EAAa,uCAEN1hD,EAAOuD,GAAGwnC,KAAO,SAAU5/B,EAAUud,EAASosB,GACpD,IAAIxzC,EAAOg7C,EAGX,IAAMnxC,EACL,OAAO3J,KAQR,GAHAszC,EAAOA,GAAQoW,EAGU,iBAAb//C,EAAwB,CAanC,KAPC7J,EALsB,MAAlB6J,EAAU,IACsB,MAApCA,EAAUA,EAAS9J,OAAS,IAC5B8J,EAAS9J,QAAU,EAGX,CAAE,KAAM8J,EAAU,MAGlBu2C,EAAWiB,KAAMx3C,MAIV7J,EAAO,IAAQonB,EA6CxB,OAAMA,GAAWA,EAAQvF,QACtBuF,GAAWosB,GAAOt0C,KAAM2K,GAK1B3J,KAAKuQ,YAAa2W,GAAUloB,KAAM2K,GAhDzC,GAAK7J,EAAO,GAAM,CAYjB,GAXAonB,EAAUA,aAAmB1oB,EAAS0oB,EAAS,GAAMA,EAIrD1oB,EAAO48C,MAAOp7C,KAAMxB,EAAOmrD,UAC1B7pD,EAAO,GACPonB,GAAWA,EAAQI,SAAWJ,EAAQy1B,eAAiBz1B,EAAUzoB,GACjE,IAII8qD,EAAWpkD,KAAMrF,EAAO,KAAStB,EAAO4iB,cAAe8F,GAC3D,IAAMpnB,KAASonB,EAGTgzB,EAAYl6C,KAAMF,IACtBE,KAAMF,GAASonB,EAASpnB,IAIxBE,KAAKjB,KAAMe,EAAOonB,EAASpnB,IAK9B,OAAOE,IAGR,CASC,OARA86C,EAAOr8C,EAAS8mB,eAAgBzlB,EAAO,OAKtCE,KAAM,GAAM86C,EACZ96C,KAAKH,OAAS,GAERG,IAcV,CAAO,OAAK2J,EAAS2d,UACpBtnB,KAAM,GAAM2J,EACZ3J,KAAKH,OAAS,EACPG,MAIIk6C,EAAYvwC,QACDqf,IAAfsqB,EAAK50C,MACX40C,EAAK50C,MAAOiL,GAGZA,EAAUnL,GAGLA,EAAO69C,UAAW1yC,EAAU3J,KACpC,GAGI6O,UAAYrQ,EAAOuD,GAGxB2nD,EAAalrD,EAAQC,GAGrB,IAAImrD,EAAe,iCAGlBC,EAAmB,CAClBzjD,UAAU,EACV0jD,UAAU,EACVz+B,MAAM,EACNI,MAAM,GAoFR,SAASs+B,EAASC,EAAKvoC,GACtB,MAAUuoC,EAAMA,EAAKvoC,KAA4B,IAAjBuoC,EAAI1iC,WACpC,OAAO0iC,CACR,CApFAxrD,EAAOuD,GAAGgD,OAAQ,CACjB4G,IAAK,SAAUvC,GACd,IAAI6gD,EAAUzrD,EAAQ4K,EAAQpJ,MAC7BiP,EAAIg7C,EAAQpqD,OAEb,OAAOG,KAAK8S,QAAQ,WAEnB,IADA,IAAI9G,EAAI,EACAA,EAAIiD,EAAGjD,IACd,GAAKxN,EAAO+K,SAAUvJ,KAAMiqD,EAASj+C,IACpC,OAAO,CAGV,GACD,EAEA7L,QAAS,SAAUgpD,EAAWjiC,GAC7B,IAAI8iC,EACHh+C,EAAI,EACJiD,EAAIjP,KAAKH,OACTilD,EAAU,GACVmF,EAA+B,iBAAdd,GAA0B3qD,EAAQ2qD,GAGpD,IAAMG,EAAcnkD,KAAMgkD,GACzB,KAAQn9C,EAAIiD,EAAGjD,IACd,IAAMg+C,EAAMhqD,KAAMgM,GAAKg+C,GAAOA,IAAQ9iC,EAAS8iC,EAAMA,EAAIn+B,WAGxD,GAAKm+B,EAAI1iC,SAAW,KAAQ2iC,EAC3BA,EAAQz+C,MAAOw+C,IAAS,EAGP,IAAjBA,EAAI1iC,UACH9oB,EAAOQ,KAAKgkD,gBAAiBgH,EAAKb,IAAgB,CAEnDrE,EAAQ19C,KAAM4iD,GACd,KACD,CAKH,OAAOhqD,KAAKi7C,UAAW6J,EAAQjlD,OAAS,EAAIrB,EAAO0kD,WAAY4B,GAAYA,EAC5E,EAGAt5C,MAAO,SAAUsvC,GAGhB,OAAMA,EAKe,iBAATA,EACJ/nC,EAAQvC,KAAMhS,EAAQs8C,GAAQ96C,KAAM,IAIrC+S,EAAQvC,KAAMxQ,KAGpB86C,EAAKn5B,OAASm5B,EAAM,GAAMA,GAZjB96C,KAAM,IAAOA,KAAM,GAAI6rB,WAAe7rB,KAAKkU,QAAQyX,UAAU9rB,QAAU,CAclF,EAEA4U,IAAK,SAAU9K,EAAUud,GACxB,OAAOlnB,KAAKi7C,UACXz8C,EAAO0kD,WACN1kD,EAAO48C,MAAOp7C,KAAKkE,MAAO1F,EAAQmL,EAAUud,KAG/C,EAEAgjC,QAAS,SAAUvgD,GAClB,OAAO3J,KAAKyU,IAAiB,MAAZ9K,EAChB3J,KAAKq7C,WAAar7C,KAAKq7C,WAAWvoC,OAAQnJ,GAE5C,IAQDnL,EAAOkF,KAAM,CACZR,OAAQ,SAAU43C,GACjB,IAAI53C,EAAS43C,EAAKjvB,WAClB,OAAO3oB,GAA8B,KAApBA,EAAOokB,SAAkBpkB,EAAS,IACpD,EACAmG,QAAS,SAAUyxC,GAClB,OAAOr5B,EAAKq5B,EAAM,aACnB,EACAqP,aAAc,SAAUrP,EAAMoC,EAAIkM,GACjC,OAAO3nC,EAAKq5B,EAAM,aAAcsO,EACjC,EACA/9B,KAAM,SAAUyvB,GACf,OAAOiP,EAASjP,EAAM,cACvB,EACArvB,KAAM,SAAUqvB,GACf,OAAOiP,EAASjP,EAAM,kBACvB,EACAvvB,QAAS,SAAUuvB,GAClB,OAAOr5B,EAAKq5B,EAAM,cACnB,EACAnvB,QAAS,SAAUmvB,GAClB,OAAOr5B,EAAKq5B,EAAM,kBACnB,EACAsP,UAAW,SAAUtP,EAAMoC,EAAIkM,GAC9B,OAAO3nC,EAAKq5B,EAAM,cAAesO,EAClC,EACAiB,UAAW,SAAUvP,EAAMoC,EAAIkM,GAC9B,OAAO3nC,EAAKq5B,EAAM,kBAAmBsO,EACtC,EACA9nD,SAAU,SAAUw5C,GACnB,OAAOx5C,GAAYw5C,EAAKjvB,YAAc,CAAC,GAAIV,WAAY2vB,EACxD,EACA10C,SAAU,SAAU00C,GACnB,OAAOx5C,EAAUw5C,EAAK3vB,WACvB,EACA2+B,SAAU,SAAUhP,GACnB,OAA6B,MAAxBA,EAAKwP,iBAKT5Q,EAAUoB,EAAKwP,iBAERxP,EAAKwP,iBAMRjlC,EAAUy1B,EAAM,cACpBA,EAAOA,EAAKl1C,SAAWk1C,GAGjBt8C,EAAO48C,MAAO,GAAIN,EAAKp1B,YAC/B,IACE,SAAU/hB,EAAM5B,GAClBvD,EAAOuD,GAAI4B,GAAS,SAAUylD,EAAOz/C,GACpC,IAAIm7C,EAAUtmD,EAAO8V,IAAKtU,KAAM+B,EAAIqnD,GAuBpC,MArB0B,UAArBzlD,EAAKmD,OAAQ,KACjB6C,EAAWy/C,GAGPz/C,GAAgC,iBAAbA,IACvBm7C,EAAUtmD,EAAOsU,OAAQnJ,EAAUm7C,IAG/B9kD,KAAKH,OAAS,IAGZgqD,EAAkBlmD,IACvBnF,EAAO0kD,WAAY4B,GAIf8E,EAAazkD,KAAMxB,IACvBmhD,EAAQyF,WAIHvqD,KAAKi7C,UAAW6J,EACxB,CACD,IACA,IAAI0F,EAAgB,oBAsOpB,SAASC,EAAUp8C,GAClB,OAAOA,CACR,CACA,SAASq8C,EAASC,GACjB,MAAMA,CACP,CAEA,SAASC,EAAYtrD,EAAOurD,EAASC,EAAQC,GAC5C,IAAI77B,EAEJ,IAGM5vB,GAAS46C,EAAchrB,EAAS5vB,EAAM0rD,SAC1C97B,EAAO1e,KAAMlR,GAAQi/C,KAAMsM,GAAUpwC,KAAMqwC,GAGhCxrD,GAAS46C,EAAchrB,EAAS5vB,EAAMuF,MACjDqqB,EAAO1e,KAAMlR,EAAOurD,EAASC,GAQ7BD,EAAQ96C,WAAOiZ,EAAW,CAAE1pB,GAAQwH,MAAOikD,GAM7C,CAAE,MAAQzrD,GAITwrD,EAAO/6C,WAAOiZ,EAAW,CAAE1pB,GAC5B,CACD,CAzOAd,EAAOysD,UAAY,SAAU93C,GAI5BA,EAA6B,iBAAZA,EAlClB,SAAwBA,GACvB,IAAIkZ,EAAS,CAAC,EAId,OAHA7tB,EAAOkF,KAAMyP,EAAQrT,MAAO0qD,IAAmB,IAAI,SAAUj8C,EAAG28C,GAC/D7+B,EAAQ6+B,IAAS,CAClB,IACO7+B,CACR,CA6BE8+B,CAAeh4C,GACf3U,EAAOuG,OAAQ,CAAC,EAAGoO,GAEpB,IACCi4C,EAGAC,EAGAC,EAGAC,EAGAC,EAAO,GAGPC,EAAQ,GAGRC,GAAe,EAGfC,EAAO,WAQN,IALAJ,EAASA,GAAUp4C,EAAQgc,KAI3Bm8B,EAAQF,GAAS,EACTK,EAAM5rD,OAAQ6rD,GAAe,EAEpC,IADAL,EAASI,EAAM5b,UACL6b,EAAcF,EAAK3rD,SAGmC,IAA1D2rD,EAAME,GAAc37C,MAAOs7C,EAAQ,GAAKA,EAAQ,KACpDl4C,EAAQy4C,cAGRF,EAAcF,EAAK3rD,OACnBwrD,GAAS,GAMNl4C,EAAQk4C,SACbA,GAAS,GAGVD,GAAS,EAGJG,IAIHC,EADIH,EACG,GAIA,GAGV,EAGApkC,EAAO,CAGNxS,IAAK,WA2BJ,OA1BK+2C,IAGCH,IAAWD,IACfM,EAAcF,EAAK3rD,OAAS,EAC5B4rD,EAAMrkD,KAAMikD,IAGb,SAAW52C,EAAKd,GACfnV,EAAOkF,KAAMiQ,GAAM,SAAUpF,EAAGuuC,GAC1B5C,EAAY4C,GACV3pC,EAAQoU,QAAWN,EAAKtb,IAAKmxC,IAClC0O,EAAKpkD,KAAM01C,GAEDA,GAAOA,EAAIj9C,QAA4B,WAAlB86C,EAAQmC,IAGxCroC,EAAKqoC,EAEP,GACC,CAZF,CAYKjsC,WAEAw6C,IAAWD,GACfO,KAGK3rD,IACR,EAGAyF,OAAQ,WAYP,OAXAjH,EAAOkF,KAAMmN,WAAW,SAAUtC,EAAGuuC,GAEpC,IADA,IAAItxC,GACMA,EAAQhN,EAAO89C,QAASQ,EAAK0O,EAAMhgD,KAAa,GACzDggD,EAAKx7C,OAAQxE,EAAO,GAGfA,GAASkgD,GACbA,GAGH,IACO1rD,IACR,EAIA2L,IAAK,SAAU5J,GACd,OAAOA,EACNvD,EAAO89C,QAASv6C,EAAIypD,IAAU,EAC9BA,EAAK3rD,OAAS,CAChB,EAGA0T,MAAO,WAIN,OAHKi4C,IACJA,EAAO,IAEDxrD,IACR,EAKAwwC,QAAS,WAGR,OAFA+a,EAASE,EAAQ,GACjBD,EAAOH,EAAS,GACTrrD,IACR,EACA2U,SAAU,WACT,OAAQ62C,CACT,EAKAK,KAAM,WAKL,OAJAN,EAASE,EAAQ,GACXJ,GAAWD,IAChBI,EAAOH,EAAS,IAEVrrD,IACR,EACAurD,OAAQ,WACP,QAASA,CACV,EAGAO,SAAU,SAAU5kC,EAASvT,GAS5B,OARM43C,IAEL53C,EAAO,CAAEuT,GADTvT,EAAOA,GAAQ,IACQ7M,MAAQ6M,EAAK7M,QAAU6M,GAC9C83C,EAAMrkD,KAAMuM,GACNy3C,GACLO,KAGK3rD,IACR,EAGA2rD,KAAM,WAEL,OADA1kC,EAAK6kC,SAAU9rD,KAAM6Q,WACd7Q,IACR,EAGAsrD,MAAO,WACN,QAASA,CACV,GAGF,OAAOrkC,CACR,EA2CAzoB,EAAOuG,OAAQ,CAEdgnD,SAAU,SAAUrf,GACnB,IAAIsf,EAAS,CAIX,CAAE,SAAU,WAAYxtD,EAAOysD,UAAW,UACzCzsD,EAAOysD,UAAW,UAAY,GAC/B,CAAE,UAAW,OAAQzsD,EAAOysD,UAAW,eACtCzsD,EAAOysD,UAAW,eAAiB,EAAG,YACvC,CAAE,SAAU,OAAQzsD,EAAOysD,UAAW,eACrCzsD,EAAOysD,UAAW,eAAiB,EAAG,aAExCtjD,EAAQ,UACRqjD,EAAU,CACTrjD,MAAO,WACN,OAAOA,CACR,EACAskD,OAAQ,WAEP,OADAC,EAAS3N,KAAM1tC,WAAY4J,KAAM5J,WAC1B7Q,IACR,EACA,MAAS,SAAU+B,GAClB,OAAOipD,EAAQnmD,KAAM,KAAM9C,EAC5B,EAGAoqD,KAAM,WACL,IAAIC,EAAMv7C,UAEV,OAAOrS,EAAOutD,UAAU,SAAUM,GACjC7tD,EAAOkF,KAAMsoD,GAAQ,SAAU9O,EAAIoP,GAGlC,IAAIvqD,EAAKm4C,EAAYkS,EAAKE,EAAO,MAAWF,EAAKE,EAAO,IAKxDJ,EAAUI,EAAO,KAAO,WACvB,IAAIC,EAAWxqD,GAAMA,EAAGgO,MAAO/P,KAAM6Q,WAChC07C,GAAYrS,EAAYqS,EAASvB,SACrCuB,EAASvB,UACPzzB,SAAU80B,EAASG,QACnBjO,KAAM8N,EAASxB,SACfpwC,KAAM4xC,EAASvB,QAEjBuB,EAAUC,EAAO,GAAM,QACtBtsD,KACA+B,EAAK,CAAEwqD,GAAa17C,UAGvB,GACD,IACAu7C,EAAM,IACP,IAAIpB,SACL,EACAnmD,KAAM,SAAU4nD,EAAaC,EAAYC,GACxC,IAAIC,EAAW,EACf,SAAS/B,EAAS7Z,EAAOkb,EAAU5iC,EAASsqB,GAC3C,OAAO,WACN,IAAIiZ,EAAO7sD,KACV2T,EAAO9C,UACPi8C,EAAa,WACZ,IAAIP,EAAU1nD,EAKd,KAAKmsC,EAAQ4b,GAAb,CAQA,IAJAL,EAAWjjC,EAAQvZ,MAAO88C,EAAMl5C,MAIdu4C,EAASlB,UAC1B,MAAM,IAAIvX,UAAW,4BAOtB5uC,EAAO0nD,IAKgB,iBAAbA,GACY,mBAAbA,IACRA,EAAS1nD,KAGLq1C,EAAYr1C,GAGX+uC,EACJ/uC,EAAK2L,KACJ+7C,EACA1B,EAAS+B,EAAUV,EAAUzB,EAAU7W,GACvCiX,EAAS+B,EAAUV,EAAUxB,EAAS9W,KAOvCgZ,IAEA/nD,EAAK2L,KACJ+7C,EACA1B,EAAS+B,EAAUV,EAAUzB,EAAU7W,GACvCiX,EAAS+B,EAAUV,EAAUxB,EAAS9W,GACtCiX,EAAS+B,EAAUV,EAAUzB,EAC5ByB,EAASa,eASPzjC,IAAYmhC,IAChBoC,OAAO7jC,EACPrV,EAAO,CAAE44C,KAKR3Y,GAAWsY,EAASc,aAAeH,EAAMl5C,GA7D5C,CA+DD,EAGAs5C,EAAUrZ,EACTkZ,EACA,WACC,IACCA,GACD,CAAE,MAAQn/C,GAEJnP,EAAOutD,SAASmB,eACpB1uD,EAAOutD,SAASmB,cAAev/C,EAC9Bs/C,EAAQhrD,OAML+uC,EAAQ,GAAK4b,IAIZtjC,IAAYohC,IAChBmC,OAAO7jC,EACPrV,EAAO,CAAEhG,IAGVu+C,EAASiB,WAAYN,EAAMl5C,GAE7B,CACD,EAMGq9B,EACJic,KAKKzuD,EAAOutD,SAASqB,aACpBH,EAAQhrD,MAAQzD,EAAOutD,SAASqB,eAMrB5uD,EAAOutD,SAASsB,eAC3BJ,EAAQhrD,MAAQzD,EAAOutD,SAASsB,gBAEjClrD,EAAOqI,WAAYyiD,GAErB,CACD,CAEA,OAAOzuD,EAAOutD,UAAU,SAAUM,GAGjCL,EAAQ,GAAK,GAAIv3C,IAChBo2C,EACC,EACAwB,EACAnS,EAAYyS,GACXA,EACAlC,EACD4B,EAASU,aAKXf,EAAQ,GAAK,GAAIv3C,IAChBo2C,EACC,EACAwB,EACAnS,EAAYuS,GACXA,EACAhC,IAKHuB,EAAQ,GAAK,GAAIv3C,IAChBo2C,EACC,EACAwB,EACAnS,EAAYwS,GACXA,EACAhC,GAGJ,IAAIM,SACL,EAIAA,QAAS,SAAUzrD,GAClB,OAAc,MAAPA,EAAcf,EAAOuG,OAAQxF,EAAKyrD,GAAYA,CACtD,GAEDkB,EAAW,CAAC,EAkEb,OA/DA1tD,EAAOkF,KAAMsoD,GAAQ,SAAUhgD,EAAGsgD,GACjC,IAAId,EAAOc,EAAO,GACjBgB,EAAchB,EAAO,GAKtBtB,EAASsB,EAAO,IAAQd,EAAK/2C,IAGxB64C,GACJ9B,EAAK/2C,KACJ,WAIC9M,EAAQ2lD,CACT,GAIAtB,EAAQ,EAAIhgD,GAAK,GAAIwkC,QAIrBwb,EAAQ,EAAIhgD,GAAK,GAAIwkC,QAGrBwb,EAAQ,GAAK,GAAIH,KAGjBG,EAAQ,GAAK,GAAIH,MAOnBL,EAAK/2C,IAAK63C,EAAO,GAAIX,MAKrBO,EAAUI,EAAO,IAAQ,WAExB,OADAJ,EAAUI,EAAO,GAAM,QAAUtsD,OAASksD,OAAWljC,EAAYhpB,KAAM6Q,WAChE7Q,IACR,EAKAksD,EAAUI,EAAO,GAAM,QAAWd,EAAKM,QACxC,IAGAd,EAAQA,QAASkB,GAGZxf,GACJA,EAAKl8B,KAAM07C,EAAUA,GAIfA,CACR,EAGAqB,KAAM,SAAUC,GACf,IAGCC,EAAY58C,UAAUhR,OAGtBmM,EAAIyhD,EAGJC,EAAkB/8C,MAAO3E,GACzB2hD,EAAgB7mD,EAAM0J,KAAMK,WAG5B+8C,EAAUpvD,EAAOutD,WAGjB8B,EAAa,SAAU7hD,GACtB,OAAO,SAAU1M,GAChBouD,EAAiB1hD,GAAMhM,KACvB2tD,EAAe3hD,GAAM6E,UAAUhR,OAAS,EAAIiH,EAAM0J,KAAMK,WAAcvR,IAC5DmuD,GACTG,EAAQZ,YAAaU,EAAiBC,EAExC,CACD,EAGD,GAAKF,GAAa,IACjB7C,EAAY4C,EAAaI,EAAQrP,KAAMsP,EAAY7hD,IAAM6+C,QAAS+C,EAAQ9C,QACxE2C,GAGuB,YAApBG,EAAQjmD,SACZuyC,EAAYyT,EAAe3hD,IAAO2hD,EAAe3hD,GAAInH,OAErD,OAAO+oD,EAAQ/oD,OAKjB,KAAQmH,KACP4+C,EAAY+C,EAAe3hD,GAAK6hD,EAAY7hD,GAAK4hD,EAAQ9C,QAG1D,OAAO8C,EAAQ5C,SAChB,IAMD,IAAI8C,EAAc,yDAKlBtvD,EAAOutD,SAASmB,cAAgB,SAAUjrD,EAAO8rD,GAI3C5rD,EAAOsF,SAAWtF,EAAOsF,QAAQ4Z,MAAQpf,GAAS6rD,EAAY3oD,KAAMlD,EAAM0B,OAC9ExB,EAAOsF,QAAQ4Z,KAAM,8BAAgCpf,EAAMyR,QAC1DzR,EAAM+rD,MAAOD,EAEhB,EAKAvvD,EAAOyvD,eAAiB,SAAUhsD,GACjCE,EAAOqI,YAAY,WAClB,MAAMvI,CACP,GACD,EAMA,IAAIisD,EAAY1vD,EAAOutD,WAkDvB,SAASoC,IACR1vD,EAAS0mB,oBAAqB,mBAAoBgpC,GAClDhsD,EAAOgjB,oBAAqB,OAAQgpC,GACpC3vD,EAAOE,OACR,CApDAF,EAAOuD,GAAGrD,MAAQ,SAAUqD,GAY3B,OAVAmsD,EACErpD,KAAM9C,GAKNqsD,OAAO,SAAUnsD,GACjBzD,EAAOyvD,eAAgBhsD,EACxB,IAEMjC,IACR,EAEAxB,EAAOuG,OAAQ,CAGdg3C,SAAS,EAITsS,UAAW,EAGX3vD,MAAO,SAAU4vD,KAGF,IAATA,IAAkB9vD,EAAO6vD,UAAY7vD,EAAOu9C,WAKjDv9C,EAAOu9C,SAAU,GAGH,IAATuS,KAAmB9vD,EAAO6vD,UAAY,GAK3CH,EAAUlB,YAAavuD,EAAU,CAAED,IACpC,IAGDA,EAAOE,MAAMmG,KAAOqpD,EAAUrpD,KAaD,aAAxBpG,EAAS8vD,YACa,YAAxB9vD,EAAS8vD,aAA6B9vD,EAAS6d,gBAAgBkyC,SAGjErsD,EAAOqI,WAAYhM,EAAOE,QAK1BD,EAASymB,iBAAkB,mBAAoBipC,GAG/ChsD,EAAO+iB,iBAAkB,OAAQipC,IAQlC,IAAIM,GAAS,SAAUvT,EAAOn5C,EAAImH,EAAK5J,EAAOovD,EAAWC,EAAUxe,GAClE,IAAInkC,EAAI,EACP3G,EAAM61C,EAAMr7C,OACZ+uD,EAAc,MAAP1lD,EAGR,GAAuB,WAAlByxC,EAAQzxC,GAEZ,IAAM8C,KADN0iD,GAAY,EACDxlD,EACVulD,GAAQvT,EAAOn5C,EAAIiK,EAAG9C,EAAK8C,IAAK,EAAM2iD,EAAUxe,QAI3C,QAAennB,IAAV1pB,IACXovD,GAAY,EAENxU,EAAY56C,KACjB6wC,GAAM,GAGFye,IAGCze,GACJpuC,EAAGyO,KAAM0qC,EAAO57C,GAChByC,EAAK,OAIL6sD,EAAO7sD,EACPA,EAAK,SAAU+4C,EAAM+T,EAAMvvD,GAC1B,OAAOsvD,EAAKp+C,KAAMhS,EAAQs8C,GAAQx7C,EACnC,IAIGyC,GACJ,KAAQiK,EAAI3G,EAAK2G,IAChBjK,EACCm5C,EAAOlvC,GAAK9C,EAAKinC,EAChB7wC,EACAA,EAAMkR,KAAM0qC,EAAOlvC,GAAKA,EAAGjK,EAAIm5C,EAAOlvC,GAAK9C,KAMhD,OAAKwlD,EACGxT,EAIH0T,EACG7sD,EAAGyO,KAAM0qC,GAGV71C,EAAMtD,EAAIm5C,EAAO,GAAKhyC,GAAQylD,CACtC,EAIIG,GAAY,QACfC,GAAa,YAGd,SAASC,GAAYC,EAAMC,GAC1B,OAAOA,EAAO/zC,aACf,CAKA,SAASoG,GAAW4tC,GACnB,OAAOA,EAAO9sD,QAASysD,GAAW,OAAQzsD,QAAS0sD,GAAYC,GAChE,CACA,IAAII,GAAa,SAAUC,GAQ1B,OAA0B,IAAnBA,EAAM/nC,UAAqC,IAAnB+nC,EAAM/nC,YAAsB+nC,EAAM/nC,QAClE,EAKA,SAASgoC,KACRtvD,KAAK87C,QAAUt9C,EAAOs9C,QAAUwT,GAAKC,KACtC,CAEAD,GAAKC,IAAM,EAEXD,GAAKzgD,UAAY,CAEhB6yC,MAAO,SAAU2N,GAGhB,IAAI/vD,EAAQ+vD,EAAOrvD,KAAK87C,SA4BxB,OAzBMx8C,IACLA,EAAQ,CAAC,EAKJ8vD,GAAYC,KAIXA,EAAM/nC,SACV+nC,EAAOrvD,KAAK87C,SAAYx8C,EAMxBsB,OAAOguB,eAAgBygC,EAAOrvD,KAAK87C,QAAS,CAC3Cx8C,MAAOA,EACPkwD,cAAc,MAMXlwD,CACR,EACAgiB,IAAK,SAAU+tC,EAAO7tD,EAAMlC,GAC3B,IAAI2D,EACHy+C,EAAQ1hD,KAAK0hD,MAAO2N,GAIrB,GAAqB,iBAAT7tD,EACXkgD,EAAOngC,GAAW/f,IAAWlC,OAM7B,IAAM2D,KAAQzB,EACbkgD,EAAOngC,GAAWte,IAAWzB,EAAMyB,GAGrC,OAAOy+C,CACR,EACAx9C,IAAK,SAAUmrD,EAAOnmD,GACrB,YAAe8f,IAAR9f,EACNlJ,KAAK0hD,MAAO2N,GAGZA,EAAOrvD,KAAK87C,UAAauT,EAAOrvD,KAAK87C,SAAWv6B,GAAWrY,GAC7D,EACAulD,OAAQ,SAAUY,EAAOnmD,EAAK5J,GAa7B,YAAa0pB,IAAR9f,GACCA,GAAsB,iBAARA,QAAgC8f,IAAV1pB,EAElCU,KAAKkE,IAAKmrD,EAAOnmD,IASzBlJ,KAAKshB,IAAK+tC,EAAOnmD,EAAK5J,QAIL0pB,IAAV1pB,EAAsBA,EAAQ4J,EACtC,EACAzD,OAAQ,SAAU4pD,EAAOnmD,GACxB,IAAI8C,EACH01C,EAAQ2N,EAAOrvD,KAAK87C,SAErB,QAAe9yB,IAAV04B,EAAL,CAIA,QAAa14B,IAAR9f,EAAoB,CAkBxB8C,GAXC9C,EAJIyH,MAAMiK,QAAS1R,GAIbA,EAAIoL,IAAKiN,KAEfrY,EAAMqY,GAAWrY,MAIJw4C,EACZ,CAAEx4C,GACAA,EAAIpJ,MAAO0qD,IAAmB,IAG1B3qD,OAER,KAAQmM,YACA01C,EAAOx4C,EAAK8C,GAErB,OAGagd,IAAR9f,GAAqB1K,EAAO2iB,cAAeugC,MAM1C2N,EAAM/nC,SACV+nC,EAAOrvD,KAAK87C,cAAY9yB,SAEjBqmC,EAAOrvD,KAAK87C,SArCrB,CAwCD,EACA2T,QAAS,SAAUJ,GAClB,IAAI3N,EAAQ2N,EAAOrvD,KAAK87C,SACxB,YAAiB9yB,IAAV04B,IAAwBljD,EAAO2iB,cAAeugC,EACtD,GAED,IAAIgO,GAAW,IAAIJ,GAEfK,GAAW,IAAIL,GAcfM,GAAS,gCACZC,GAAa,SA2Bd,SAASC,GAAUhV,EAAM5xC,EAAK1H,GAC7B,IAAImC,EAIJ,QAAcqlB,IAATxnB,GAAwC,IAAlBs5C,EAAKxzB,SAI/B,GAHA3jB,EAAO,QAAUuF,EAAI7G,QAASwtD,GAAY,OAAQn+C,cAG7B,iBAFrBlQ,EAAOs5C,EAAKvoC,aAAc5O,IAEM,CAC/B,IACCnC,EApCJ,SAAkBA,GACjB,MAAc,SAATA,GAIS,UAATA,IAIS,SAATA,EACG,KAIHA,KAAUA,EAAO,IACbA,EAGJouD,GAAOzqD,KAAM3D,GACVuuD,KAAKC,MAAOxuD,GAGbA,EACR,CAaWyuD,CAASzuD,EACjB,CAAE,MAAQmM,GAAK,CAGfgiD,GAASruC,IAAKw5B,EAAM5xC,EAAK1H,EAC1B,MACCA,OAAOwnB,EAGT,OAAOxnB,CACR,CAEAhD,EAAOuG,OAAQ,CACd0qD,QAAS,SAAU3U,GAClB,OAAO6U,GAASF,QAAS3U,IAAU4U,GAASD,QAAS3U,EACtD,EAEAt5C,KAAM,SAAUs5C,EAAMn3C,EAAMnC,GAC3B,OAAOmuD,GAASlB,OAAQ3T,EAAMn3C,EAAMnC,EACrC,EAEAqiB,WAAY,SAAUi3B,EAAMn3C,GAC3BgsD,GAASlqD,OAAQq1C,EAAMn3C,EACxB,EAIAusD,MAAO,SAAUpV,EAAMn3C,EAAMnC,GAC5B,OAAOkuD,GAASjB,OAAQ3T,EAAMn3C,EAAMnC,EACrC,EAEA2uD,YAAa,SAAUrV,EAAMn3C,GAC5B+rD,GAASjqD,OAAQq1C,EAAMn3C,EACxB,IAGDnF,EAAOuD,GAAGgD,OAAQ,CACjBvD,KAAM,SAAU0H,EAAK5J,GACpB,IAAI0M,EAAGrI,EAAMnC,EACZs5C,EAAO96C,KAAM,GACb6nB,EAAQizB,GAAQA,EAAKp5B,WAGtB,QAAasH,IAAR9f,EAAoB,CACxB,GAAKlJ,KAAKH,SACT2B,EAAOmuD,GAASzrD,IAAK42C,GAEE,IAAlBA,EAAKxzB,WAAmBooC,GAASxrD,IAAK42C,EAAM,iBAAmB,CAEnE,IADA9uC,EAAI6b,EAAMhoB,OACFmM,KAIF6b,EAAO7b,IAEsB,KADjCrI,EAAOkkB,EAAO7b,GAAIrI,MACRoP,QAAS,WAClBpP,EAAO4d,GAAW5d,EAAKmD,MAAO,IAC9BgpD,GAAUhV,EAAMn3C,EAAMnC,EAAMmC,KAI/B+rD,GAASpuC,IAAKw5B,EAAM,gBAAgB,EACrC,CAGD,OAAOt5C,CACR,CAGA,MAAoB,iBAAR0H,EACJlJ,KAAK0D,MAAM,WACjBisD,GAASruC,IAAKthB,KAAMkJ,EACrB,IAGMulD,GAAQzuD,MAAM,SAAUV,GAC9B,IAAIkC,EAOJ,GAAKs5C,QAAkB9xB,IAAV1pB,EAKZ,YAAc0pB,KADdxnB,EAAOmuD,GAASzrD,IAAK42C,EAAM5xC,UAQb8f,KADdxnB,EAAOsuD,GAAUhV,EAAM5xC,IALf1H,OAWR,EAIDxB,KAAK0D,MAAM,WAGVisD,GAASruC,IAAKthB,KAAMkJ,EAAK5J,EAC1B,GACD,GAAG,KAAMA,EAAOuR,UAAUhR,OAAS,EAAG,MAAM,EAC7C,EAEAgkB,WAAY,SAAU3a,GACrB,OAAOlJ,KAAK0D,MAAM,WACjBisD,GAASlqD,OAAQzF,KAAMkJ,EACxB,GACD,IAID1K,EAAOuG,OAAQ,CACd0mD,MAAO,SAAU3Q,EAAM75C,EAAMO,GAC5B,IAAIiqD,EAEJ,GAAK3Q,EAYJ,OAXA75C,GAASA,GAAQ,MAAS,QAC1BwqD,EAAQiE,GAASxrD,IAAK42C,EAAM75C,GAGvBO,KACEiqD,GAAS96C,MAAMiK,QAASpZ,GAC7BiqD,EAAQiE,GAASjB,OAAQ3T,EAAM75C,EAAMzC,EAAO69C,UAAW76C,IAEvDiqD,EAAMrkD,KAAM5F,IAGPiqD,GAAS,EAElB,EAEA2E,QAAS,SAAUtV,EAAM75C,GACxBA,EAAOA,GAAQ,KAEf,IAAIwqD,EAAQjtD,EAAOitD,MAAO3Q,EAAM75C,GAC/BovD,EAAc5E,EAAM5rD,OACpBkC,EAAK0pD,EAAM5b,QACXygB,EAAQ9xD,EAAO+xD,YAAazV,EAAM75C,GAMvB,eAAPc,IACJA,EAAK0pD,EAAM5b,QACXwgB,KAGItuD,IAIU,OAATd,GACJwqD,EAAM76C,QAAS,qBAIT0/C,EAAMpgB,KACbnuC,EAAGyO,KAAMsqC,GApBF,WACNt8C,EAAO4xD,QAAStV,EAAM75C,EACvB,GAkBqBqvD,KAGhBD,GAAeC,GACpBA,EAAM/8C,MAAMo4C,MAEd,EAGA4E,YAAa,SAAUzV,EAAM75C,GAC5B,IAAIiI,EAAMjI,EAAO,aACjB,OAAOyuD,GAASxrD,IAAK42C,EAAM5xC,IAASwmD,GAASjB,OAAQ3T,EAAM5xC,EAAK,CAC/DqK,MAAO/U,EAAOysD,UAAW,eAAgBx2C,KAAK,WAC7Ci7C,GAASjqD,OAAQq1C,EAAM,CAAE75C,EAAO,QAASiI,GAC1C,KAEF,IAGD1K,EAAOuD,GAAGgD,OAAQ,CACjB0mD,MAAO,SAAUxqD,EAAMO,GACtB,IAAIgvD,EAAS,EAQb,MANqB,iBAATvvD,IACXO,EAAOP,EACPA,EAAO,KACPuvD,KAGI3/C,UAAUhR,OAAS2wD,EAChBhyD,EAAOitD,MAAOzrD,KAAM,GAAKiB,QAGjB+nB,IAATxnB,EACNxB,KACAA,KAAK0D,MAAM,WACV,IAAI+nD,EAAQjtD,EAAOitD,MAAOzrD,KAAMiB,EAAMO,GAGtChD,EAAO+xD,YAAavwD,KAAMiB,GAEZ,OAATA,GAAgC,eAAfwqD,EAAO,IAC5BjtD,EAAO4xD,QAASpwD,KAAMiB,EAExB,GACF,EACAmvD,QAAS,SAAUnvD,GAClB,OAAOjB,KAAK0D,MAAM,WACjBlF,EAAO4xD,QAASpwD,KAAMiB,EACvB,GACD,EACAwvD,WAAY,SAAUxvD,GACrB,OAAOjB,KAAKyrD,MAAOxqD,GAAQ,KAAM,GAClC,EAIA+pD,QAAS,SAAU/pD,EAAM1B,GACxB,IAAImxD,EACHC,EAAQ,EACRC,EAAQpyD,EAAOutD,WACfhT,EAAW/4C,KACXgM,EAAIhM,KAAKH,OACTgrD,EAAU,aACC8F,GACTC,EAAM5D,YAAajU,EAAU,CAAEA,GAEjC,EAQD,IANqB,iBAAT93C,IACX1B,EAAM0B,EACNA,OAAO+nB,GAER/nB,EAAOA,GAAQ,KAEP+K,MACP0kD,EAAMhB,GAASxrD,IAAK60C,EAAU/sC,GAAK/K,EAAO,gBAC9ByvD,EAAIn9C,QACfo9C,IACAD,EAAIn9C,MAAMkB,IAAKo2C,IAIjB,OADAA,IACO+F,EAAM5F,QAASzrD,EACvB,IAED,IAAIsxD,GAAO,sCAA0CC,OAEjDC,GAAU,IAAI7d,OAAQ,iBAAmB2d,GAAO,cAAe,KAG/DG,GAAY,CAAE,MAAO,QAAS,SAAU,QAExC10C,GAAkB7d,EAAS6d,gBAI1B20C,GAAa,SAAUnW,GACzB,OAAOt8C,EAAO+K,SAAUuxC,EAAK6B,cAAe7B,EAC7C,EACAoW,GAAW,CAAEA,UAAU,GAOnB50C,GAAgB+2B,cACpB4d,GAAa,SAAUnW,GACtB,OAAOt8C,EAAO+K,SAAUuxC,EAAK6B,cAAe7B,IAC3CA,EAAKzH,YAAa6d,MAAepW,EAAK6B,aACxC,GAEF,IAAIwU,GAAqB,SAAUrW,EAAMrvC,GAOvC,MAA8B,UAH9BqvC,EAAOrvC,GAAMqvC,GAGDlpC,MAAMqE,SACM,KAAvB6kC,EAAKlpC,MAAMqE,SAMXg7C,GAAYnW,IAEsB,SAAlCt8C,EAAOya,IAAK6hC,EAAM,UACpB,EAID,SAASsW,GAAWtW,EAAM73C,EAAMouD,EAAYC,GAC3C,IAAIC,EAAUpgB,EACbqgB,EAAgB,GAChBC,EAAeH,EACd,WACC,OAAOA,EAAMtH,KACd,EACA,WACC,OAAOxrD,EAAOya,IAAK6hC,EAAM73C,EAAM,GAChC,EACDyuD,EAAUD,IACVE,EAAON,GAAcA,EAAY,KAAS7yD,EAAOozD,UAAW3uD,GAAS,GAAK,MAG1E4uD,EAAgB/W,EAAKxzB,WAClB9oB,EAAOozD,UAAW3uD,IAAmB,OAAT0uD,IAAkBD,IAChDX,GAAQ5P,KAAM3iD,EAAOya,IAAK6hC,EAAM73C,IAElC,GAAK4uD,GAAiBA,EAAe,KAAQF,EAAO,CAYnD,IARAD,GAAoB,EAGpBC,EAAOA,GAAQE,EAAe,GAG9BA,GAAiBH,GAAW,EAEpBF,KAIPhzD,EAAOoT,MAAOkpC,EAAM73C,EAAM4uD,EAAgBF,IACnC,EAAIxgB,IAAY,GAAMA,EAAQsgB,IAAiBC,GAAW,MAAW,IAC3EF,EAAgB,GAEjBK,GAAgC1gB,EAIjC0gB,GAAgC,EAChCrzD,EAAOoT,MAAOkpC,EAAM73C,EAAM4uD,EAAgBF,GAG1CN,EAAaA,GAAc,EAC5B,CAeA,OAbKA,IACJQ,GAAiBA,IAAkBH,GAAW,EAG9CH,EAAWF,EAAY,GACtBQ,GAAkBR,EAAY,GAAM,GAAMA,EAAY,IACrDA,EAAY,GACTC,IACJA,EAAMK,KAAOA,EACbL,EAAMtqB,MAAQ6qB,EACdP,EAAMpyD,IAAMqyD,IAGPA,CACR,CAGA,IAAIO,GAAoB,CAAC,EAEzB,SAASC,GAAmBjX,GAC3B,IAAIwM,EACHtiC,EAAM81B,EAAK6B,cACXt3B,EAAWy1B,EAAKz1B,SAChBpP,EAAU67C,GAAmBzsC,GAE9B,OAAKpP,IAILqxC,EAAOtiC,EAAIpN,KAAK0M,YAAaU,EAAIlQ,cAAeuQ,IAChDpP,EAAUzX,EAAOya,IAAKquC,EAAM,WAE5BA,EAAKz7B,WAAWrH,YAAa8iC,GAEZ,SAAZrxC,IACJA,EAAU,SAEX67C,GAAmBzsC,GAAapP,EAEzBA,EACR,CAEA,SAAS+7C,GAAUjZ,EAAUj6C,GAO5B,IANA,IAAImX,EAAS6kC,EACZmX,EAAS,GACTzmD,EAAQ,EACR3L,EAASk5C,EAASl5C,OAGX2L,EAAQ3L,EAAQ2L,KACvBsvC,EAAO/B,EAAUvtC,IACNoG,QAIXqE,EAAU6kC,EAAKlpC,MAAMqE,QAChBnX,GAKa,SAAZmX,IACJg8C,EAAQzmD,GAAUkkD,GAASxrD,IAAK42C,EAAM,YAAe,KAC/CmX,EAAQzmD,KACbsvC,EAAKlpC,MAAMqE,QAAU,KAGK,KAAvB6kC,EAAKlpC,MAAMqE,SAAkBk7C,GAAoBrW,KACrDmX,EAAQzmD,GAAUumD,GAAmBjX,KAGrB,SAAZ7kC,IACJg8C,EAAQzmD,GAAU,OAGlBkkD,GAASpuC,IAAKw5B,EAAM,UAAW7kC,KAMlC,IAAMzK,EAAQ,EAAGA,EAAQ3L,EAAQ2L,IACR,MAAnBymD,EAAQzmD,KACZutC,EAAUvtC,GAAQoG,MAAMqE,QAAUg8C,EAAQzmD,IAI5C,OAAOutC,CACR,CAEAv6C,EAAOuD,GAAGgD,OAAQ,CACjBjG,KAAM,WACL,OAAOkzD,GAAUhyD,MAAM,EACxB,EACAO,KAAM,WACL,OAAOyxD,GAAUhyD,KAClB,EACAgH,OAAQ,SAAUW,GACjB,MAAsB,kBAAVA,EACJA,EAAQ3H,KAAKlB,OAASkB,KAAKO,OAG5BP,KAAK0D,MAAM,WACZytD,GAAoBnxD,MACxBxB,EAAQwB,MAAOlB,OAEfN,EAAQwB,MAAOO,MAEjB,GACD,IAED,IAUEmL,GACAlJ,GAXE0vD,GAAiB,wBAEjBC,GAAW,iCAEXC,GAAc,qCAMhB1mD,GADcjN,EAAS4zD,yBACR/tC,YAAa7lB,EAASqW,cAAe,SACpDtS,GAAQ/D,EAASqW,cAAe,UAM3BtC,aAAc,OAAQ,SAC5BhQ,GAAMgQ,aAAc,UAAW,WAC/BhQ,GAAMgQ,aAAc,OAAQ,KAE5B9G,GAAI4Y,YAAa9hB,IAIjBspC,EAAQwmB,WAAa5mD,GAAIqxB,WAAW,GAAOA,WAAW,GAAO2nB,UAAUY,QAIvE55C,GAAIwK,UAAY,yBAChB41B,EAAQymB,iBAAmB7mD,GAAIqxB,WAAW,GAAO2nB,UAAU8N,aAK3D9mD,GAAIwK,UAAY,oBAChB41B,EAAQ93B,SAAWtI,GAAIg5C,UAKxB,IAAI+N,GAAU,CAKbC,MAAO,CAAE,EAAG,UAAW,YACvBC,IAAK,CAAE,EAAG,oBAAqB,uBAC/BC,GAAI,CAAE,EAAG,iBAAkB,oBAC3BC,GAAI,CAAE,EAAG,qBAAsB,yBAE/BC,SAAU,CAAE,EAAG,GAAI,KAYpB,SAASC,GAAQ7rC,EAAS07B,GAIzB,IAAIzH,EAYJ,OATCA,OAD4C,IAAjCj0B,EAAQvB,qBACbuB,EAAQvB,qBAAsBi9B,GAAO,UAEI,IAA7B17B,EAAQzN,iBACpByN,EAAQzN,iBAAkBmpC,GAAO,KAGjC,QAGM55B,IAAR45B,GAAqBA,GAAOv9B,EAAU6B,EAAS07B,GAC5CpkD,EAAO48C,MAAO,CAAEl0B,GAAWi0B,GAG5BA,CACR,CAIA,SAAS6X,GAAe9X,EAAO+X,GAI9B,IAHA,IAAIjnD,EAAI,EACPiD,EAAIisC,EAAMr7C,OAEHmM,EAAIiD,EAAGjD,IACd0jD,GAASpuC,IACR45B,EAAOlvC,GACP,cACCinD,GAAevD,GAASxrD,IAAK+uD,EAAajnD,GAAK,cAGnD,CA7CAymD,GAAQS,MAAQT,GAAQU,MAAQV,GAAQW,SAAWX,GAAQY,QAAUZ,GAAQC,MAC7ED,GAAQa,GAAKb,GAAQI,GAGf/mB,EAAQ93B,SACby+C,GAAQc,SAAWd,GAAQz+C,OAAS,CAAE,EAAG,+BAAgC,cA2C1E,IAAIw/C,GAAQ,YAEZ,SAASC,GAAevY,EAAOh0B,EAASwsC,EAASp4C,EAAWq4C,GAO3D,IANA,IAAI7Y,EAAM4V,EAAK9N,EAAKgR,EAAMC,EAAUjsC,EACnCksC,EAAW5sC,EAAQmrC,yBACnB0B,EAAQ,GACR/nD,EAAI,EACJiD,EAAIisC,EAAMr7C,OAEHmM,EAAIiD,EAAGjD,IAGd,IAFA8uC,EAAOI,EAAOlvC,KAEQ,IAAT8uC,EAGZ,GAAwB,WAAnBH,EAAQG,GAIZt8C,EAAO48C,MAAO2Y,EAAOjZ,EAAKxzB,SAAW,CAAEwzB,GAASA,QAG1C,GAAM0Y,GAAMruD,KAAM21C,GAIlB,CAUN,IATA4V,EAAMA,GAAOoD,EAASxvC,YAAa4C,EAAQpS,cAAe,QAG1D8tC,GAAQuP,GAAShR,KAAMrG,IAAU,CAAE,GAAI,KAAQ,GAAIppC,cACnDkiD,EAAOnB,GAAS7P,IAAS6P,GAAQK,SACjCpC,EAAIx6C,UAAY09C,EAAM,GAAMp1D,EAAOw1D,cAAelZ,GAAS8Y,EAAM,GAGjEhsC,EAAIgsC,EAAM,GACFhsC,KACP8oC,EAAMA,EAAIhM,UAKXlmD,EAAO48C,MAAO2Y,EAAOrD,EAAIhrC,aAGzBgrC,EAAMoD,EAAS3oC,YAGXpR,YAAc,EACnB,MA1BCg6C,EAAM3sD,KAAM8f,EAAQ+sC,eAAgBnZ,IAkCvC,IAHAgZ,EAAS/5C,YAAc,GAEvB/N,EAAI,EACM8uC,EAAOiZ,EAAO/nD,MAGvB,GAAKsP,GAAa9c,EAAO89C,QAASxB,EAAMx/B,IAAe,EACjDq4C,GACJA,EAAQvsD,KAAM0zC,QAgBhB,GAXA+Y,EAAW5C,GAAYnW,GAGvB4V,EAAMqC,GAAQe,EAASxvC,YAAaw2B,GAAQ,UAGvC+Y,GACJb,GAAetC,GAIXgD,EAEJ,IADA9rC,EAAI,EACMkzB,EAAO4V,EAAK9oC,MAChBwqC,GAAYjtD,KAAM21C,EAAK75C,MAAQ,KACnCyyD,EAAQtsD,KAAM0zC,GAMlB,OAAOgZ,CACR,CAGA,IAAII,GAAiB,sBAErB,SAASC,KACR,OAAO,CACR,CAEA,SAASC,KACR,OAAO,CACR,CAEA,SAASr0D,GAAI+6C,EAAMuZ,EAAO1qD,EAAUnI,EAAMO,EAAI8vC,GAC7C,IAAIyiB,EAAQrzD,EAGZ,GAAsB,iBAAVozD,EAAqB,CAShC,IAAMpzD,IANmB,iBAAb0I,IAGXnI,EAAOA,GAAQmI,EACfA,OAAWqf,GAEEqrC,EACbt0D,GAAI+6C,EAAM75C,EAAM0I,EAAUnI,EAAM6yD,EAAOpzD,GAAQ4wC,GAEhD,OAAOiJ,CACR,CAqBA,GAnBa,MAARt5C,GAAsB,MAANO,GAGpBA,EAAK4H,EACLnI,EAAOmI,OAAWqf,GACD,MAANjnB,IACc,iBAAb4H,GAGX5H,EAAKP,EACLA,OAAOwnB,IAIPjnB,EAAKP,EACLA,EAAOmI,EACPA,OAAWqf,KAGD,IAAPjnB,EACJA,EAAKqyD,QACC,IAAMryD,EACZ,OAAO+4C,EAeR,OAZa,IAARjJ,IACJyiB,EAASvyD,EACTA,EAAK,SAAUtB,GAId,OADAjC,IAASqZ,IAAKpX,GACP6zD,EAAOvkD,MAAO/P,KAAM6Q,UAC5B,EAGA9O,EAAGg7C,KAAOuX,EAAOvX,OAAUuX,EAAOvX,KAAOv+C,EAAOu+C,SAE1CjC,EAAKp3C,MAAM,WACjBlF,EAAOiC,MAAMgU,IAAKzU,KAAMq0D,EAAOtyD,EAAIP,EAAMmI,EAC1C,GACD,CA6aA,SAAS4qD,GAAgB9oD,EAAIxK,EAAMuzD,GAG5BA,GAQN9E,GAASpuC,IAAK7V,EAAIxK,GAAM,GACxBzC,EAAOiC,MAAMgU,IAAKhJ,EAAIxK,EAAM,CAC3Bu7C,WAAW,EACXlzB,QAAS,SAAU7oB,GAClB,IAAIsjD,EACH0Q,EAAQ/E,GAASxrD,IAAKlE,KAAMiB,GAE7B,GAAyB,EAAlBR,EAAMi0D,WAAmB10D,KAAMiB,IAGrC,GAAMwzD,GA4BQj2D,EAAOiC,MAAMmzC,QAAS3yC,IAAU,CAAC,GAAI6yC,cAClDrzC,EAAMqV,uBAhBN,GARA2+C,EAAQ3tD,EAAM0J,KAAMK,WACpB6+C,GAASpuC,IAAKthB,KAAMiB,EAAMwzD,GAG1Bz0D,KAAMiB,KACN8iD,EAAS2L,GAASxrD,IAAKlE,KAAMiB,GAC7ByuD,GAASpuC,IAAKthB,KAAMiB,GAAM,GAErBwzD,IAAU1Q,EAMd,OAHAtjD,EAAMimC,2BACNjmC,EAAMC,iBAECqjD,OAeE0Q,IAGX/E,GAASpuC,IAAKthB,KAAMiB,EAAMzC,EAAOiC,MAAM4C,QACtCoxD,EAAO,GACPA,EAAM3tD,MAAO,GACb9G,OAWDS,EAAMqV,kBACNrV,EAAMk0D,8BAAgCR,GAExC,UAvEkCnrC,IAA7B0mC,GAASxrD,IAAKuH,EAAIxK,IACtBzC,EAAOiC,MAAMgU,IAAKhJ,EAAIxK,EAAMkzD,GAwE/B,CApfA31D,EAAOiC,MAAQ,CAEd84C,OAAQ,CAAC,EAET9kC,IAAK,SAAUqmC,EAAMuZ,EAAO/qC,EAAS9nB,EAAMmI,GAE1C,IAAIirD,EAAaC,EAAanE,EAC7BznC,EAAQvb,EAAGqmC,EACXH,EAASvqB,EAAUpoB,EAAM6zD,EAAYC,EACrCC,EAAWtF,GAASxrD,IAAK42C,GAG1B,GAAMsU,GAAYtU,GAuClB,IAlCKxxB,EAAQA,UAEZA,GADAsrC,EAActrC,GACQA,QACtB3f,EAAWirD,EAAYjrD,UAKnBA,GACJnL,EAAOQ,KAAKgkD,gBAAiB1mC,GAAiB3S,GAIzC2f,EAAQyzB,OACbzzB,EAAQyzB,KAAOv+C,EAAOu+C,SAIf9zB,EAAS+rC,EAAS/rC,UACzBA,EAAS+rC,EAAS/rC,OAASroB,OAAOuvB,OAAQ,QAEnC0kC,EAAcG,EAAS/lB,UAC9B4lB,EAAcG,EAAS/lB,OAAS,SAAUthC,GAIzC,YAAyB,IAAXnP,GAA0BA,EAAOiC,MAAMw0D,YAActnD,EAAE1M,KACpEzC,EAAOiC,MAAMy0D,SAASnlD,MAAO+qC,EAAMjqC,gBAAcmY,CACnD,GAKDtb,GADA2mD,GAAUA,GAAS,IAAKv0D,MAAO0qD,IAAmB,CAAE,KAC1C3qD,OACF6N,KAEPzM,EAAO8zD,GADPrE,EAAMwD,GAAe/S,KAAMkT,EAAO3mD,KAAS,IACpB,GACvBonD,GAAepE,EAAK,IAAO,IAAKj/C,MAAO,KAAMsC,OAGvC9S,IAKN2yC,EAAUp1C,EAAOiC,MAAMmzC,QAAS3yC,IAAU,CAAC,EAG3CA,GAAS0I,EAAWiqC,EAAQE,aAAeF,EAAQC,WAAc5yC,EAGjE2yC,EAAUp1C,EAAOiC,MAAMmzC,QAAS3yC,IAAU,CAAC,EAG3C8yC,EAAYv1C,EAAOuG,OAAQ,CAC1B9D,KAAMA,EACN8zD,SAAUA,EACVvzD,KAAMA,EACN8nB,QAASA,EACTyzB,KAAMzzB,EAAQyzB,KACdpzC,SAAUA,EACVo2C,aAAcp2C,GAAYnL,EAAOukD,KAAKjjD,MAAMigD,aAAa56C,KAAMwE,GAC/D6yC,UAAWsY,EAAW7hD,KAAM,MAC1B2hD,IAGKvrC,EAAWJ,EAAQhoB,OAC1BooB,EAAWJ,EAAQhoB,GAAS,IACnBk0D,cAAgB,EAGnBvhB,EAAQwhB,QACiD,IAA9DxhB,EAAQwhB,MAAM5kD,KAAMsqC,EAAMt5C,EAAMszD,EAAYD,IAEvC/Z,EAAK51B,kBACT41B,EAAK51B,iBAAkBjkB,EAAM4zD,IAK3BjhB,EAAQn/B,MACZm/B,EAAQn/B,IAAIjE,KAAMsqC,EAAM/G,GAElBA,EAAUzqB,QAAQyzB,OACvBhJ,EAAUzqB,QAAQyzB,KAAOzzB,EAAQyzB,OAK9BpzC,EACJ0f,EAASrZ,OAAQqZ,EAAS8rC,gBAAiB,EAAGphB,GAE9C1qB,EAASjiB,KAAM2sC,GAIhBv1C,EAAOiC,MAAM84C,OAAQt4C,IAAS,EAGhC,EAGAwE,OAAQ,SAAUq1C,EAAMuZ,EAAO/qC,EAAS3f,EAAU0rD,GAEjD,IAAIztC,EAAG0tC,EAAW5E,EACjBznC,EAAQvb,EAAGqmC,EACXH,EAASvqB,EAAUpoB,EAAM6zD,EAAYC,EACrCC,EAAWtF,GAASD,QAAS3U,IAAU4U,GAASxrD,IAAK42C,GAEtD,GAAMka,IAAe/rC,EAAS+rC,EAAS/rC,QAAvC,CAOA,IADAvb,GADA2mD,GAAUA,GAAS,IAAKv0D,MAAO0qD,IAAmB,CAAE,KAC1C3qD,OACF6N,KAMP,GAJAzM,EAAO8zD,GADPrE,EAAMwD,GAAe/S,KAAMkT,EAAO3mD,KAAS,IACpB,GACvBonD,GAAepE,EAAK,IAAO,IAAKj/C,MAAO,KAAMsC,OAGvC9S,EAAN,CAeA,IARA2yC,EAAUp1C,EAAOiC,MAAMmzC,QAAS3yC,IAAU,CAAC,EAE3CooB,EAAWJ,EADXhoB,GAAS0I,EAAWiqC,EAAQE,aAAeF,EAAQC,WAAc5yC,IACpC,GAC7ByvD,EAAMA,EAAK,IACV,IAAIxd,OAAQ,UAAY4hB,EAAW7hD,KAAM,iBAAoB,WAG9DqiD,EAAY1tC,EAAIyB,EAASxpB,OACjB+nB,KACPmsB,EAAY1qB,EAAUzB,IAEfytC,GAAeN,IAAahhB,EAAUghB,UACzCzrC,GAAWA,EAAQyzB,OAAShJ,EAAUgJ,MACtC2T,IAAOA,EAAIvrD,KAAM4uC,EAAUyI,YAC3B7yC,GAAYA,IAAaoqC,EAAUpqC,WACxB,OAAbA,IAAqBoqC,EAAUpqC,YAChC0f,EAASrZ,OAAQ4X,EAAG,GAEfmsB,EAAUpqC,UACd0f,EAAS8rC,gBAELvhB,EAAQnuC,QACZmuC,EAAQnuC,OAAO+K,KAAMsqC,EAAM/G,IAOzBuhB,IAAcjsC,EAASxpB,SACrB+zC,EAAQ2hB,WACkD,IAA/D3hB,EAAQ2hB,SAAS/kD,KAAMsqC,EAAMga,EAAYE,EAAS/lB,SAElDzwC,EAAOg3D,YAAa1a,EAAM75C,EAAM+zD,EAAS/lB,eAGnChmB,EAAQhoB,GAtChB,MAJC,IAAMA,KAAQgoB,EACbzqB,EAAOiC,MAAMgF,OAAQq1C,EAAM75C,EAAOozD,EAAO3mD,GAAK4b,EAAS3f,GAAU,GA8C/DnL,EAAO2iB,cAAe8H,IAC1BymC,GAASjqD,OAAQq1C,EAAM,gBA5DxB,CA8DD,EAEAoa,SAAU,SAAUO,GAEnB,IAAIzpD,EAAG4b,EAAGuzB,EAAK2J,EAAS/Q,EAAW2hB,EAClC/hD,EAAO,IAAIhD,MAAOE,UAAUhR,QAG5BY,EAAQjC,EAAOiC,MAAMk1D,IAAKF,GAE1BpsC,GACCqmC,GAASxrD,IAAKlE,KAAM,WAAcY,OAAOuvB,OAAQ,OAC/C1vB,EAAMQ,OAAU,GACnB2yC,EAAUp1C,EAAOiC,MAAMmzC,QAASnzC,EAAMQ,OAAU,CAAC,EAKlD,IAFA0S,EAAM,GAAMlT,EAENuL,EAAI,EAAGA,EAAI6E,UAAUhR,OAAQmM,IAClC2H,EAAM3H,GAAM6E,UAAW7E,GAMxB,GAHAvL,EAAMm1D,eAAiB51D,MAGlB4zC,EAAQiiB,cAA2D,IAA5CjiB,EAAQiiB,YAAYrlD,KAAMxQ,KAAMS,GAA5D,CASA,IAJAi1D,EAAel3D,EAAOiC,MAAM4oB,SAAS7Y,KAAMxQ,KAAMS,EAAO4oB,GAGxDrd,EAAI,GACM84C,EAAU4Q,EAAc1pD,QAAYvL,EAAMq1D,wBAInD,IAHAr1D,EAAMw3C,cAAgB6M,EAAQhK,KAE9BlzB,EAAI,GACMmsB,EAAY+Q,EAAQz7B,SAAUzB,QACtCnnB,EAAMk0D,iCAIDl0D,EAAMs1D,aAAsC,IAAxBhiB,EAAUyI,YACnC/7C,EAAMs1D,WAAW5wD,KAAM4uC,EAAUyI,aAEjC/7C,EAAMszC,UAAYA,EAClBtzC,EAAMe,KAAOuyC,EAAUvyC,UAKVwnB,KAHbmyB,IAAU38C,EAAOiC,MAAMmzC,QAASG,EAAUghB,WAAc,CAAC,GAAI9lB,QAC5D8E,EAAUzqB,SAAUvZ,MAAO+0C,EAAQhK,KAAMnnC,MAGT,KAAzBlT,EAAMsjD,OAAS5I,KACrB16C,EAAMC,iBACND,EAAMqV,oBAYX,OAJK89B,EAAQoiB,cACZpiB,EAAQoiB,aAAaxlD,KAAMxQ,KAAMS,GAG3BA,EAAMsjD,MAxCb,CAyCD,EAEA16B,SAAU,SAAU5oB,EAAO4oB,GAC1B,IAAIrd,EAAG+nC,EAAW8J,EAAKoY,EAAiBC,EACvCR,EAAe,GACfP,EAAgB9rC,EAAS8rC,cACzBnL,EAAMvpD,EAAM2I,OAGb,GAAK+rD,GAIJnL,EAAI1iC,YAOc,UAAf7mB,EAAMQ,MAAoBR,EAAM8/B,QAAU,GAE7C,KAAQypB,IAAQhqD,KAAMgqD,EAAMA,EAAIn+B,YAAc7rB,KAI7C,GAAsB,IAAjBgqD,EAAI1iC,WAAoC,UAAf7mB,EAAMQ,OAAqC,IAAjB+oD,EAAIr1C,UAAsB,CAGjF,IAFAshD,EAAkB,GAClBC,EAAmB,CAAC,EACdlqD,EAAI,EAAGA,EAAImpD,EAAenpD,SAMEgd,IAA5BktC,EAFLrY,GAHA9J,EAAY1qB,EAAUrd,IAGNrC,SAAW,OAG1BusD,EAAkBrY,GAAQ9J,EAAUgM,aACnCvhD,EAAQq/C,EAAK79C,MAAOwL,MAAOw+C,IAAS,EACpCxrD,EAAOQ,KAAM6+C,EAAK79C,KAAM,KAAM,CAAEgqD,IAAQnqD,QAErCq2D,EAAkBrY,IACtBoY,EAAgB7uD,KAAM2sC,GAGnBkiB,EAAgBp2D,QACpB61D,EAAatuD,KAAM,CAAE0zC,KAAMkP,EAAK3gC,SAAU4sC,GAE5C,CAUF,OALAjM,EAAMhqD,KACDm1D,EAAgB9rC,EAASxpB,QAC7B61D,EAAatuD,KAAM,CAAE0zC,KAAMkP,EAAK3gC,SAAUA,EAASviB,MAAOquD,KAGpDO,CACR,EAEAS,QAAS,SAAUxyD,EAAMyyD,GACxBx1D,OAAOguB,eAAgBpwB,EAAO0a,MAAMrK,UAAWlL,EAAM,CACpDsqB,YAAY,EACZuhC,cAAc,EAEdtrD,IAAKg2C,EAAYkc,GAChB,WACC,GAAKp2D,KAAK+V,cACT,OAAOqgD,EAAMp2D,KAAK+V,cAEpB,EACA,WACC,GAAK/V,KAAK+V,cACT,OAAO/V,KAAK+V,cAAepS,EAE7B,EAED2d,IAAK,SAAUhiB,GACdsB,OAAOguB,eAAgB5uB,KAAM2D,EAAM,CAClCsqB,YAAY,EACZuhC,cAAc,EACd6G,UAAU,EACV/2D,MAAOA,GAET,GAEF,EAEAq2D,IAAK,SAAU5/C,GACd,OAAOA,EAAevX,EAAOs9C,SAC5B/lC,EACA,IAAIvX,EAAO0a,MAAOnD,EACpB,EAEA69B,QAAS,CACR9jC,KAAM,CAGLwmD,UAAU,GAEXC,MAAO,CAGNnB,MAAO,SAAU5zD,GAIhB,IAAIiK,EAAKzL,MAAQwB,EAWjB,OARK0wD,GAAe/sD,KAAMsG,EAAGxK,OAC5BwK,EAAG8qD,OAASlxC,EAAU5Z,EAAI,UAG1B8oD,GAAgB9oD,EAAI,SAAS,IAIvB,CACR,EACApI,QAAS,SAAU7B,GAIlB,IAAIiK,EAAKzL,MAAQwB,EAUjB,OAPK0wD,GAAe/sD,KAAMsG,EAAGxK,OAC5BwK,EAAG8qD,OAASlxC,EAAU5Z,EAAI,UAE1B8oD,GAAgB9oD,EAAI,UAId,CACR,EAIAqnD,SAAU,SAAUryD,GACnB,IAAI2I,EAAS3I,EAAM2I,OACnB,OAAO8oD,GAAe/sD,KAAMiE,EAAOnI,OAClCmI,EAAOmtD,OAASlxC,EAAUjc,EAAQ,UAClCsmD,GAASxrD,IAAKkF,EAAQ,UACtBic,EAAUjc,EAAQ,IACpB,GAGDotD,aAAc,CACbR,aAAc,SAAUv1D,QAIDuoB,IAAjBvoB,EAAMsjD,QAAwBtjD,EAAMsV,gBACxCtV,EAAMsV,cAAcu6B,YAAc7vC,EAAMsjD,OAE1C,KAwFHvlD,EAAOg3D,YAAc,SAAU1a,EAAM75C,EAAMguC,GAGrC6L,EAAK31B,qBACT21B,EAAK31B,oBAAqBlkB,EAAMguC,EAElC,EAEAzwC,EAAO0a,MAAQ,SAAUlM,EAAK4d,GAG7B,KAAQ5qB,gBAAgBxB,EAAO0a,OAC9B,OAAO,IAAI1a,EAAO0a,MAAOlM,EAAK4d,GAI1B5d,GAAOA,EAAI/L,MACfjB,KAAK+V,cAAgB/I,EACrBhN,KAAKiB,KAAO+L,EAAI/L,KAIhBjB,KAAK4Y,mBAAqB5L,EAAIypD,uBACHztC,IAAzBhc,EAAIypD,mBAGgB,IAApBzpD,EAAIsjC,YACL6jB,GACAC,GAKDp0D,KAAKoJ,OAAW4D,EAAI5D,QAAkC,IAAxB4D,EAAI5D,OAAOke,SACxCta,EAAI5D,OAAOyiB,WACX7e,EAAI5D,OAELpJ,KAAKi4C,cAAgBjrC,EAAIirC,cACzBj4C,KAAKs2C,cAAgBtpC,EAAIspC,eAIzBt2C,KAAKiB,KAAO+L,EAIR4d,GACJpsB,EAAOuG,OAAQ/E,KAAM4qB,GAItB5qB,KAAK02D,UAAY1pD,GAAOA,EAAI0pD,WAAa9vC,KAAK2F,MAG9CvsB,KAAMxB,EAAOs9C,UAAY,CAC1B,EAIAt9C,EAAO0a,MAAMrK,UAAY,CACxB0B,YAAa/R,EAAO0a,MACpBN,mBAAoBw7C,GACpB0B,qBAAsB1B,GACtBO,8BAA+BP,GAC/BuC,aAAa,EAEbj2D,eAAgB,WACf,IAAIiN,EAAI3N,KAAK+V,cAEb/V,KAAK4Y,mBAAqBu7C,GAErBxmD,IAAM3N,KAAK22D,aACfhpD,EAAEjN,gBAEJ,EACAoV,gBAAiB,WAChB,IAAInI,EAAI3N,KAAK+V,cAEb/V,KAAK81D,qBAAuB3B,GAEvBxmD,IAAM3N,KAAK22D,aACfhpD,EAAEmI,iBAEJ,EACA4wB,yBAA0B,WACzB,IAAI/4B,EAAI3N,KAAK+V,cAEb/V,KAAK20D,8BAAgCR,GAEhCxmD,IAAM3N,KAAK22D,aACfhpD,EAAE+4B,2BAGH1mC,KAAK8V,iBACN,GAIDtX,EAAOkF,KAAM,CACZyf,QAAQ,EACRuG,SAAS,EACTC,YAAY,EACZ4Y,gBAAgB,EAChBrkB,SAAS,EACTuL,QAAQ,EACRmtC,YAAY,EACZz4C,SAAS,EACT8iB,OAAO,EACPE,OAAO,EACPqN,UAAU,EACVqoB,MAAM,EACN,MAAQ,EACRzyD,MAAM,EACN0yD,UAAU,EACV5tD,KAAK,EACL6tD,SAAS,EACTx2B,QAAQ,EACRy2B,SAAS,EACTC,SAAS,EACTC,SAAS,EACTC,SAAS,EACTC,SAAS,EACTC,WAAW,EACXC,aAAa,EACbC,SAAS,EACTC,SAAS,EACTx2B,eAAe,EACfy2B,WAAW,EACXt3B,SAAS,EACT5oB,OAAO,GACL/Y,EAAOiC,MAAM01D,SAEhB33D,EAAOkF,KAAM,CAAE+C,MAAO,UAAW2e,KAAM,aAAc,SAAUnkB,EAAM6yC,GAEpE,SAAS4jB,EAAoBjC,GAC5B,GAAKh3D,EAASqa,aAAe,CAS5B,IAAIm2B,EAASygB,GAASxrD,IAAKlE,KAAM,UAChCS,EAAQjC,EAAOiC,MAAMk1D,IAAKF,GAC3Bh1D,EAAMQ,KAA4B,YAArBw0D,EAAYx0D,KAAqB,QAAU,OACxDR,EAAMk2D,aAAc,EAGpB1nB,EAAQwmB,GAMHh1D,EAAM2I,SAAW3I,EAAMw3C,eAK3BhJ,EAAQxuC,EAEV,MAICjC,EAAOiC,MAAMk3D,SAAU7jB,EAAc2hB,EAAYrsD,OAChD5K,EAAOiC,MAAMk1D,IAAKF,GAErB,CAEAj3D,EAAOiC,MAAMmzC,QAAS3yC,GAAS,CAG9Bm0D,MAAO,WAEN,IAAIwC,EAOJ,GAFArD,GAAgBv0D,KAAMiB,GAAM,IAEvBxC,EAASqa,aAcb,OAAO,GARP8+C,EAAWlI,GAASxrD,IAAKlE,KAAM8zC,KAE9B9zC,KAAKklB,iBAAkB4uB,EAAc4jB,GAEtChI,GAASpuC,IAAKthB,KAAM8zC,GAAgB8jB,GAAY,GAAM,EAMxD,EACAv0D,QAAS,WAMR,OAHAkxD,GAAgBv0D,KAAMiB,IAGf,CACR,EAEAs0D,SAAU,WACT,IAAIqC,EAEJ,IAAKn5D,EAASqa,aAWb,OAAO,GAVP8+C,EAAWlI,GAASxrD,IAAKlE,KAAM8zC,GAAiB,GAK/C4b,GAASpuC,IAAKthB,KAAM8zC,EAAc8jB,IAHlC53D,KAAKmlB,oBAAqB2uB,EAAc4jB,GACxChI,GAASjqD,OAAQzF,KAAM8zC,GAS1B,EAIAgf,SAAU,SAAUryD,GACnB,OAAOivD,GAASxrD,IAAKzD,EAAM2I,OAAQnI,EACpC,EAEA6yC,aAAcA,GAeft1C,EAAOiC,MAAMmzC,QAASE,GAAiB,CACtCshB,MAAO,WAIN,IAAIpwC,EAAMhlB,KAAK28C,eAAiB38C,KAAKvB,UAAYuB,KAChD63D,EAAap5D,EAASqa,aAAe9Y,KAAOglB,EAC5C4yC,EAAWlI,GAASxrD,IAAK2zD,EAAY/jB,GAMhC8jB,IACAn5D,EAASqa,aACb9Y,KAAKklB,iBAAkB4uB,EAAc4jB,GAErC1yC,EAAIE,iBAAkBjkB,EAAMy2D,GAAoB,IAGlDhI,GAASpuC,IAAKu2C,EAAY/jB,GAAgB8jB,GAAY,GAAM,EAC7D,EACArC,SAAU,WACT,IAAIvwC,EAAMhlB,KAAK28C,eAAiB38C,KAAKvB,UAAYuB,KAChD63D,EAAap5D,EAASqa,aAAe9Y,KAAOglB,EAC5C4yC,EAAWlI,GAASxrD,IAAK2zD,EAAY/jB,GAAiB,EAEjD8jB,EAQLlI,GAASpuC,IAAKu2C,EAAY/jB,EAAc8jB,IAPnCn5D,EAASqa,aACb9Y,KAAKmlB,oBAAqB2uB,EAAc4jB,GAExC1yC,EAAIG,oBAAqBlkB,EAAMy2D,GAAoB,GAEpDhI,GAASjqD,OAAQoyD,EAAY/jB,GAI/B,EAEF,IAUAt1C,EAAOkF,KAAM,CACZo0D,WAAY,YACZC,WAAY,WACZC,aAAc,cACdC,aAAc,eACZ,SAAUC,EAAMvC,GAClBn3D,EAAOiC,MAAMmzC,QAASskB,GAAS,CAC9BpkB,aAAc6hB,EACd9hB,SAAU8hB,EAEV1mB,OAAQ,SAAUxuC,GACjB,IAAI06C,EAEHgd,EAAU13D,EAAM61C,cAChBvC,EAAYtzC,EAAMszC,UASnB,OALMokB,IAAaA,IANTn4D,MAMgCxB,EAAO+K,SANvCvJ,KAMyDm4D,MAClE13D,EAAMQ,KAAO8yC,EAAUghB,SACvB5Z,EAAMpH,EAAUzqB,QAAQvZ,MAAO/P,KAAM6Q,WACrCpQ,EAAMQ,KAAO00D,GAEPxa,CACR,EAEF,IAEA38C,EAAOuD,GAAGgD,OAAQ,CAEjBhF,GAAI,SAAUs0D,EAAO1qD,EAAUnI,EAAMO,GACpC,OAAOhC,GAAIC,KAAMq0D,EAAO1qD,EAAUnI,EAAMO,EACzC,EACA8vC,IAAK,SAAUwiB,EAAO1qD,EAAUnI,EAAMO,GACrC,OAAOhC,GAAIC,KAAMq0D,EAAO1qD,EAAUnI,EAAMO,EAAI,EAC7C,EACA8V,IAAK,SAAUw8C,EAAO1qD,EAAU5H,GAC/B,IAAIgyC,EAAW9yC,EACf,GAAKozD,GAASA,EAAM3zD,gBAAkB2zD,EAAMtgB,UAW3C,OARAA,EAAYsgB,EAAMtgB,UAClBv1C,EAAQ61D,EAAMuB,gBAAiB/9C,IAC9Bk8B,EAAUyI,UACTzI,EAAUghB,SAAW,IAAMhhB,EAAUyI,UACrCzI,EAAUghB,SACXhhB,EAAUpqC,SACVoqC,EAAUzqB,SAEJtpB,KAER,GAAsB,iBAAVq0D,EAAqB,CAGhC,IAAMpzD,KAAQozD,EACbr0D,KAAK6X,IAAK5W,EAAM0I,EAAU0qD,EAAOpzD,IAElC,OAAOjB,IACR,CAUA,OATkB,IAAb2J,GAA0C,mBAAbA,IAGjC5H,EAAK4H,EACLA,OAAWqf,IAEA,IAAPjnB,IACJA,EAAKqyD,IAECp0D,KAAK0D,MAAM,WACjBlF,EAAOiC,MAAMgF,OAAQzF,KAAMq0D,EAAOtyD,EAAI4H,EACvC,GACD,IAID,IAKCyuD,GAAe,wBAGfC,GAAW,oCAEXC,GAAe,6BAGhB,SAASC,GAAoBzd,EAAMl1C,GAClC,OAAKyf,EAAUy1B,EAAM,UACpBz1B,EAA+B,KAArBzf,EAAQ0hB,SAAkB1hB,EAAUA,EAAQulB,WAAY,OAE3D3sB,EAAQs8C,GAAO10C,SAAU,SAAW,IAGrC00C,CACR,CAGA,SAAS0d,GAAe1d,GAEvB,OADAA,EAAK75C,MAAyC,OAAhC65C,EAAKvoC,aAAc,SAAsB,IAAMuoC,EAAK75C,KAC3D65C,CACR,CACA,SAAS2d,GAAe3d,GAOvB,MAN2C,WAApCA,EAAK75C,MAAQ,IAAK6F,MAAO,EAAG,GAClCg0C,EAAK75C,KAAO65C,EAAK75C,KAAK6F,MAAO,GAE7Bg0C,EAAKloC,gBAAiB,QAGhBkoC,CACR,CAEA,SAAS4d,GAAgB1rD,EAAK2rD,GAC7B,IAAI3sD,EAAGiD,EAAGhO,EAAgB23D,EAAUC,EAAU5vC,EAE9C,GAAuB,IAAlB0vC,EAAKrxC,SAAV,CAKA,GAAKooC,GAASD,QAASziD,KAEtBic,EADWymC,GAASxrD,IAAK8I,GACPic,QAKjB,IAAMhoB,KAFNyuD,GAASjqD,OAAQkzD,EAAM,iBAET1vC,EACb,IAAMjd,EAAI,EAAGiD,EAAIga,EAAQhoB,GAAOpB,OAAQmM,EAAIiD,EAAGjD,IAC9CxN,EAAOiC,MAAMgU,IAAKkkD,EAAM13D,EAAMgoB,EAAQhoB,GAAQ+K,IAO7C2jD,GAASF,QAASziD,KACtB4rD,EAAWjJ,GAASlB,OAAQzhD,GAC5B6rD,EAAWr6D,EAAOuG,OAAQ,CAAC,EAAG6zD,GAE9BjJ,GAASruC,IAAKq3C,EAAME,GAvBrB,CAyBD,CAGA,SAASC,GAAU9rD,EAAK2rD,GACvB,IAAItzC,EAAWszC,EAAKtzC,SAAS3T,cAGX,UAAb2T,GAAwB6sC,GAAe/sD,KAAM6H,EAAI/L,MACrD03D,EAAKrT,QAAUt4C,EAAIs4C,QAGK,UAAbjgC,GAAqC,aAAbA,IACnCszC,EAAKnG,aAAexlD,EAAIwlD,aAE1B,CAEA,SAASuG,GAAUC,EAAYrlD,EAAMzD,EAAUyjD,GAG9ChgD,EAAOimC,EAAMjmC,GAEb,IAAImgD,EAAU5/C,EAAOw/C,EAASuF,EAAYze,EAAMx1B,EAC/ChZ,EAAI,EACJiD,EAAI+pD,EAAWn5D,OACfq5D,EAAWjqD,EAAI,EACf3P,EAAQqU,EAAM,GACdwlD,EAAkBjf,EAAY56C,GAG/B,GAAK65D,GACDlqD,EAAI,GAAsB,iBAAV3P,IAChBwsC,EAAQwmB,YAAc+F,GAASlzD,KAAM7F,GACxC,OAAO05D,EAAWt1D,MAAM,SAAU8H,GACjC,IAAIyb,EAAO+xC,EAAWrjD,GAAInK,GACrB2tD,IACJxlD,EAAM,GAAMrU,EAAMkR,KAAMxQ,KAAMwL,EAAOyb,EAAK7jB,SAE3C21D,GAAU9xC,EAAMtT,EAAMzD,EAAUyjD,EACjC,IAGD,GAAK1kD,IAEJiF,GADA4/C,EAAWL,GAAe9/C,EAAMqlD,EAAY,GAAIrc,eAAe,EAAOqc,EAAYrF,IACjExoC,WAEmB,IAA/B2oC,EAASpuC,WAAW7lB,SACxBi0D,EAAW5/C,GAIPA,GAASy/C,GAAU,CAOvB,IALAsF,GADAvF,EAAUl1D,EAAO8V,IAAKy+C,GAAQe,EAAU,UAAY0E,KAC/B34D,OAKbmM,EAAIiD,EAAGjD,IACdwuC,EAAOsZ,EAEF9nD,IAAMktD,IACV1e,EAAOh8C,EAAOo9C,MAAOpB,GAAM,GAAM,GAG5Bye,GAIJz6D,EAAO48C,MAAOsY,EAASX,GAAQvY,EAAM,YAIvCtqC,EAASM,KAAMwoD,EAAYhtD,GAAKwuC,EAAMxuC,GAGvC,GAAKitD,EAOJ,IANAj0C,EAAM0uC,EAASA,EAAQ7zD,OAAS,GAAI88C,cAGpCn+C,EAAO8V,IAAKo/C,EAAS+E,IAGfzsD,EAAI,EAAGA,EAAIitD,EAAYjtD,IAC5BwuC,EAAOkZ,EAAS1nD,GACXomD,GAAYjtD,KAAMq1C,EAAKv5C,MAAQ,MAClCyuD,GAASjB,OAAQjU,EAAM,eACxBh8C,EAAO+K,SAAUyb,EAAKw1B,KAEjBA,EAAKxtC,KAA8C,YAArCwtC,EAAKv5C,MAAQ,IAAKyQ,cAG/BlT,EAAO46D,WAAa5e,EAAKF,UAC7B97C,EAAO46D,SAAU5e,EAAKxtC,IAAK,CAC1BqtC,MAAOG,EAAKH,OAASG,EAAKjoC,aAAc,UACtCyS,GASJu1B,EAASC,EAAKzgC,YAAY1X,QAASi2D,GAAc,IAAM9d,EAAMx1B,GAKlE,CAGD,OAAOg0C,CACR,CAEA,SAASvzD,GAAQq1C,EAAMnxC,EAAU0vD,GAKhC,IAJA,IAAI7e,EACHuZ,EAAQpqD,EAAWnL,EAAOsU,OAAQnJ,EAAUmxC,GAASA,EACrD9uC,EAAI,EAE4B,OAAvBwuC,EAAOuZ,EAAO/nD,IAAeA,IAChCqtD,GAA8B,IAAlB7e,EAAKlzB,UACtB9oB,EAAO86D,UAAWvG,GAAQvY,IAGtBA,EAAK3uB,aACJwtC,GAAYpI,GAAYzW,IAC5BwY,GAAeD,GAAQvY,EAAM,WAE9BA,EAAK3uB,WAAWrH,YAAag2B,IAI/B,OAAOM,CACR,CAEAt8C,EAAOuG,OAAQ,CACdivD,cAAe,SAAU5wD,GACxB,OAAOA,CACR,EAEAw4C,MAAO,SAAUd,EAAMye,EAAeC,GACrC,IAAIxtD,EAAGiD,EAAGwqD,EAAaC,EACtB9d,EAAQd,EAAK/d,WAAW,GACxB48B,EAAS1I,GAAYnW,GAGtB,KAAMhP,EAAQymB,gBAAsC,IAAlBzX,EAAKxzB,UAAoC,KAAlBwzB,EAAKxzB,UAC3D9oB,EAAO+9C,SAAUzB,IAOnB,IAHA4e,EAAe3G,GAAQnX,GAGjB5vC,EAAI,EAAGiD,GAFbwqD,EAAc1G,GAAQjY,IAEOj7C,OAAQmM,EAAIiD,EAAGjD,IAC3C8sD,GAAUW,EAAaztD,GAAK0tD,EAAc1tD,IAK5C,GAAKutD,EACJ,GAAKC,EAIJ,IAHAC,EAAcA,GAAe1G,GAAQjY,GACrC4e,EAAeA,GAAgB3G,GAAQnX,GAEjC5vC,EAAI,EAAGiD,EAAIwqD,EAAY55D,OAAQmM,EAAIiD,EAAGjD,IAC3C0sD,GAAgBe,EAAaztD,GAAK0tD,EAAc1tD,SAGjD0sD,GAAgB5d,EAAMc,GAWxB,OANA8d,EAAe3G,GAAQnX,EAAO,WACZ/7C,OAAS,GAC1BmzD,GAAe0G,GAAeC,GAAU5G,GAAQjY,EAAM,WAIhDc,CACR,EAEA0d,UAAW,SAAUpe,GAKpB,IAJA,IAAI15C,EAAMs5C,EAAM75C,EACf2yC,EAAUp1C,EAAOiC,MAAMmzC,QACvB5nC,EAAI,OAE6Bgd,KAAxB8xB,EAAOI,EAAOlvC,IAAqBA,IAC5C,GAAKojD,GAAYtU,GAAS,CACzB,GAAOt5C,EAAOs5C,EAAM4U,GAAS5T,SAAc,CAC1C,GAAKt6C,EAAKynB,OACT,IAAMhoB,KAAQO,EAAKynB,OACb2qB,EAAS3yC,GACbzC,EAAOiC,MAAMgF,OAAQq1C,EAAM75C,GAI3BzC,EAAOg3D,YAAa1a,EAAM75C,EAAMO,EAAKytC,QAOxC6L,EAAM4U,GAAS5T,cAAY9yB,CAC5B,CACK8xB,EAAM6U,GAAS7T,WAInBhB,EAAM6U,GAAS7T,cAAY9yB,EAE7B,CAEF,IAGDxqB,EAAOuD,GAAGgD,OAAQ,CACjBmY,OAAQ,SAAUvT,GACjB,OAAOlE,GAAQzF,KAAM2J,GAAU,EAChC,EAEAlE,OAAQ,SAAUkE,GACjB,OAAOlE,GAAQzF,KAAM2J,EACtB,EAEA1K,KAAM,SAAUK,GACf,OAAOmvD,GAAQzuD,MAAM,SAAUV,GAC9B,YAAiB0pB,IAAV1pB,EACNd,EAAOS,KAAMe,MACbA,KAAKuT,QAAQ7P,MAAM,WACK,IAAlB1D,KAAKsnB,UAAoC,KAAlBtnB,KAAKsnB,UAAqC,IAAlBtnB,KAAKsnB,WACxDtnB,KAAK+Z,YAAcza,EAErB,GACF,GAAG,KAAMA,EAAOuR,UAAUhR,OAC3B,EAEAwG,OAAQ,WACP,OAAO0yD,GAAU/4D,KAAM6Q,WAAW,SAAUiqC,GACpB,IAAlB96C,KAAKsnB,UAAoC,KAAlBtnB,KAAKsnB,UAAqC,IAAlBtnB,KAAKsnB,UAC3CixC,GAAoBv4D,KAAM86C,GAChCx2B,YAAaw2B,EAEtB,GACD,EAEAjmC,QAAS,WACR,OAAOkkD,GAAU/4D,KAAM6Q,WAAW,SAAUiqC,GAC3C,GAAuB,IAAlB96C,KAAKsnB,UAAoC,KAAlBtnB,KAAKsnB,UAAqC,IAAlBtnB,KAAKsnB,SAAiB,CACzE,IAAIle,EAASmvD,GAAoBv4D,KAAM86C,GACvC1xC,EAAOgiB,aAAc0vB,EAAM1xC,EAAO+hB,WACnC,CACD,GACD,EAEA7kB,OAAQ,WACP,OAAOyyD,GAAU/4D,KAAM6Q,WAAW,SAAUiqC,GACtC96C,KAAK6rB,YACT7rB,KAAK6rB,WAAWT,aAAc0vB,EAAM96C,KAEtC,GACD,EAEA8F,MAAO,WACN,OAAOizD,GAAU/4D,KAAM6Q,WAAW,SAAUiqC,GACtC96C,KAAK6rB,YACT7rB,KAAK6rB,WAAWT,aAAc0vB,EAAM96C,KAAKwlD,YAE3C,GACD,EAEAjyC,MAAO,WAIN,IAHA,IAAIunC,EACH9uC,EAAI,EAE2B,OAAtB8uC,EAAO96C,KAAMgM,IAAeA,IACd,IAAlB8uC,EAAKxzB,WAGT9oB,EAAO86D,UAAWvG,GAAQjY,GAAM,IAGhCA,EAAK/gC,YAAc,IAIrB,OAAO/Z,IACR,EAEA47C,MAAO,SAAU2d,EAAeC,GAI/B,OAHAD,EAAiC,MAAjBA,GAAgCA,EAChDC,EAAyC,MAArBA,EAA4BD,EAAgBC,EAEzDx5D,KAAKsU,KAAK,WAChB,OAAO9V,EAAOo9C,MAAO57C,KAAMu5D,EAAeC,EAC3C,GACD,EAEAp2D,KAAM,SAAU9D,GACf,OAAOmvD,GAAQzuD,MAAM,SAAUV,GAC9B,IAAIw7C,EAAO96C,KAAM,IAAO,CAAC,EACxBgM,EAAI,EACJiD,EAAIjP,KAAKH,OAEV,QAAempB,IAAV1pB,GAAyC,IAAlBw7C,EAAKxzB,SAChC,OAAOwzB,EAAK5kC,UAIb,GAAsB,iBAAV5W,IAAuB84D,GAAajzD,KAAM7F,KACpDmzD,IAAWN,GAAShR,KAAM7hD,IAAW,CAAE,GAAI,KAAQ,GAAIoS,eAAkB,CAE1EpS,EAAQd,EAAOw1D,cAAe10D,GAE9B,IACC,KAAQ0M,EAAIiD,EAAGjD,IAIS,KAHvB8uC,EAAO96C,KAAMgM,IAAO,CAAC,GAGXsb,WACT9oB,EAAO86D,UAAWvG,GAAQjY,GAAM,IAChCA,EAAK5kC,UAAY5W,GAInBw7C,EAAO,CAGR,CAAE,MAAQntC,GAAK,CAChB,CAEKmtC,GACJ96C,KAAKuT,QAAQlN,OAAQ/G,EAEvB,GAAG,KAAMA,EAAOuR,UAAUhR,OAC3B,EAEAsD,YAAa,WACZ,IAAIwwD,EAAU,GAGd,OAAOoF,GAAU/4D,KAAM6Q,WAAW,SAAUiqC,GAC3C,IAAI53C,EAASlD,KAAK6rB,WAEbrtB,EAAO89C,QAASt8C,KAAM2zD,GAAY,IACtCn1D,EAAO86D,UAAWvG,GAAQ/yD,OACrBkD,GACJA,EAAO02D,aAAc9e,EAAM96C,MAK9B,GAAG2zD,EACJ,IAGDn1D,EAAOkF,KAAM,CACZma,SAAU,SACVg8C,UAAW,UACXzuC,aAAc,SACd7I,YAAa,QACbu3C,WAAY,gBACV,SAAUn2D,EAAMo2D,GAClBv7D,EAAOuD,GAAI4B,GAAS,SAAUgG,GAO7B,IANA,IAAIuxC,EACHC,EAAM,GACN6e,EAASx7D,EAAQmL,GACjB6C,EAAOwtD,EAAOn6D,OAAS,EACvBmM,EAAI,EAEGA,GAAKQ,EAAMR,IAClBkvC,EAAQlvC,IAAMQ,EAAOxM,KAAOA,KAAK47C,OAAO,GACxCp9C,EAAQw7D,EAAQhuD,IAAO+tD,GAAY7e,GAInC9zC,EAAK2I,MAAOorC,EAAKD,EAAMh3C,OAGxB,OAAOlE,KAAKi7C,UAAWE,EACxB,CACD,IACA,IAAI8e,GAAY,IAAI/mB,OAAQ,KAAO2d,GAAO,kBAAmB,KAEzDqJ,GAAc,MAGdC,GAAY,SAAUrf,GAKxB,IAAI+b,EAAO/b,EAAK6B,cAAc0F,YAM9B,OAJMwU,GAASA,EAAKuD,SACnBvD,EAAO10D,GAGD00D,EAAKp0C,iBAAkBq4B,EAC/B,EAEGuf,GAAO,SAAUvf,EAAM3nC,EAASjD,GACnC,IAAIirC,EAAKx3C,EACR22D,EAAM,CAAC,EAGR,IAAM32D,KAAQwP,EACbmnD,EAAK32D,GAASm3C,EAAKlpC,MAAOjO,GAC1Bm3C,EAAKlpC,MAAOjO,GAASwP,EAASxP,GAM/B,IAAMA,KAHNw3C,EAAMjrC,EAASM,KAAMsqC,GAGP3nC,EACb2nC,EAAKlpC,MAAOjO,GAAS22D,EAAK32D,GAG3B,OAAOw3C,CACR,EAGIof,GAAY,IAAIrnB,OAAQ8d,GAAU/9C,KAAM,KAAO,KAiJnD,SAASunD,GAAQ1f,EAAMn3C,EAAM82D,GAC5B,IAAIxxD,EAAO2U,EAAU88C,EAAUvf,EAC9Bwf,EAAeT,GAAY/0D,KAAMxB,GAMjCiO,EAAQkpC,EAAKlpC,MAoEd,OAlEA6oD,EAAWA,GAAYN,GAAWrf,MAgBjCK,EAAMsf,EAAS9zC,iBAAkBhjB,IAAU82D,EAAU92D,GAEhDg3D,GAAgBxf,IAkBpBA,EAAMA,EAAI94C,QAAS+6C,EAAU,YAAUp0B,GAG3B,KAARmyB,GAAe8V,GAAYnW,KAC/BK,EAAM38C,EAAOoT,MAAOkpC,EAAMn3C,KAQrBmoC,EAAQ8uB,kBAAoBX,GAAU90D,KAAMg2C,IAASof,GAAUp1D,KAAMxB,KAG1EsF,EAAQ2I,EAAM3I,MACd2U,EAAWhM,EAAMgM,SACjB88C,EAAW9oD,EAAM8oD,SAGjB9oD,EAAMgM,SAAWhM,EAAM8oD,SAAW9oD,EAAM3I,MAAQkyC,EAChDA,EAAMsf,EAASxxD,MAGf2I,EAAM3I,MAAQA,EACd2I,EAAMgM,SAAWA,EACjBhM,EAAM8oD,SAAWA,SAIJ1xC,IAARmyB,EAINA,EAAM,GACNA,CACF,CAGA,SAAS0f,GAAcC,EAAaC,GAGnC,MAAO,CACN72D,IAAK,WACJ,IAAK42D,IASL,OAAS96D,KAAKkE,IAAM62D,GAAShrD,MAAO/P,KAAM6Q,kBALlC7Q,KAAKkE,GAMd,EAEF,EAnPA,WAIC,SAAS82D,IAGR,GAAMtvD,EAAN,CAIAxB,EAAU0H,MAAMqpD,QAAU,+EAE1BvvD,EAAIkG,MAAMqpD,QACT,4HAGD3+C,GAAgBgI,YAAapa,GAAYoa,YAAa5Y,GAEtD,IAAIwvD,EAAW/4D,EAAOsgB,iBAAkB/W,GACxCyvD,EAAoC,OAAjBD,EAASvyD,IAG5ByyD,EAAsE,KAA9CC,EAAoBH,EAASjoC,YAIrDvnB,EAAIkG,MAAM0mC,MAAQ,MAClBgjB,EAA6D,KAAzCD,EAAoBH,EAAS5iB,OAIjDijB,EAAgE,KAAzCF,EAAoBH,EAASjyD,OAMpDyC,EAAIkG,MAAMpJ,SAAW,WACrBgzD,EAAiE,KAA9CH,EAAoB3vD,EAAIye,YAAc,GAEzD7N,GAAgBkI,YAAata,GAI7BwB,EAAM,IApCN,CAqCD,CAEA,SAAS2vD,EAAoBI,GAC5B,OAAOtqD,KAAKknC,MAAOjuB,WAAYqxC,GAChC,CAEA,IAAIN,EAAkBI,EAAsBC,EAAkBF,EAC7DI,EAAyBN,EACzBlxD,EAAYzL,EAASqW,cAAe,OACpCpJ,EAAMjN,EAASqW,cAAe,OAGzBpJ,EAAIkG,QAMVlG,EAAIkG,MAAM+pD,eAAiB,cAC3BjwD,EAAIqxB,WAAW,GAAOnrB,MAAM+pD,eAAiB,GAC7C7vB,EAAQ8vB,gBAA+C,gBAA7BlwD,EAAIkG,MAAM+pD,eAEpCn9D,EAAOuG,OAAQ+mC,EAAS,CACvB+vB,kBAAmB,WAElB,OADAb,IACOO,CACR,EACAX,eAAgB,WAEf,OADAI,IACOM,CACR,EACAQ,cAAe,WAEd,OADAd,IACOG,CACR,EACAY,mBAAoB,WAEnB,OADAf,IACOI,CACR,EACAY,cAAe,WAEd,OADAhB,IACOQ,CACR,EAWAS,qBAAsB,WACrB,IAAIC,EAAOtJ,EAAIuJ,EAASC,EAmCxB,OAlCgC,MAA3BV,IACJQ,EAAQz9D,EAASqW,cAAe,SAChC89C,EAAKn0D,EAASqW,cAAe,MAC7BqnD,EAAU19D,EAASqW,cAAe,OAElConD,EAAMtqD,MAAMqpD,QAAU,2DACtBrI,EAAGhhD,MAAMqpD,QAAU,0CAKnBrI,EAAGhhD,MAAM5G,OAAS,MAClBmxD,EAAQvqD,MAAM5G,OAAS,MAQvBmxD,EAAQvqD,MAAMqE,QAAU,QAExBqG,GACEgI,YAAa43C,GACb53C,YAAasuC,GACbtuC,YAAa63C,GAEfC,EAAUj6D,EAAOsgB,iBAAkBmwC,GACnC8I,EAA4Bj3D,SAAU23D,EAAQpxD,OAAQ,IACrDvG,SAAU23D,EAAQC,eAAgB,IAClC53D,SAAU23D,EAAQE,kBAAmB,MAAW1J,EAAGvoC,aAEpD/N,GAAgBkI,YAAa03C,IAEvBR,CACR,IAEA,CA1IF,GAsPA,IAAIa,GAAc,CAAE,SAAU,MAAO,MACpCC,GAAa/9D,EAASqW,cAAe,OAAQlD,MAC7C6qD,GAAc,CAAC,EAkBhB,SAASC,GAAe/4D,GACvB,IAAIg5D,EAAQn+D,EAAOo+D,SAAUj5D,IAAU84D,GAAa94D,GAEpD,OAAKg5D,IAGAh5D,KAAQ64D,GACL74D,EAED84D,GAAa94D,GAxBrB,SAAyBA,GAMxB,IAHA,IAAIk5D,EAAUl5D,EAAM,GAAIwX,cAAgBxX,EAAKmD,MAAO,GACnDkF,EAAIuwD,GAAY18D,OAETmM,KAEP,IADArI,EAAO44D,GAAavwD,GAAM6wD,KACbL,GACZ,OAAO74D,CAGV,CAY8Bm5D,CAAgBn5D,IAAUA,EACxD,CAGA,IAKCo5D,GAAe,4BACfC,GAAU,CAAEx0D,SAAU,WAAYy0D,WAAY,SAAUhnD,QAAS,SACjEinD,GAAqB,CACpBC,cAAe,IACfC,WAAY,OAGd,SAASC,GAAmB7hB,EAAOl8C,EAAOg+D,GAIzC,IAAIroD,EAAU87C,GAAQ5P,KAAM7hD,GAC5B,OAAO2V,EAGN9D,KAAKsiB,IAAK,EAAGxe,EAAS,IAAQqoD,GAAY,KAAUroD,EAAS,IAAO,MACpE3V,CACF,CAEA,SAASi+D,GAAoBziB,EAAM0iB,EAAWlzC,EAAKmzC,EAAavzC,EAAQwzC,GACvE,IAAI1xD,EAAkB,UAAdwxD,EAAwB,EAAI,EACnCG,EAAQ,EACRvuB,EAAQ,EACRwuB,EAAc,EAGf,GAAKtzC,KAAUmzC,EAAc,SAAW,WACvC,OAAO,EAGR,KAAQzxD,EAAI,EAAGA,GAAK,EAKN,WAARse,IACJszC,GAAep/D,EAAOya,IAAK6hC,EAAMxwB,EAAM0mC,GAAWhlD,IAAK,EAAMke,IAIxDuzC,GAmBQ,YAARnzC,IACJ8kB,GAAS5wC,EAAOya,IAAK6hC,EAAM,UAAYkW,GAAWhlD,IAAK,EAAMke,IAIjD,WAARI,IACJ8kB,GAAS5wC,EAAOya,IAAK6hC,EAAM,SAAWkW,GAAWhlD,GAAM,SAAS,EAAMke,MAtBvEklB,GAAS5wC,EAAOya,IAAK6hC,EAAM,UAAYkW,GAAWhlD,IAAK,EAAMke,GAGhD,YAARI,EACJ8kB,GAAS5wC,EAAOya,IAAK6hC,EAAM,SAAWkW,GAAWhlD,GAAM,SAAS,EAAMke,GAItEyzC,GAASn/D,EAAOya,IAAK6hC,EAAM,SAAWkW,GAAWhlD,GAAM,SAAS,EAAMke,IAoCzE,OAhBMuzC,GAAeC,GAAe,IAInCtuB,GAASj+B,KAAKsiB,IAAK,EAAGtiB,KAAKmiB,KAC1BwnB,EAAM,SAAW0iB,EAAW,GAAIriD,cAAgBqiD,EAAU12D,MAAO,IACjE42D,EACAtuB,EACAuuB,EACA,MAIM,GAGDvuB,EAAQwuB,CAChB,CAEA,SAASC,GAAkB/iB,EAAM0iB,EAAWG,GAG3C,IAAIzzC,EAASiwC,GAAWrf,GAKvB2iB,IADmB3xB,EAAQ+vB,qBAAuB8B,IAEE,eAAnDn/D,EAAOya,IAAK6hC,EAAM,aAAa,EAAO5wB,GACvC4zC,EAAmBL,EAEnBx9D,EAAMu6D,GAAQ1f,EAAM0iB,EAAWtzC,GAC/B6zC,EAAa,SAAWP,EAAW,GAAIriD,cAAgBqiD,EAAU12D,MAAO,GAIzE,GAAKmzD,GAAU90D,KAAMlF,GAAQ,CAC5B,IAAM09D,EACL,OAAO19D,EAERA,EAAM,MACP,CAwCA,QAlCQ6rC,EAAQ+vB,qBAAuB4B,IAMrC3xB,EAAQmwB,wBAA0B52C,EAAUy1B,EAAM,OAI3C,SAAR76C,IAICmqB,WAAYnqB,IAA0D,WAAjDzB,EAAOya,IAAK6hC,EAAM,WAAW,EAAO5wB,KAG1D4wB,EAAKkjB,iBAAiBn+D,SAEtB49D,EAAiE,eAAnDj/D,EAAOya,IAAK6hC,EAAM,aAAa,EAAO5wB,IAKpD4zC,EAAmBC,KAAcjjB,KAEhC76C,EAAM66C,EAAMijB,MAKd99D,EAAMmqB,WAAYnqB,IAAS,GAI1Bs9D,GACCziB,EACA0iB,EACAG,IAAWF,EAAc,SAAW,WACpCK,EACA5zC,EAGAjqB,GAEE,IACL,CAuTA,SAASg+D,GAAOnjB,EAAM3nC,EAASlQ,EAAM/D,EAAKg/D,GACzC,OAAO,IAAID,GAAMpvD,UAAU06B,KAAMuR,EAAM3nC,EAASlQ,EAAM/D,EAAKg/D,EAC5D,CAvTA1/D,EAAOuG,OAAQ,CAIdo5D,SAAU,CACTC,QAAS,CACRl6D,IAAK,SAAU42C,EAAM2f,GACpB,GAAKA,EAAW,CAGf,IAAItf,EAAMqf,GAAQ1f,EAAM,WACxB,MAAe,KAARK,EAAa,IAAMA,CAC3B,CACD,IAKFyW,UAAW,CACVyM,yBAAyB,EACzBC,aAAa,EACbC,kBAAkB,EAClBC,aAAa,EACbC,UAAU,EACVC,YAAY,EACZtB,YAAY,EACZuB,UAAU,EACVC,YAAY,EACZC,eAAe,EACfC,iBAAiB,EACjBC,SAAS,EACTC,YAAY,EACZC,cAAc,EACdC,YAAY,EACZd,SAAS,EACT/pC,OAAO,EACP8qC,SAAS,EACThuB,OAAO,EACPiuB,QAAQ,EACRC,QAAQ,EACRC,MAAM,EAGNC,aAAa,EACbC,cAAc,EACdC,aAAa,EACbC,kBAAkB,EAClBC,eAAe,GAKhB/C,SAAU,CAAC,EAGXhrD,MAAO,SAAUkpC,EAAMn3C,EAAMrE,EAAOq+D,GAGnC,GAAM7iB,GAA0B,IAAlBA,EAAKxzB,UAAoC,IAAlBwzB,EAAKxzB,UAAmBwzB,EAAKlpC,MAAlE,CAKA,IAAIupC,EAAKl6C,EAAMqvD,EACdsP,EAAWr+C,GAAW5d,GACtBg3D,EAAeT,GAAY/0D,KAAMxB,GACjCiO,EAAQkpC,EAAKlpC,MAad,GARM+oD,IACLh3D,EAAO+4D,GAAekD,IAIvBtP,EAAQ9xD,EAAO2/D,SAAUx6D,IAAUnF,EAAO2/D,SAAUyB,QAGrC52C,IAAV1pB,EA0CJ,OAAKgxD,GAAS,QAASA,QACwBtnC,KAA5CmyB,EAAMmV,EAAMpsD,IAAK42C,GAAM,EAAO6iB,IAEzBxiB,EAIDvpC,EAAOjO,GA7CA,YAHd1C,SAAc3B,KAGc67C,EAAM4V,GAAQ5P,KAAM7hD,KAAa67C,EAAK,KACjE77C,EAAQ8xD,GAAWtW,EAAMn3C,EAAMw3C,GAG/Bl6C,EAAO,UAIM,MAAT3B,GAAiBA,GAAUA,IAOlB,WAAT2B,GAAsB05D,IAC1Br7D,GAAS67C,GAAOA,EAAK,KAAS38C,EAAOozD,UAAWgO,GAAa,GAAK,OAI7D9zB,EAAQ8vB,iBAA6B,KAAVt8D,GAAiD,IAAjCqE,EAAKoP,QAAS,gBAC9DnB,EAAOjO,GAAS,WAIX2sD,GAAY,QAASA,QACsBtnC,KAA9C1pB,EAAQgxD,EAAMhvC,IAAKw5B,EAAMx7C,EAAOq+D,MAE7BhD,EACJ/oD,EAAMiuD,YAAal8D,EAAMrE,GAEzBsS,EAAOjO,GAASrE,GAtDnB,CAsED,EAEA2Z,IAAK,SAAU6hC,EAAMn3C,EAAMg6D,EAAOzzC,GACjC,IAAIjqB,EAAK+6C,EAAKsV,EACbsP,EAAWr+C,GAAW5d,GA6BvB,OA5BgBu2D,GAAY/0D,KAAMxB,KAMjCA,EAAO+4D,GAAekD,KAIvBtP,EAAQ9xD,EAAO2/D,SAAUx6D,IAAUnF,EAAO2/D,SAAUyB,KAGtC,QAAStP,IACtBrwD,EAAMqwD,EAAMpsD,IAAK42C,GAAM,EAAM6iB,SAIjB30C,IAAR/oB,IACJA,EAAMu6D,GAAQ1f,EAAMn3C,EAAMumB,IAId,WAARjqB,GAAoB0D,KAAQu5D,KAChCj9D,EAAMi9D,GAAoBv5D,IAIZ,KAAVg6D,GAAgBA,GACpB3iB,EAAM5wB,WAAYnqB,IACD,IAAV09D,GAAkBmC,SAAU9kB,GAAQA,GAAO,EAAI/6C,GAGhDA,CACR,IAGDzB,EAAOkF,KAAM,CAAE,SAAU,UAAW,SAAUw5C,EAAIsgB,GACjDh/D,EAAO2/D,SAAUX,GAAc,CAC9Bt5D,IAAK,SAAU42C,EAAM2f,EAAUkD,GAC9B,GAAKlD,EAIJ,OAAOsC,GAAa53D,KAAM3G,EAAOya,IAAK6hC,EAAM,aAQxCA,EAAKkjB,iBAAiBn+D,QAAWi7C,EAAKvwB,wBAAwBthB,MAIjE40D,GAAkB/iB,EAAM0iB,EAAWG,GAHnCtD,GAAMvf,EAAMkiB,IAAS,WACpB,OAAOa,GAAkB/iB,EAAM0iB,EAAWG,EAC3C,GAGH,EAEAr8C,IAAK,SAAUw5B,EAAMx7C,EAAOq+D,GAC3B,IAAI1oD,EACHiV,EAASiwC,GAAWrf,GAIpBilB,GAAsBj0B,EAAQkwB,iBACT,aAApB9xC,EAAO1hB,SAIRi1D,GADkBsC,GAAsBpC,IAEY,eAAnDn/D,EAAOya,IAAK6hC,EAAM,aAAa,EAAO5wB,GACvCozC,EAAWK,EACVJ,GACCziB,EACA0iB,EACAG,EACAF,EACAvzC,GAED,EAqBF,OAjBKuzC,GAAesC,IACnBzC,GAAYnsD,KAAKmiB,KAChBwnB,EAAM,SAAW0iB,EAAW,GAAIriD,cAAgBqiD,EAAU12D,MAAO,IACjEsjB,WAAYF,EAAQszC,IACpBD,GAAoBziB,EAAM0iB,EAAW,UAAU,EAAOtzC,GACtD,KAKGozC,IAAcroD,EAAU87C,GAAQ5P,KAAM7hD,KACb,QAA3B2V,EAAS,IAAO,QAElB6lC,EAAKlpC,MAAO4rD,GAAcl+D,EAC1BA,EAAQd,EAAOya,IAAK6hC,EAAM0iB,IAGpBH,GAAmBviB,EAAMx7C,EAAOg+D,EACxC,EAEF,IAEA9+D,EAAO2/D,SAASlrC,WAAa4nC,GAAc/uB,EAAQiwB,oBAClD,SAAUjhB,EAAM2f,GACf,GAAKA,EACJ,OAASrwC,WAAYowC,GAAQ1f,EAAM,gBAClCA,EAAKvwB,wBAAwB/M,KAC5B68C,GAAMvf,EAAM,CAAE7nB,WAAY,IAAK,WAC9B,OAAO6nB,EAAKvwB,wBAAwB/M,IACrC,KACE,IAEN,IAIDhf,EAAOkF,KAAM,CACZs1C,OAAQ,GACRF,QAAS,GACTknB,OAAQ,UACN,SAAU/tB,EAAQnI,GACpBtrC,EAAO2/D,SAAUlsB,EAASnI,GAAW,CACpCm2B,OAAQ,SAAU3gE,GAOjB,IANA,IAAI0M,EAAI,EACPk0D,EAAW,CAAC,EAGZC,EAAyB,iBAAV7gE,EAAqBA,EAAMmS,MAAO,KAAQ,CAAEnS,GAEpD0M,EAAI,EAAGA,IACdk0D,EAAUjuB,EAAS+e,GAAWhlD,GAAM89B,GACnCq2B,EAAOn0D,IAAOm0D,EAAOn0D,EAAI,IAAOm0D,EAAO,GAGzC,OAAOD,CACR,GAGe,WAAXjuB,IACJzzC,EAAO2/D,SAAUlsB,EAASnI,GAASxoB,IAAM+7C,GAE3C,IAEA7+D,EAAOuD,GAAGgD,OAAQ,CACjBkU,IAAK,SAAUtV,EAAMrE,GACpB,OAAOmvD,GAAQzuD,MAAM,SAAU86C,EAAMn3C,EAAMrE,GAC1C,IAAI4qB,EAAQ7kB,EACXiP,EAAM,CAAC,EACPtI,EAAI,EAEL,GAAK2E,MAAMiK,QAASjX,GAAS,CAI5B,IAHAumB,EAASiwC,GAAWrf,GACpBz1C,EAAM1B,EAAK9D,OAEHmM,EAAI3G,EAAK2G,IAChBsI,EAAK3Q,EAAMqI,IAAQxN,EAAOya,IAAK6hC,EAAMn3C,EAAMqI,IAAK,EAAOke,GAGxD,OAAO5V,CACR,CAEA,YAAiB0U,IAAV1pB,EACNd,EAAOoT,MAAOkpC,EAAMn3C,EAAMrE,GAC1Bd,EAAOya,IAAK6hC,EAAMn3C,EACpB,GAAGA,EAAMrE,EAAOuR,UAAUhR,OAAS,EACpC,IAODrB,EAAOy/D,MAAQA,GAEfA,GAAMpvD,UAAY,CACjB0B,YAAa0tD,GACb10B,KAAM,SAAUuR,EAAM3nC,EAASlQ,EAAM/D,EAAKg/D,EAAQvM,GACjD3xD,KAAK86C,KAAOA,EACZ96C,KAAKiD,KAAOA,EACZjD,KAAKk+D,OAASA,GAAU1/D,EAAO0/D,OAAOpL,SACtC9yD,KAAKmT,QAAUA,EACfnT,KAAKgnC,MAAQhnC,KAAKusB,IAAMvsB,KAAKgqD,MAC7BhqD,KAAKd,IAAMA,EACXc,KAAK2xD,KAAOA,IAAUnzD,EAAOozD,UAAW3uD,GAAS,GAAK,KACvD,EACA+mD,IAAK,WACJ,IAAIsG,EAAQ2N,GAAMmC,UAAWpgE,KAAKiD,MAElC,OAAOqtD,GAASA,EAAMpsD,IACrBosD,EAAMpsD,IAAKlE,MACXi+D,GAAMmC,UAAUtN,SAAS5uD,IAAKlE,KAChC,EACAsmC,IAAK,SAAU+5B,GACd,IAAIC,EACHhQ,EAAQ2N,GAAMmC,UAAWpgE,KAAKiD,MAoB/B,OAlBKjD,KAAKmT,QAAQiV,SACjBpoB,KAAKugE,IAAMD,EAAQ9hE,EAAO0/D,OAAQl+D,KAAKk+D,QACtCmC,EAASrgE,KAAKmT,QAAQiV,SAAWi4C,EAAS,EAAG,EAAGrgE,KAAKmT,QAAQiV,UAG9DpoB,KAAKugE,IAAMD,EAAQD,EAEpBrgE,KAAKusB,KAAQvsB,KAAKd,IAAMc,KAAKgnC,OAAUs5B,EAAQtgE,KAAKgnC,MAE/ChnC,KAAKmT,QAAQqtD,MACjBxgE,KAAKmT,QAAQqtD,KAAKhwD,KAAMxQ,KAAK86C,KAAM96C,KAAKusB,IAAKvsB,MAGzCswD,GAASA,EAAMhvC,IACnBgvC,EAAMhvC,IAAKthB,MAEXi+D,GAAMmC,UAAUtN,SAASxxC,IAAKthB,MAExBA,IACR,GAGDi+D,GAAMpvD,UAAU06B,KAAK16B,UAAYovD,GAAMpvD,UAEvCovD,GAAMmC,UAAY,CACjBtN,SAAU,CACT5uD,IAAK,SAAUotD,GACd,IAAIvN,EAIJ,OAA6B,IAAxBuN,EAAMxW,KAAKxzB,UACa,MAA5BgqC,EAAMxW,KAAMwW,EAAMruD,OAAoD,MAAlCquD,EAAMxW,KAAKlpC,MAAO0/C,EAAMruD,MACrDquD,EAAMxW,KAAMwW,EAAMruD,OAO1B8gD,EAASvlD,EAAOya,IAAKq4C,EAAMxW,KAAMwW,EAAMruD,KAAM,MAGhB,SAAX8gD,EAAwBA,EAAJ,CACvC,EACAziC,IAAK,SAAUgwC,GAKT9yD,EAAOiiE,GAAGD,KAAMlP,EAAMruD,MAC1BzE,EAAOiiE,GAAGD,KAAMlP,EAAMruD,MAAQquD,GACK,IAAxBA,EAAMxW,KAAKxzB,WACtB9oB,EAAO2/D,SAAU7M,EAAMruD,OAC6B,MAAnDquD,EAAMxW,KAAKlpC,MAAO8qD,GAAepL,EAAMruD,OAGxCquD,EAAMxW,KAAMwW,EAAMruD,MAASquD,EAAM/kC,IAFjC/tB,EAAOoT,MAAO0/C,EAAMxW,KAAMwW,EAAMruD,KAAMquD,EAAM/kC,IAAM+kC,EAAMK,KAI1D,IAMFsM,GAAMmC,UAAUv3D,UAAYo1D,GAAMmC,UAAU9iD,WAAa,CACxDgE,IAAK,SAAUgwC,GACTA,EAAMxW,KAAKxzB,UAAYgqC,EAAMxW,KAAKjvB,aACtCylC,EAAMxW,KAAMwW,EAAMruD,MAASquD,EAAM/kC,IAEnC,GAGD/tB,EAAO0/D,OAAS,CACfwC,OAAQ,SAAU7yD,GACjB,OAAOA,CACR,EACA8yD,MAAO,SAAU9yD,GAChB,MAAO,GAAMsD,KAAKyvD,IAAK/yD,EAAIsD,KAAK4xB,IAAO,CACxC,EACA+vB,SAAU,SAGXt0D,EAAOiiE,GAAKxC,GAAMpvD,UAAU06B,KAG5B/qC,EAAOiiE,GAAGD,KAAO,CAAC,EAKlB,IACCK,GAAOC,GACPC,GAAW,yBACXC,GAAO,cAER,SAASC,KACHH,MACqB,IAApBriE,EAASyiE,QAAoB/+D,EAAO6qC,sBACxC7qC,EAAO6qC,sBAAuBi0B,IAE9B9+D,EAAOqI,WAAYy2D,GAAUziE,EAAOiiE,GAAGU,UAGxC3iE,EAAOiiE,GAAGW,OAEZ,CAGA,SAASC,KAIR,OAHAl/D,EAAOqI,YAAY,WAClBq2D,QAAQ73C,CACT,IACS63C,GAAQj6C,KAAK2F,KACvB,CAGA,SAAS+0C,GAAOrgE,EAAMsgE,GACrB,IAAIhqD,EACHvL,EAAI,EACJ6b,EAAQ,CAAE7c,OAAQ/J,GAKnB,IADAsgE,EAAeA,EAAe,EAAI,EAC1Bv1D,EAAI,EAAGA,GAAK,EAAIu1D,EAEvB15C,EAAO,UADPtQ,EAAQy5C,GAAWhlD,KACS6b,EAAO,UAAYtQ,GAAUtW,EAO1D,OAJKsgE,IACJ15C,EAAMu2C,QAAUv2C,EAAM5e,MAAQhI,GAGxB4mB,CACR,CAEA,SAAS25C,GAAaliE,EAAO2D,EAAMw+D,GAKlC,IAJA,IAAInQ,EACH0H,GAAe0I,GAAUC,SAAU1+D,IAAU,IAAK+P,OAAQ0uD,GAAUC,SAAU,MAC9En2D,EAAQ,EACR3L,EAASm5D,EAAWn5D,OACb2L,EAAQ3L,EAAQ2L,IACvB,GAAO8lD,EAAQ0H,EAAYxtD,GAAQgF,KAAMixD,EAAWx+D,EAAM3D,GAGzD,OAAOgyD,CAGV,CAmNA,SAASoQ,GAAW5mB,EAAM8mB,EAAYzuD,GACrC,IAAI4wC,EACH8d,EACAr2D,EAAQ,EACR3L,EAAS6hE,GAAUI,WAAWjiE,OAC9BqsD,EAAW1tD,EAAOutD,WAAWE,QAAQ,kBAG7BmV,EAAKtmB,IACb,IACAsmB,EAAO,WACN,GAAKS,EACJ,OAAO,EAYR,IAVA,IAAIE,EAAclB,IAASQ,KAC1B5T,EAAYt8C,KAAKsiB,IAAK,EAAGguC,EAAUO,UAAYP,EAAUr5C,SAAW25C,GAKpE1B,EAAU,GADH5S,EAAYgU,EAAUr5C,UAAY,GAEzC5c,EAAQ,EACR3L,EAAS4hE,EAAUQ,OAAOpiE,OAEnB2L,EAAQ3L,EAAQ2L,IACvBi2D,EAAUQ,OAAQz2D,GAAQ86B,IAAK+5B,GAMhC,OAHAnU,EAASa,WAAYjS,EAAM,CAAE2mB,EAAWpB,EAAS5S,IAG5C4S,EAAU,GAAKxgE,EACZ4tD,GAIF5tD,GACLqsD,EAASa,WAAYjS,EAAM,CAAE2mB,EAAW,EAAG,IAI5CvV,EAASc,YAAalS,EAAM,CAAE2mB,KACvB,EACR,EACAA,EAAYvV,EAASlB,QAAS,CAC7BlQ,KAAMA,EACNlwB,MAAOpsB,EAAOuG,OAAQ,CAAC,EAAG68D,GAC1BjzC,KAAMnwB,EAAOuG,QAAQ,EAAM,CAC1Bm9D,cAAe,CAAC,EAChBhE,OAAQ1/D,EAAO0/D,OAAOpL,UACpB3/C,GACHgvD,mBAAoBP,EACpBQ,gBAAiBjvD,EACjB6uD,UAAWnB,IAASQ,KACpBj5C,SAAUjV,EAAQiV,SAClB65C,OAAQ,GACRT,YAAa,SAAUv+D,EAAM/D,GAC5B,IAAIoyD,EAAQ9yD,EAAOy/D,MAAOnjB,EAAM2mB,EAAU9yC,KAAM1rB,EAAM/D,EACrDuiE,EAAU9yC,KAAKuzC,cAAej/D,IAAUw+D,EAAU9yC,KAAKuvC,QAExD,OADAuD,EAAUQ,OAAO76D,KAAMkqD,GAChBA,CACR,EACAphB,KAAM,SAAUmyB,GACf,IAAI72D,EAAQ,EAIX3L,EAASwiE,EAAUZ,EAAUQ,OAAOpiE,OAAS,EAC9C,GAAKgiE,EACJ,OAAO7hE,KAGR,IADA6hE,GAAU,EACFr2D,EAAQ3L,EAAQ2L,IACvBi2D,EAAUQ,OAAQz2D,GAAQ86B,IAAK,GAUhC,OANK+7B,GACJnW,EAASa,WAAYjS,EAAM,CAAE2mB,EAAW,EAAG,IAC3CvV,EAASc,YAAalS,EAAM,CAAE2mB,EAAWY,KAEzCnW,EAASiB,WAAYrS,EAAM,CAAE2mB,EAAWY,IAElCriE,IACR,IAED4qB,EAAQ62C,EAAU72C,MAInB,KA/HD,SAAqBA,EAAOs3C,GAC3B,IAAI12D,EAAO7H,EAAMu6D,EAAQ5+D,EAAOgxD,EAGhC,IAAM9kD,KAASof,EAed,GAbAszC,EAASgE,EADTv+D,EAAO4d,GAAW/V,IAElBlM,EAAQsrB,EAAOpf,GACVmF,MAAMiK,QAAStb,KACnB4+D,EAAS5+D,EAAO,GAChBA,EAAQsrB,EAAOpf,GAAUlM,EAAO,IAG5BkM,IAAU7H,IACdinB,EAAOjnB,GAASrE,SACTsrB,EAAOpf,KAGf8kD,EAAQ9xD,EAAO2/D,SAAUx6D,KACX,WAAY2sD,EAMzB,IAAM9kD,KALNlM,EAAQgxD,EAAM2P,OAAQ3gE,UACfsrB,EAAOjnB,GAICrE,EACNkM,KAASof,IAChBA,EAAOpf,GAAUlM,EAAOkM,GACxB02D,EAAe12D,GAAU0yD,QAI3BgE,EAAev+D,GAASu6D,CAG3B,CA0FCoE,CAAY13C,EAAO62C,EAAU9yC,KAAKuzC,eAE1B12D,EAAQ3L,EAAQ2L,IAEvB,GADAu4C,EAAS2d,GAAUI,WAAYt2D,GAAQgF,KAAMixD,EAAW3mB,EAAMlwB,EAAO62C,EAAU9yC,MAM9E,OAJKurB,EAAY6J,EAAO7T,QACvB1xC,EAAO+xD,YAAakR,EAAU3mB,KAAM2mB,EAAU9yC,KAAK88B,OAAQvb,KAC1D6T,EAAO7T,KAAK3+B,KAAMwyC,IAEbA,EAyBT,OArBAvlD,EAAO8V,IAAKsW,EAAO42C,GAAaC,GAE3BvnB,EAAYunB,EAAU9yC,KAAKqY,QAC/By6B,EAAU9yC,KAAKqY,MAAMx2B,KAAMsqC,EAAM2mB,GAIlCA,EACElqC,SAAUkqC,EAAU9yC,KAAK4I,UACzBgnB,KAAMkjB,EAAU9yC,KAAK4vB,KAAMkjB,EAAU9yC,KAAKka,UAC1CpuB,KAAMgnD,EAAU9yC,KAAKlU,MACrBwxC,OAAQwV,EAAU9yC,KAAKs9B,QAEzBztD,EAAOiiE,GAAG8B,MACT/jE,EAAOuG,OAAQq8D,EAAM,CACpBtmB,KAAMA,EACN0nB,KAAMf,EACNhW,MAAOgW,EAAU9yC,KAAK88B,SAIjBgW,CACR,CAEAjjE,EAAOkjE,UAAYljE,EAAOuG,OAAQ28D,GAAW,CAE5CC,SAAU,CACT,IAAK,CAAE,SAAU1+D,EAAM3D,GACtB,IAAIgyD,EAAQtxD,KAAKwhE,YAAav+D,EAAM3D,GAEpC,OADA8xD,GAAWE,EAAMxW,KAAM73C,EAAM8tD,GAAQ5P,KAAM7hD,GAASgyD,GAC7CA,CACR,IAGDmR,QAAS,SAAU73C,EAAO1a,GACpBgqC,EAAYtvB,IAChB1a,EAAW0a,EACXA,EAAQ,CAAE,MAEVA,EAAQA,EAAM9qB,MAAO0qD,GAOtB,IAJA,IAAIvnD,EACHuI,EAAQ,EACR3L,EAAS+qB,EAAM/qB,OAER2L,EAAQ3L,EAAQ2L,IACvBvI,EAAO2nB,EAAOpf,GACdk2D,GAAUC,SAAU1+D,GAASy+D,GAAUC,SAAU1+D,IAAU,GAC3Dy+D,GAAUC,SAAU1+D,GAAO2N,QAASV,EAEtC,EAEA4xD,WAAY,CA3Wb,SAA2BhnB,EAAMlwB,EAAO+D,GACvC,IAAI1rB,EAAM3D,EAAO0H,EAAQspD,EAAOoS,EAASC,EAAWC,EAAgB3sD,EACnE4sD,EAAQ,UAAWj4C,GAAS,WAAYA,EACxC43C,EAAOxiE,KACPk4D,EAAO,CAAC,EACRtmD,EAAQkpC,EAAKlpC,MACbsvD,EAASpmB,EAAKxzB,UAAY6pC,GAAoBrW,GAC9CgoB,EAAWpT,GAASxrD,IAAK42C,EAAM,UA6BhC,IAAM73C,KA1BA0rB,EAAK88B,QAEa,OADvB6E,EAAQ9xD,EAAO+xD,YAAazV,EAAM,OACvBioB,WACVzS,EAAMyS,SAAW,EACjBL,EAAUpS,EAAM/8C,MAAMo4C,KACtB2E,EAAM/8C,MAAMo4C,KAAO,WACZ2E,EAAMyS,UACXL,GAEF,GAEDpS,EAAMyS,WAENP,EAAKvW,QAAQ,WAGZuW,EAAKvW,QAAQ,WACZqE,EAAMyS,WACAvkE,EAAOitD,MAAO3Q,EAAM,MAAOj7C,QAChCywD,EAAM/8C,MAAMo4C,MAEd,GACD,KAIa/gC,EAEb,GADAtrB,EAAQsrB,EAAO3nB,GACV89D,GAAS57D,KAAM7F,GAAU,CAG7B,UAFOsrB,EAAO3nB,GACd+D,EAASA,GAAoB,WAAV1H,EACdA,KAAY4hE,EAAS,OAAS,QAAW,CAI7C,GAAe,SAAV5hE,IAAoBwjE,QAAiC95C,IAArB85C,EAAU7/D,GAK9C,SAJAi+D,GAAS,CAMX,CACAhJ,EAAMj1D,GAAS6/D,GAAYA,EAAU7/D,IAAUzE,EAAOoT,MAAOkpC,EAAM73C,EACpE,CAKD,IADA0/D,GAAankE,EAAO2iB,cAAeyJ,MAChBpsB,EAAO2iB,cAAe+2C,GA8DzC,IAAMj1D,KAzDD4/D,GAA2B,IAAlB/nB,EAAKxzB,WAMlBqH,EAAKq0C,SAAW,CAAEpxD,EAAMoxD,SAAUpxD,EAAMC,UAAWD,EAAME,WAIlC,OADvB8wD,EAAiBE,GAAYA,EAAS7sD,WAErC2sD,EAAiBlT,GAASxrD,IAAK42C,EAAM,YAGrB,UADjB7kC,EAAUzX,EAAOya,IAAK6hC,EAAM,cAEtB8nB,EACJ3sD,EAAU2sD,GAIV5Q,GAAU,CAAElX,IAAQ,GACpB8nB,EAAiB9nB,EAAKlpC,MAAMqE,SAAW2sD,EACvC3sD,EAAUzX,EAAOya,IAAK6hC,EAAM,WAC5BkX,GAAU,CAAElX,OAKG,WAAZ7kC,GAAoC,iBAAZA,GAAgD,MAAlB2sD,IACrB,SAAhCpkE,EAAOya,IAAK6hC,EAAM,WAGhB6nB,IACLH,EAAKjkB,MAAM,WACV3sC,EAAMqE,QAAU2sD,CACjB,IACuB,MAAlBA,IACJ3sD,EAAUrE,EAAMqE,QAChB2sD,EAA6B,SAAZ3sD,EAAqB,GAAKA,IAG7CrE,EAAMqE,QAAU,iBAKd0Y,EAAKq0C,WACTpxD,EAAMoxD,SAAW,SACjBR,EAAKvW,QAAQ,WACZr6C,EAAMoxD,SAAWr0C,EAAKq0C,SAAU,GAChCpxD,EAAMC,UAAY8c,EAAKq0C,SAAU,GACjCpxD,EAAME,UAAY6c,EAAKq0C,SAAU,EAClC,KAIDL,GAAY,EACEzK,EAGPyK,IACAG,EACC,WAAYA,IAChB5B,EAAS4B,EAAS5B,QAGnB4B,EAAWpT,GAASjB,OAAQ3T,EAAM,SAAU,CAAE7kC,QAAS2sD,IAInD57D,IACJ87D,EAAS5B,QAAUA,GAIfA,GACJlP,GAAU,CAAElX,IAAQ,GAKrB0nB,EAAKjkB,MAAM,WASV,IAAMt7C,KAJAi+D,GACLlP,GAAU,CAAElX,IAEb4U,GAASjqD,OAAQq1C,EAAM,UACTod,EACb15D,EAAOoT,MAAOkpC,EAAM73C,EAAMi1D,EAAMj1D,GAElC,KAID0/D,EAAYnB,GAAaN,EAAS4B,EAAU7/D,GAAS,EAAGA,EAAMu/D,GACtDv/D,KAAQ6/D,IACfA,EAAU7/D,GAAS0/D,EAAU37B,MACxBk6B,IACJyB,EAAUzjE,IAAMyjE,EAAU37B,MAC1B27B,EAAU37B,MAAQ,GAItB,GAmMCi8B,UAAW,SAAU/yD,EAAU2E,GACzBA,EACJ6sD,GAAUI,WAAWlxD,QAASV,GAE9BwxD,GAAUI,WAAW16D,KAAM8I,EAE7B,IAGD1R,EAAOoL,MAAQ,SAAUA,EAAOs0D,EAAQn8D,GACvC,IAAImhE,EAAMt5D,GAA0B,iBAAVA,EAAqBpL,EAAOuG,OAAQ,CAAC,EAAG6E,GAAU,CAC3Ei/B,SAAU9mC,IAAOA,GAAMm8D,GACtBhkB,EAAYtwC,IAAWA,EACxBwe,SAAUxe,EACVs0D,OAAQn8D,GAAMm8D,GAAUA,IAAWhkB,EAAYgkB,IAAYA,GAoC5D,OAhCK1/D,EAAOiiE,GAAG5oD,IACdqrD,EAAI96C,SAAW,EAGc,iBAAjB86C,EAAI96C,WACV86C,EAAI96C,YAAY5pB,EAAOiiE,GAAG0C,OAC9BD,EAAI96C,SAAW5pB,EAAOiiE,GAAG0C,OAAQD,EAAI96C,UAGrC86C,EAAI96C,SAAW5pB,EAAOiiE,GAAG0C,OAAOrQ,UAMjB,MAAboQ,EAAIzX,QAA+B,IAAdyX,EAAIzX,QAC7ByX,EAAIzX,MAAQ,MAIbyX,EAAI5I,IAAM4I,EAAIr6B,SAEdq6B,EAAIr6B,SAAW,WACTqR,EAAYgpB,EAAI5I,MACpB4I,EAAI5I,IAAI9pD,KAAMxQ,MAGVkjE,EAAIzX,OACRjtD,EAAO4xD,QAASpwD,KAAMkjE,EAAIzX,MAE5B,EAEOyX,CACR,EAEA1kE,EAAOuD,GAAGgD,OAAQ,CACjBq+D,OAAQ,SAAUx5D,EAAO8jB,EAAIwwC,EAAQhuD,GAGpC,OAAOlQ,KAAK8S,OAAQq+C,IAAqBl4C,IAAK,UAAW,GAAIna,OAG3DI,MAAM0J,QAAS,CAAEw1D,QAAS1wC,GAAM9jB,EAAOs0D,EAAQhuD,EAClD,EACAtH,QAAS,SAAU3F,EAAM2G,EAAOs0D,EAAQhuD,GACvC,IAAIqD,EAAQ/U,EAAO2iB,cAAele,GACjCogE,EAAS7kE,EAAOoL,MAAOA,EAAOs0D,EAAQhuD,GACtCozD,EAAc,WAGb,IAAId,EAAOd,GAAW1hE,KAAMxB,EAAOuG,OAAQ,CAAC,EAAG9B,GAAQogE,IAGlD9vD,GAASm8C,GAASxrD,IAAKlE,KAAM,YACjCwiE,EAAKtyB,MAAM,EAEb,EAID,OAFAozB,EAAYC,OAASD,EAEd/vD,IAA0B,IAAjB8vD,EAAO5X,MACtBzrD,KAAK0D,KAAM4/D,GACXtjE,KAAKyrD,MAAO4X,EAAO5X,MAAO6X,EAC5B,EACApzB,KAAM,SAAUjvC,EAAMwvD,EAAY4R,GACjC,IAAImB,EAAY,SAAUlT,GACzB,IAAIpgB,EAAOogB,EAAMpgB,YACVogB,EAAMpgB,KACbA,EAAMmyB,EACP,EAWA,MATqB,iBAATphE,IACXohE,EAAU5R,EACVA,EAAaxvD,EACbA,OAAO+nB,GAEHynC,GACJzwD,KAAKyrD,MAAOxqD,GAAQ,KAAM,IAGpBjB,KAAK0D,MAAM,WACjB,IAAI0sD,GAAU,EACb5kD,EAAgB,MAARvK,GAAgBA,EAAO,aAC/BwiE,EAASjlE,EAAOilE,OAChBjiE,EAAOkuD,GAASxrD,IAAKlE,MAEtB,GAAKwL,EACChK,EAAMgK,IAAWhK,EAAMgK,GAAQ0kC,MACnCszB,EAAWhiE,EAAMgK,SAGlB,IAAMA,KAAShK,EACTA,EAAMgK,IAAWhK,EAAMgK,GAAQ0kC,MAAQ8wB,GAAK77D,KAAMqG,IACtDg4D,EAAWhiE,EAAMgK,IAKpB,IAAMA,EAAQi4D,EAAO5jE,OAAQ2L,KACvBi4D,EAAQj4D,GAAQsvC,OAAS96C,MACnB,MAARiB,GAAgBwiE,EAAQj4D,GAAQigD,QAAUxqD,IAE5CwiE,EAAQj4D,GAAQg3D,KAAKtyB,KAAMmyB,GAC3BjS,GAAU,EACVqT,EAAOzzD,OAAQxE,EAAO,KAOnB4kD,GAAYiS,GAChB7jE,EAAO4xD,QAASpwD,KAAMiB,EAExB,GACD,EACAsiE,OAAQ,SAAUtiE,GAIjB,OAHc,IAATA,IACJA,EAAOA,GAAQ,MAETjB,KAAK0D,MAAM,WACjB,IAAI8H,EACHhK,EAAOkuD,GAASxrD,IAAKlE,MACrByrD,EAAQjqD,EAAMP,EAAO,SACrBqvD,EAAQ9uD,EAAMP,EAAO,cACrBwiE,EAASjlE,EAAOilE,OAChB5jE,EAAS4rD,EAAQA,EAAM5rD,OAAS,EAajC,IAVA2B,EAAK+hE,QAAS,EAGd/kE,EAAOitD,MAAOzrD,KAAMiB,EAAM,IAErBqvD,GAASA,EAAMpgB,MACnBogB,EAAMpgB,KAAK1/B,KAAMxQ,MAAM,GAIlBwL,EAAQi4D,EAAO5jE,OAAQ2L,KACvBi4D,EAAQj4D,GAAQsvC,OAAS96C,MAAQyjE,EAAQj4D,GAAQigD,QAAUxqD,IAC/DwiE,EAAQj4D,GAAQg3D,KAAKtyB,MAAM,GAC3BuzB,EAAOzzD,OAAQxE,EAAO,IAKxB,IAAMA,EAAQ,EAAGA,EAAQ3L,EAAQ2L,IAC3BigD,EAAOjgD,IAAWigD,EAAOjgD,GAAQ+3D,QACrC9X,EAAOjgD,GAAQ+3D,OAAO/yD,KAAMxQ,aAKvBwB,EAAK+hE,MACb,GACD,IAGD/kE,EAAOkF,KAAM,CAAE,SAAU,OAAQ,SAAU,SAAUw5C,EAAIv5C,GACxD,IAAI+/D,EAAQllE,EAAOuD,GAAI4B,GACvBnF,EAAOuD,GAAI4B,GAAS,SAAUiG,EAAOs0D,EAAQhuD,GAC5C,OAAgB,MAATtG,GAAkC,kBAAVA,EAC9B85D,EAAM3zD,MAAO/P,KAAM6Q,WACnB7Q,KAAK4I,QAAS04D,GAAO39D,GAAM,GAAQiG,EAAOs0D,EAAQhuD,EACpD,CACD,IAGA1R,EAAOkF,KAAM,CACZigE,UAAWrC,GAAO,QAClBsC,QAAStC,GAAO,QAChBuC,YAAavC,GAAO,UACpBn4D,OAAQ,CAAEi1D,QAAS,QACnB54D,QAAS,CAAE44D,QAAS,QACpB0F,WAAY,CAAE1F,QAAS,YACrB,SAAUz6D,EAAMinB,GAClBpsB,EAAOuD,GAAI4B,GAAS,SAAUiG,EAAOs0D,EAAQhuD,GAC5C,OAAOlQ,KAAK4I,QAASgiB,EAAOhhB,EAAOs0D,EAAQhuD,EAC5C,CACD,IAEA1R,EAAOilE,OAAS,GAChBjlE,EAAOiiE,GAAGW,KAAO,WAChB,IAAImB,EACHv2D,EAAI,EACJy3D,EAASjlE,EAAOilE,OAIjB,IAFA5C,GAAQj6C,KAAK2F,MAELvgB,EAAIy3D,EAAO5jE,OAAQmM,KAC1Bu2D,EAAQkB,EAAQz3D,OAGCy3D,EAAQz3D,KAAQu2D,GAChCkB,EAAOzzD,OAAQhE,IAAK,GAIhBy3D,EAAO5jE,QACZrB,EAAOiiE,GAAGvwB,OAEX2wB,QAAQ73C,CACT,EAEAxqB,EAAOiiE,GAAG8B,MAAQ,SAAUA,GAC3B/jE,EAAOilE,OAAOr8D,KAAMm7D,GACpB/jE,EAAOiiE,GAAGz5B,OACX,EAEAxoC,EAAOiiE,GAAGU,SAAW,GACrB3iE,EAAOiiE,GAAGz5B,MAAQ,WACZ85B,KAILA,IAAa,EACbG,KACD,EAEAziE,EAAOiiE,GAAGvwB,KAAO,WAChB4wB,GAAa,IACd,EAEAtiE,EAAOiiE,GAAG0C,OAAS,CAClBY,KAAM,IACNC,KAAM,IAGNlR,SAAU,KAKXt0D,EAAOuD,GAAG8Y,MAAQ,SAAU8oB,EAAM1iC,GAIjC,OAHA0iC,EAAOnlC,EAAOiiE,IAAKjiE,EAAOiiE,GAAG0C,OAAQx/B,IAAiBA,EACtD1iC,EAAOA,GAAQ,KAERjB,KAAKyrD,MAAOxqD,GAAM,SAAUoqB,EAAMilC,GACxC,IAAI1gB,EAAUztC,EAAOqI,WAAY6gB,EAAMsY,GACvC2sB,EAAMpgB,KAAO,WACZ/tC,EAAO4Y,aAAc60B,EACtB,CACD,GACD,EAGA,WACC,IAAIptC,EAAQ/D,EAASqW,cAAe,SAEnCouD,EADSzkE,EAASqW,cAAe,UACpBwP,YAAa7lB,EAASqW,cAAe,WAEnDtS,EAAMvB,KAAO,WAIb6qC,EAAQm4B,QAA0B,KAAhBzhE,EAAMlD,MAIxBwsC,EAAQo4B,YAAchB,EAAI1uD,UAI1BhS,EAAQ/D,EAASqW,cAAe,UAC1BxV,MAAQ,IACdkD,EAAMvB,KAAO,QACb6qC,EAAQq4B,WAA6B,MAAhB3hE,EAAMlD,KAC1B,CArBF,GAwBA,IAAI8kE,GACHnhB,GAAazkD,EAAOukD,KAAKE,WAE1BzkD,EAAOuD,GAAGgD,OAAQ,CACjBhG,KAAM,SAAU4E,EAAMrE,GACrB,OAAOmvD,GAAQzuD,KAAMxB,EAAOO,KAAM4E,EAAMrE,EAAOuR,UAAUhR,OAAS,EACnE,EAEA4V,WAAY,SAAU9R,GACrB,OAAO3D,KAAK0D,MAAM,WACjBlF,EAAOiX,WAAYzV,KAAM2D,EAC1B,GACD,IAGDnF,EAAOuG,OAAQ,CACdhG,KAAM,SAAU+7C,EAAMn3C,EAAMrE,GAC3B,IAAI67C,EAAKmV,EACR+T,EAAQvpB,EAAKxzB,SAGd,GAAe,IAAV+8C,GAAyB,IAAVA,GAAyB,IAAVA,EAKnC,YAAkC,IAAtBvpB,EAAKvoC,aACT/T,EAAOyE,KAAM63C,EAAMn3C,EAAMrE,IAKlB,IAAV+kE,GAAgB7lE,EAAO+9C,SAAUzB,KACrCwV,EAAQ9xD,EAAO8lE,UAAW3gE,EAAK+N,iBAC5BlT,EAAOukD,KAAKjjD,MAAMggD,KAAK36C,KAAMxB,GAASygE,QAAWp7C,SAGtCA,IAAV1pB,EACW,OAAVA,OACJd,EAAOiX,WAAYqlC,EAAMn3C,GAIrB2sD,GAAS,QAASA,QACuBtnC,KAA3CmyB,EAAMmV,EAAMhvC,IAAKw5B,EAAMx7C,EAAOqE,IACzBw3C,GAGRL,EAAKtoC,aAAc7O,EAAMrE,EAAQ,IAC1BA,GAGHgxD,GAAS,QAASA,GAA+C,QAApCnV,EAAMmV,EAAMpsD,IAAK42C,EAAMn3C,IACjDw3C,EAMM,OAHdA,EAAM38C,EAAOQ,KAAKD,KAAM+7C,EAAMn3C,SAGTqlB,EAAYmyB,EAClC,EAEAmpB,UAAW,CACVrjE,KAAM,CACLqgB,IAAK,SAAUw5B,EAAMx7C,GACpB,IAAMwsC,EAAQq4B,YAAwB,UAAV7kE,GAC3B+lB,EAAUy1B,EAAM,SAAY,CAC5B,IAAI76C,EAAM66C,EAAKx7C,MAKf,OAJAw7C,EAAKtoC,aAAc,OAAQlT,GACtBW,IACJ66C,EAAKx7C,MAAQW,GAEPX,CACR,CACD,IAIFmW,WAAY,SAAUqlC,EAAMx7C,GAC3B,IAAIqE,EACHqI,EAAI,EAIJu4D,EAAYjlE,GAASA,EAAMQ,MAAO0qD,GAEnC,GAAK+Z,GAA+B,IAAlBzpB,EAAKxzB,SACtB,KAAU3jB,EAAO4gE,EAAWv4D,MAC3B8uC,EAAKloC,gBAAiBjP,EAGzB,IAIDygE,GAAW,CACV9iD,IAAK,SAAUw5B,EAAMx7C,EAAOqE,GAQ3B,OAPe,IAAVrE,EAGJd,EAAOiX,WAAYqlC,EAAMn3C,GAEzBm3C,EAAKtoC,aAAc7O,EAAMA,GAEnBA,CACR,GAGDnF,EAAOkF,KAAMlF,EAAOukD,KAAKjjD,MAAMggD,KAAKgR,OAAOhxD,MAAO,SAAU,SAAUo9C,EAAIv5C,GACzE,IAAI6gE,EAASvhB,GAAYt/C,IAAUnF,EAAOQ,KAAKD,KAE/CkkD,GAAYt/C,GAAS,SAAUm3C,EAAMn3C,EAAMulD,GAC1C,IAAI/N,EAAKlM,EACRw1B,EAAgB9gE,EAAK+N,cAYtB,OAVMw3C,IAGLja,EAASgU,GAAYwhB,GACrBxhB,GAAYwhB,GAAkBtpB,EAC9BA,EAAqC,MAA/BqpB,EAAQ1pB,EAAMn3C,EAAMulD,GACzBub,EACA,KACDxhB,GAAYwhB,GAAkBx1B,GAExBkM,CACR,CACD,IAKA,IAAIupB,GAAa,sCAChBC,GAAa,gBAwIb,SAASC,GAAkBtlE,GAE1B,OADaA,EAAMQ,MAAO0qD,IAAmB,IAC/Bv3C,KAAM,IACrB,CAGD,SAAS4xD,GAAU/pB,GAClB,OAAOA,EAAKvoC,cAAgBuoC,EAAKvoC,aAAc,UAAa,EAC7D,CAEA,SAASuyD,GAAgBxlE,GACxB,OAAKqR,MAAMiK,QAAStb,GACZA,EAEc,iBAAVA,GACJA,EAAMQ,MAAO0qD,IAEd,EACR,CAxJAhsD,EAAOuD,GAAGgD,OAAQ,CACjB9B,KAAM,SAAUU,EAAMrE,GACrB,OAAOmvD,GAAQzuD,KAAMxB,EAAOyE,KAAMU,EAAMrE,EAAOuR,UAAUhR,OAAS,EACnE,EAEAklE,WAAY,SAAUphE,GACrB,OAAO3D,KAAK0D,MAAM,kBACV1D,KAAMxB,EAAOwmE,QAASrhE,IAAUA,EACxC,GACD,IAGDnF,EAAOuG,OAAQ,CACd9B,KAAM,SAAU63C,EAAMn3C,EAAMrE,GAC3B,IAAI67C,EAAKmV,EACR+T,EAAQvpB,EAAKxzB,SAGd,GAAe,IAAV+8C,GAAyB,IAAVA,GAAyB,IAAVA,EAWnC,OAPe,IAAVA,GAAgB7lE,EAAO+9C,SAAUzB,KAGrCn3C,EAAOnF,EAAOwmE,QAASrhE,IAAUA,EACjC2sD,EAAQ9xD,EAAO4hE,UAAWz8D,SAGZqlB,IAAV1pB,EACCgxD,GAAS,QAASA,QACuBtnC,KAA3CmyB,EAAMmV,EAAMhvC,IAAKw5B,EAAMx7C,EAAOqE,IACzBw3C,EAGCL,EAAMn3C,GAASrE,EAGpBgxD,GAAS,QAASA,GAA+C,QAApCnV,EAAMmV,EAAMpsD,IAAK42C,EAAMn3C,IACjDw3C,EAGDL,EAAMn3C,EACd,EAEAy8D,UAAW,CACV/a,SAAU,CACTnhD,IAAK,SAAU42C,GAMd,IAAImqB,EAAWzmE,EAAOQ,KAAKD,KAAM+7C,EAAM,YAEvC,OAAKmqB,EACGxgE,SAAUwgE,EAAU,IAI3BP,GAAWv/D,KAAM21C,EAAKz1B,WACtBs/C,GAAWx/D,KAAM21C,EAAKz1B,WACtBy1B,EAAKx4C,KAEE,GAGA,CACT,IAIF0iE,QAAS,CACR,IAAO,UACP,MAAS,eAYLl5B,EAAQo4B,cACb1lE,EAAO4hE,UAAU5rD,SAAW,CAC3BtQ,IAAK,SAAU42C,GAId,IAAI53C,EAAS43C,EAAKjvB,WAIlB,OAHK3oB,GAAUA,EAAO2oB,YACrB3oB,EAAO2oB,WAAW05B,cAEZ,IACR,EACAjkC,IAAK,SAAUw5B,GAId,IAAI53C,EAAS43C,EAAKjvB,WACb3oB,IACJA,EAAOqiD,cAEFriD,EAAO2oB,YACX3oB,EAAO2oB,WAAW05B,cAGrB,IAIF/mD,EAAOkF,KAAM,CACZ,WACA,WACA,YACA,cACA,cACA,UACA,UACA,SACA,cACA,oBACE,WACFlF,EAAOwmE,QAAShlE,KAAK0R,eAAkB1R,IACxC,IA2BAxB,EAAOuD,GAAGgD,OAAQ,CACjB3F,SAAU,SAAUE,GACnB,IAAIsqC,EAAYogB,EAAKkb,EAAUtxD,EAAW5H,EAAGm5D,EAE7C,OAAKjrB,EAAY56C,GACTU,KAAK0D,MAAM,SAAUkkB,GAC3BppB,EAAQwB,MAAOZ,SAAUE,EAAMkR,KAAMxQ,KAAM4nB,EAAGi9C,GAAU7kE,OACzD,KAGD4pC,EAAak7B,GAAgBxlE,IAEbO,OACRG,KAAK0D,MAAM,WAIjB,GAHAwhE,EAAWL,GAAU7kE,MACrBgqD,EAAwB,IAAlBhqD,KAAKsnB,UAAoB,IAAMs9C,GAAkBM,GAAa,IAEzD,CACV,IAAMl5D,EAAI,EAAGA,EAAI49B,EAAW/pC,OAAQmM,IACnC4H,EAAYg2B,EAAY59B,GACnBg+C,EAAIj3C,QAAS,IAAMa,EAAY,KAAQ,IAC3Co2C,GAAOp2C,EAAY,KAKrBuxD,EAAaP,GAAkB5a,GAC1Bkb,IAAaC,GACjBnlE,KAAKwS,aAAc,QAAS2yD,EAE9B,CACD,IAGMnlE,IACR,EAEAb,YAAa,SAAUG,GACtB,IAAIsqC,EAAYogB,EAAKkb,EAAUtxD,EAAW5H,EAAGm5D,EAE7C,OAAKjrB,EAAY56C,GACTU,KAAK0D,MAAM,SAAUkkB,GAC3BppB,EAAQwB,MAAOb,YAAaG,EAAMkR,KAAMxQ,KAAM4nB,EAAGi9C,GAAU7kE,OAC5D,IAGK6Q,UAAUhR,QAIhB+pC,EAAak7B,GAAgBxlE,IAEbO,OACRG,KAAK0D,MAAM,WAMjB,GALAwhE,EAAWL,GAAU7kE,MAGrBgqD,EAAwB,IAAlBhqD,KAAKsnB,UAAoB,IAAMs9C,GAAkBM,GAAa,IAEzD,CACV,IAAMl5D,EAAI,EAAGA,EAAI49B,EAAW/pC,OAAQmM,IAInC,IAHA4H,EAAYg2B,EAAY59B,GAGhBg+C,EAAIj3C,QAAS,IAAMa,EAAY,MAAS,GAC/Co2C,EAAMA,EAAI3nD,QAAS,IAAMuR,EAAY,IAAK,KAK5CuxD,EAAaP,GAAkB5a,GAC1Bkb,IAAaC,GACjBnlE,KAAKwS,aAAc,QAAS2yD,EAE9B,CACD,IAGMnlE,KA/BCA,KAAKjB,KAAM,QAAS,GAgC7B,EAEAwC,YAAa,SAAUjC,EAAO8lE,GAC7B,IAAIx7B,EAAYh2B,EAAW5H,EAAGib,EAC7BhmB,SAAc3B,EACd+lE,EAAwB,WAATpkE,GAAqB0P,MAAMiK,QAAStb,GAEpD,OAAK46C,EAAY56C,GACTU,KAAK0D,MAAM,SAAUsI,GAC3BxN,EAAQwB,MAAOuB,YACdjC,EAAMkR,KAAMxQ,KAAMgM,EAAG64D,GAAU7kE,MAAQolE,GACvCA,EAEF,IAGwB,kBAAbA,GAA0BC,EAC9BD,EAAWplE,KAAKZ,SAAUE,GAAUU,KAAKb,YAAaG,IAG9DsqC,EAAak7B,GAAgBxlE,GAEtBU,KAAK0D,MAAM,WACjB,GAAK2hE,EAKJ,IAFAp+C,EAAOzoB,EAAQwB,MAETgM,EAAI,EAAGA,EAAI49B,EAAW/pC,OAAQmM,IACnC4H,EAAYg2B,EAAY59B,GAGnBib,EAAK5mB,SAAUuT,GACnBqT,EAAK9nB,YAAayU,GAElBqT,EAAK7nB,SAAUwU,aAKIoV,IAAV1pB,GAAgC,YAAT2B,KAClC2S,EAAYixD,GAAU7kE,QAIrB0vD,GAASpuC,IAAKthB,KAAM,gBAAiB4T,GAOjC5T,KAAKwS,cACTxS,KAAKwS,aAAc,QAClBoB,IAAuB,IAAVtU,EACZ,GACAowD,GAASxrD,IAAKlE,KAAM,kBAAqB,IAI9C,IACD,EAEAK,SAAU,SAAUsJ,GACnB,IAAIiK,EAAWknC,EACd9uC,EAAI,EAGL,IADA4H,EAAY,IAAMjK,EAAW,IACnBmxC,EAAO96C,KAAMgM,MACtB,GAAuB,IAAlB8uC,EAAKxzB,WACP,IAAMs9C,GAAkBC,GAAU/pB,IAAW,KAAM/nC,QAASa,IAAe,EAC7E,OAAO,EAIT,OAAO,CACR,IAMD,IAAI0xD,GAAU,MAEd9mE,EAAOuD,GAAGgD,OAAQ,CACjB9E,IAAK,SAAUX,GACd,IAAIgxD,EAAOnV,EAAKge,EACfre,EAAO96C,KAAM,GAEd,OAAM6Q,UAAUhR,QA0BhBs5D,EAAkBjf,EAAY56C,GAEvBU,KAAK0D,MAAM,SAAUsI,GAC3B,IAAI/L,EAEmB,IAAlBD,KAAKsnB,WAWE,OANXrnB,EADIk5D,EACE75D,EAAMkR,KAAMxQ,KAAMgM,EAAGxN,EAAQwB,MAAOC,OAEpCX,GAKNW,EAAM,GAEoB,iBAARA,EAClBA,GAAO,GAEI0Q,MAAMiK,QAAS3a,KAC1BA,EAAMzB,EAAO8V,IAAKrU,GAAK,SAAUX,GAChC,OAAgB,MAATA,EAAgB,GAAKA,EAAQ,EACrC,MAGDgxD,EAAQ9xD,EAAO+mE,SAAUvlE,KAAKiB,OAAUzC,EAAO+mE,SAAUvlE,KAAKqlB,SAAS3T,iBAGrD,QAAS4+C,QAA+CtnC,IAApCsnC,EAAMhvC,IAAKthB,KAAMC,EAAK,WAC3DD,KAAKV,MAAQW,GAEf,KA3DM66C,GACJwV,EAAQ9xD,EAAO+mE,SAAUzqB,EAAK75C,OAC7BzC,EAAO+mE,SAAUzqB,EAAKz1B,SAAS3T,iBAG/B,QAAS4+C,QACgCtnC,KAAvCmyB,EAAMmV,EAAMpsD,IAAK42C,EAAM,UAElBK,EAMY,iBAHpBA,EAAML,EAAKx7C,OAIH67C,EAAI94C,QAASijE,GAAS,IAIhB,MAAPnqB,EAAc,GAAKA,OAG3B,CAsCF,IAGD38C,EAAOuG,OAAQ,CACdwgE,SAAU,CACTvxD,OAAQ,CACP9P,IAAK,SAAU42C,GAEd,IAAI76C,EAAMzB,EAAOQ,KAAKD,KAAM+7C,EAAM,SAClC,OAAc,MAAP76C,EACNA,EAMA2kE,GAAkBpmE,EAAOS,KAAM67C,GACjC,GAEDphC,OAAQ,CACPxV,IAAK,SAAU42C,GACd,IAAIx7C,EAAO0U,EAAQhI,EAClBmH,EAAU2nC,EAAK3nC,QACf3H,EAAQsvC,EAAKyK,cACb1T,EAAoB,eAAdiJ,EAAK75C,KACXgxD,EAASpgB,EAAM,KAAO,GACtBpe,EAAMoe,EAAMrmC,EAAQ,EAAI2H,EAAQtT,OAUjC,IAPCmM,EADIR,EAAQ,EACRioB,EAGAoe,EAAMrmC,EAAQ,EAIXQ,EAAIynB,EAAKznB,IAKhB,KAJAgI,EAASb,EAASnH,IAIJwI,UAAYxI,IAAMR,KAG7BwI,EAAOW,YACLX,EAAO6X,WAAWlX,WACnB0Q,EAAUrR,EAAO6X,WAAY,aAAiB,CAMjD,GAHAvsB,EAAQd,EAAQwV,GAAS/T,MAGpB4xC,EACJ,OAAOvyC,EAIR2yD,EAAO7qD,KAAM9H,EACd,CAGD,OAAO2yD,CACR,EAEA3wC,IAAK,SAAUw5B,EAAMx7C,GAMpB,IALA,IAAIkmE,EAAWxxD,EACdb,EAAU2nC,EAAK3nC,QACf8+C,EAASzzD,EAAO69C,UAAW/8C,GAC3B0M,EAAImH,EAAQtT,OAELmM,OACPgI,EAASb,EAASnH,IAINwI,SACXhW,EAAO89C,QAAS99C,EAAO+mE,SAASvxD,OAAO9P,IAAK8P,GAAUi+C,IAAY,KAElEuT,GAAY,GAUd,OAHMA,IACL1qB,EAAKyK,eAAiB,GAEhB0M,CACR,MAMHzzD,EAAOkF,KAAM,CAAE,QAAS,aAAc,WACrClF,EAAO+mE,SAAUvlE,MAAS,CACzBshB,IAAK,SAAUw5B,EAAMx7C,GACpB,GAAKqR,MAAMiK,QAAStb,GACnB,OAASw7C,EAAKwK,QAAU9mD,EAAO89C,QAAS99C,EAAQs8C,GAAO76C,MAAOX,IAAW,CAE3E,GAEKwsC,EAAQm4B,UACbzlE,EAAO+mE,SAAUvlE,MAAOkE,IAAM,SAAU42C,GACvC,OAAwC,OAAjCA,EAAKvoC,aAAc,SAAqB,KAAOuoC,EAAKx7C,KAC5D,EAEF,IAMA,IAAI8C,GAAWD,EAAOC,SAElBi4C,GAAQ,CAAE0C,KAAMn2B,KAAK2F,OAErBk5C,GAAS,KAKbjnE,EAAOknE,SAAW,SAAUlkE,GAC3B,IAAI8iD,EAAKqhB,EACT,IAAMnkE,GAAwB,iBAATA,EACpB,OAAO,KAKR,IACC8iD,GAAM,IAAMniD,EAAOyjE,WAAcC,gBAAiBrkE,EAAM,WACzD,CAAE,MAAQmM,GAAK,CAYf,OAVAg4D,EAAkBrhB,GAAOA,EAAI3+B,qBAAsB,eAAiB,GAC9D2+B,IAAOqhB,GACZnnE,EAAOyD,MAAO,iBACb0jE,EACCnnE,EAAO8V,IAAKqxD,EAAgBjgD,YAAY,SAAUja,GACjD,OAAOA,EAAGsO,WACX,IAAI9G,KAAM,MACVzR,IAGI8iD,CACR,EAGA,IAAIwhB,GAAc,kCACjBC,GAA0B,SAAUp4D,GACnCA,EAAEmI,iBACH,EAEDtX,EAAOuG,OAAQvG,EAAOiC,MAAO,CAE5B4C,QAAS,SAAU5C,EAAOe,EAAMs5C,EAAMkrB,GAErC,IAAIh6D,EAAGg+C,EAAK0G,EAAKuV,EAAYC,EAAQj3B,EAAQ2E,EAASuyB,EACrDC,EAAY,CAAEtrB,GAAQr8C,GACtBwC,EAAO84C,EAAOvpC,KAAM/P,EAAO,QAAWA,EAAMQ,KAAOR,EACnDq0D,EAAa/a,EAAOvpC,KAAM/P,EAAO,aAAgBA,EAAM+7C,UAAU/qC,MAAO,KAAQ,GAKjF,GAHAu4C,EAAMmc,EAAczV,EAAM5V,EAAOA,GAAQr8C,EAGlB,IAAlBq8C,EAAKxzB,UAAoC,IAAlBwzB,EAAKxzB,WAK5Bw+C,GAAY3gE,KAAMlE,EAAOzC,EAAOiC,MAAMw0D,aAItCh0D,EAAK8R,QAAS,MAAS,IAG3B+hD,EAAa7zD,EAAKwQ,MAAO,KACzBxQ,EAAO6zD,EAAWjlB,QAClBilB,EAAW/gD,QAEZmyD,EAASjlE,EAAK8R,QAAS,KAAQ,GAAK,KAAO9R,GAG3CR,EAAQA,EAAOjC,EAAOs9C,SACrBr7C,EACA,IAAIjC,EAAO0a,MAAOjY,EAAuB,iBAAVR,GAAsBA,IAGhDi0D,UAAYsR,EAAe,EAAI,EACrCvlE,EAAM+7C,UAAYsY,EAAW7hD,KAAM,KACnCxS,EAAMs1D,WAAat1D,EAAM+7C,UACxB,IAAItJ,OAAQ,UAAY4hB,EAAW7hD,KAAM,iBAAoB,WAC7D,KAGDxS,EAAMsjD,YAAS/6B,EACTvoB,EAAM2I,SACX3I,EAAM2I,OAAS0xC,GAIhBt5C,EAAe,MAARA,EACN,CAAEf,GACFjC,EAAO69C,UAAW76C,EAAM,CAAEf,IAG3BmzC,EAAUp1C,EAAOiC,MAAMmzC,QAAS3yC,IAAU,CAAC,EACrC+kE,IAAgBpyB,EAAQvwC,UAAmD,IAAxCuwC,EAAQvwC,QAAQ0M,MAAO+qC,EAAMt5C,IAAtE,CAMA,IAAMwkE,IAAiBpyB,EAAQ0iB,WAAanc,EAAUW,GAAS,CAM9D,IAJAmrB,EAAaryB,EAAQE,cAAgB7yC,EAC/B6kE,GAAY3gE,KAAM8gE,EAAahlE,KACpC+oD,EAAMA,EAAIn+B,YAEHm+B,EAAKA,EAAMA,EAAIn+B,WACtBu6C,EAAUh/D,KAAM4iD,GAChB0G,EAAM1G,EAIF0G,KAAU5V,EAAK6B,eAAiBl+C,IACpC2nE,EAAUh/D,KAAMspD,EAAIrO,aAAeqO,EAAI2V,cAAgBlkE,EAEzD,CAIA,IADA6J,EAAI,GACMg+C,EAAMoc,EAAWp6D,QAAYvL,EAAMq1D,wBAC5CqQ,EAAcnc,EACdvpD,EAAMQ,KAAO+K,EAAI,EAChBi6D,EACAryB,EAAQC,UAAY5yC,GAGrBguC,GAAWygB,GAASxrD,IAAK8lD,EAAK,WAAcppD,OAAOuvB,OAAQ,OAAU1vB,EAAMQ,OAC1EyuD,GAASxrD,IAAK8lD,EAAK,YAEnB/a,EAAOl/B,MAAOi6C,EAAKxoD,IAIpBytC,EAASi3B,GAAUlc,EAAKkc,KACTj3B,EAAOl/B,OAASq/C,GAAYpF,KAC1CvpD,EAAMsjD,OAAS9U,EAAOl/B,MAAOi6C,EAAKxoD,IACZ,IAAjBf,EAAMsjD,QACVtjD,EAAMC,kBA8CT,OA1CAD,EAAMQ,KAAOA,EAGP+kE,GAAiBvlE,EAAMmY,sBAEpBg7B,EAAQkf,WACqC,IAApDlf,EAAQkf,SAAS/iD,MAAOq2D,EAAUjiC,MAAO3iC,KACzC4tD,GAAYtU,IAIPorB,GAAUhsB,EAAYY,EAAM75C,MAAak5C,EAAUW,MAGvD4V,EAAM5V,EAAMorB,MAGXprB,EAAMorB,GAAW,MAIlB1nE,EAAOiC,MAAMw0D,UAAYh0D,EAEpBR,EAAMq1D,wBACVqQ,EAAYjhD,iBAAkBjkB,EAAM8kE,IAGrCjrB,EAAM75C,KAEDR,EAAMq1D,wBACVqQ,EAAYhhD,oBAAqBlkB,EAAM8kE,IAGxCvnE,EAAOiC,MAAMw0D,eAAYjsC,EAEpB0nC,IACJ5V,EAAMorB,GAAWxV,IAMdjwD,EAAMsjD,MAvFb,CAwFD,EAIA4T,SAAU,SAAU12D,EAAM65C,EAAMr6C,GAC/B,IAAIkN,EAAInP,EAAOuG,OACd,IAAIvG,EAAO0a,MACXzY,EACA,CACCQ,KAAMA,EACN01D,aAAa,IAIfn4D,EAAOiC,MAAM4C,QAASsK,EAAG,KAAMmtC,EAChC,IAIDt8C,EAAOuD,GAAGgD,OAAQ,CAEjB1B,QAAS,SAAUpC,EAAMO,GACxB,OAAOxB,KAAK0D,MAAM,WACjBlF,EAAOiC,MAAM4C,QAASpC,EAAMO,EAAMxB,KACnC,GACD,EACAsmE,eAAgB,SAAUrlE,EAAMO,GAC/B,IAAIs5C,EAAO96C,KAAM,GACjB,GAAK86C,EACJ,OAAOt8C,EAAOiC,MAAM4C,QAASpC,EAAMO,EAAMs5C,GAAM,EAEjD,IAID,IACCyrB,GAAW,QACXC,GAAQ,SACRC,GAAkB,wCAClBC,GAAe,qCAEhB,SAASC,GAAa10B,EAAQ1yC,EAAKqnE,EAAanyD,GAC/C,IAAI9Q,EAEJ,GAAKgN,MAAMiK,QAASrb,GAGnBf,EAAOkF,KAAMnE,GAAK,SAAUyM,EAAGqC,GACzBu4D,GAAeL,GAASphE,KAAM8sC,GAGlCx9B,EAAKw9B,EAAQ5jC,GAKbs4D,GACC10B,EAAS,KAAqB,iBAAN5jC,GAAuB,MAALA,EAAYrC,EAAI,IAAO,IACjEqC,EACAu4D,EACAnyD,EAGH,SAEM,GAAMmyD,GAAiC,WAAlBjsB,EAAQp7C,GAUnCkV,EAAKw9B,EAAQ1yC,QAPb,IAAMoE,KAAQpE,EACbonE,GAAa10B,EAAS,IAAMtuC,EAAO,IAAKpE,EAAKoE,GAAQijE,EAAanyD,EAQrE,CAIAjW,EAAO8uB,MAAQ,SAAUhf,EAAGs4D,GAC3B,IAAI30B,EACHzjC,EAAI,GACJiG,EAAM,SAAUvL,EAAK29D,GAGpB,IAAIvnE,EAAQ46C,EAAY2sB,GACvBA,IACAA,EAEDr4D,EAAGA,EAAE3O,QAAWinE,mBAAoB59D,GAAQ,IAC3C49D,mBAA6B,MAATxnE,EAAgB,GAAKA,EAC3C,EAED,GAAU,MAALgP,EACJ,MAAO,GAIR,GAAKqC,MAAMiK,QAAStM,IAASA,EAAEqT,SAAWnjB,EAAO4iB,cAAe9S,GAG/D9P,EAAOkF,KAAM4K,GAAG,WACfmG,EAAKzU,KAAK2D,KAAM3D,KAAKV,MACtB,SAMA,IAAM2yC,KAAU3jC,EACfq4D,GAAa10B,EAAQ3jC,EAAG2jC,GAAU20B,EAAanyD,GAKjD,OAAOjG,EAAEyE,KAAM,IAChB,EAEAzU,EAAOuD,GAAGgD,OAAQ,CACjBmB,UAAW,WACV,OAAO1H,EAAO8uB,MAAOttB,KAAK+mE,iBAC3B,EACAA,eAAgB,WACf,OAAO/mE,KAAKsU,KAAK,WAGhB,IAAIykC,EAAWv6C,EAAOyE,KAAMjD,KAAM,YAClC,OAAO+4C,EAAWv6C,EAAO69C,UAAWtD,GAAa/4C,IAClD,IAAI8S,QAAQ,WACX,IAAI7R,EAAOjB,KAAKiB,KAGhB,OAAOjB,KAAK2D,OAASnF,EAAQwB,MAAO4D,GAAI,cACvC8iE,GAAavhE,KAAMnF,KAAKqlB,YAAeohD,GAAgBthE,KAAMlE,KAC3DjB,KAAKslD,UAAY4M,GAAe/sD,KAAMlE,GAC1C,IAAIqT,KAAK,SAAU4oC,EAAIpC,GACtB,IAAI76C,EAAMzB,EAAQwB,MAAOC,MAEzB,OAAY,MAAPA,EACG,KAGH0Q,MAAMiK,QAAS3a,GACZzB,EAAO8V,IAAKrU,GAAK,SAAUA,GACjC,MAAO,CAAE0D,KAAMm3C,EAAKn3C,KAAMrE,MAAOW,EAAIoC,QAASmkE,GAAO,QACtD,IAGM,CAAE7iE,KAAMm3C,EAAKn3C,KAAMrE,MAAOW,EAAIoC,QAASmkE,GAAO,QACtD,IAAItiE,KACL,IAID,IACC8iE,GAAM,OACNC,GAAQ,OACRC,GAAa,gBACbC,GAAW,6BAIXC,GAAa,iBACbC,GAAY,QAWZvF,GAAa,CAAC,EAOdwF,GAAa,CAAC,EAGdC,GAAW,KAAKv0D,OAAQ,KAGxBw0D,GAAe/oE,EAASqW,cAAe,KAKxC,SAAS2yD,GAA6BC,GAGrC,OAAO,SAAUC,EAAoBj7B,GAED,iBAAvBi7B,IACXj7B,EAAOi7B,EACPA,EAAqB,KAGtB,IAAIC,EACH57D,EAAI,EACJ67D,EAAYF,EAAmBj2D,cAAc5R,MAAO0qD,IAAmB,GAExE,GAAKtQ,EAAYxN,GAGhB,KAAUk7B,EAAWC,EAAW77D,MAGR,MAAlB47D,EAAU,IACdA,EAAWA,EAAS9gE,MAAO,IAAO,KAChC4gE,EAAWE,GAAaF,EAAWE,IAAc,IAAKh3D,QAAS87B,KAI/Dg7B,EAAWE,GAAaF,EAAWE,IAAc,IAAKxgE,KAAMslC,EAIlE,CACD,CAGA,SAASo7B,GAA+BJ,EAAWv0D,EAASivD,EAAiB2F,GAE5E,IAAIC,EAAY,CAAC,EAChBC,EAAqBP,IAAcJ,GAEpC,SAASY,EAASN,GACjB,IAAIpzD,EAcJ,OAbAwzD,EAAWJ,IAAa,EACxBppE,EAAOkF,KAAMgkE,EAAWE,IAAc,IAAI,SAAUr5D,EAAG45D,GACtD,IAAIC,EAAsBD,EAAoBh1D,EAASivD,EAAiB2F,GACxE,MAAoC,iBAAxBK,GACVH,GAAqBD,EAAWI,GAKtBH,IACDzzD,EAAW4zD,QADf,GAHNj1D,EAAQ00D,UAAUj3D,QAASw3D,GAC3BF,EAASE,IACF,EAIT,IACO5zD,CACR,CAEA,OAAO0zD,EAAS/0D,EAAQ00D,UAAW,MAAUG,EAAW,MAASE,EAAS,IAC3E,CAKA,SAASG,GAAYj/D,EAAQ4D,GAC5B,IAAI9D,EAAK2yC,EACRysB,EAAc9pE,EAAO+pE,aAAaD,aAAe,CAAC,EAEnD,IAAMp/D,KAAO8D,OACQgc,IAAfhc,EAAK9D,MACPo/D,EAAap/D,GAAQE,EAAWyyC,IAAUA,EAAO,CAAC,IAAS3yC,GAAQ8D,EAAK9D,IAO5E,OAJK2yC,GACJr9C,EAAOuG,QAAQ,EAAMqE,EAAQyyC,GAGvBzyC,CACR,CAhFAo+D,GAAallE,KAAOF,GAASE,KAgP7B9D,EAAOuG,OAAQ,CAGdyjE,OAAQ,EAGRC,aAAc,CAAC,EACfC,KAAM,CAAC,EAEPH,aAAc,CACbrnE,IAAKkB,GAASE,KACdrB,KAAM,MACN0nE,QAxRgB,4DAwRQxjE,KAAM/C,GAAS8jB,UACvCqzB,QAAQ,EACRhsC,aAAa,EACbq7D,OAAO,EACPp7D,YAAa,mDAcbq7D,QAAS,CACR,IAAKtB,GACLtoE,KAAM,aACNmE,KAAM,YACNkhD,IAAK,4BACLwkB,KAAM,qCAGPhf,SAAU,CACTxF,IAAK,UACLlhD,KAAM,SACN0lE,KAAM,YAGPC,eAAgB,CACfzkB,IAAK,cACLrlD,KAAM,eACN6pE,KAAM,gBAKPE,WAAY,CAGX,SAAU52D,OAGV,aAAa,EAGb,YAAa29C,KAAKC,MAGlB,WAAYxxD,EAAOknE,UAOpB4C,YAAa,CACZpnE,KAAK,EACLgmB,SAAS,IAOX+hD,UAAW,SAAU7/D,EAAQ8/D,GAC5B,OAAOA,EAGNb,GAAYA,GAAYj/D,EAAQ5K,EAAO+pE,cAAgBW,GAGvDb,GAAY7pE,EAAO+pE,aAAcn/D,EACnC,EAEA+/D,cAAe1B,GAA6B3F,IAC5CsH,cAAe3B,GAA6BH,IAG5CtmE,KAAM,SAAUE,EAAKiS,GAGA,iBAARjS,IACXiS,EAAUjS,EACVA,OAAM8nB,GAIP7V,EAAUA,GAAW,CAAC,EAEtB,IAAIqH,EAGH6uD,EAGAC,EACAC,EAGAC,EAGAC,EAGAtb,EAGAub,EAGA19D,EAGA29D,EAGAn7D,EAAIhQ,EAAOyqE,UAAW,CAAC,EAAG91D,GAG1By2D,EAAkBp7D,EAAE0Y,SAAW1Y,EAG/Bq7D,EAAqBr7D,EAAE0Y,UACpB0iD,EAAgBtiD,UAAYsiD,EAAgBjoD,QAC9CnjB,EAAQorE,GACRprE,EAAOiC,MAGRyrD,EAAW1tD,EAAOutD,WAClB+d,EAAmBtrE,EAAOysD,UAAW,eAGrC8e,EAAav7D,EAAEu7D,YAAc,CAAC,EAG9BC,EAAiB,CAAC,EAClBC,EAAsB,CAAC,EAGvBC,EAAW,WAGXnC,EAAQ,CACPxZ,WAAY,EAGZ4b,kBAAmB,SAAUjhE,GAC5B,IAAIpJ,EACJ,GAAKquD,EAAY,CAChB,IAAMob,EAEL,IADAA,EAAkB,CAAC,EACTzpE,EAAQqnE,GAAShmB,KAAMmoB,IAChCC,EAAiBzpE,EAAO,GAAI4R,cAAgB,MACzC63D,EAAiBzpE,EAAO,GAAI4R,cAAgB,MAAS,IACrDsB,OAAQlT,EAAO,IAGpBA,EAAQypE,EAAiBrgE,EAAIwI,cAAgB,IAC9C,CACA,OAAgB,MAAT5R,EAAgB,KAAOA,EAAMmT,KAAM,KAC3C,EAGAm3D,sBAAuB,WACtB,OAAOjc,EAAYmb,EAAwB,IAC5C,EAGAe,iBAAkB,SAAU1mE,EAAMrE,GAMjC,OALkB,MAAb6uD,IACJxqD,EAAOsmE,EAAqBtmE,EAAK+N,eAChCu4D,EAAqBtmE,EAAK+N,gBAAmB/N,EAC9CqmE,EAAgBrmE,GAASrE,GAEnBU,IACR,EAGAsqE,iBAAkB,SAAUrpE,GAI3B,OAHkB,MAAbktD,IACJ3/C,EAAE+7D,SAAWtpE,GAEPjB,IACR,EAGA+pE,WAAY,SAAUz1D,GACrB,IAAIlQ,EACJ,GAAKkQ,EACJ,GAAK65C,EAGJ4Z,EAAM9b,OAAQ33C,EAAKyzD,EAAMjmE,cAIzB,IAAMsC,KAAQkQ,EACby1D,EAAY3lE,GAAS,CAAE2lE,EAAY3lE,GAAQkQ,EAAKlQ,IAInD,OAAOpE,IACR,EAGA2a,MAAO,SAAU6vD,GAChB,IAAIC,EAAYD,GAAcN,EAK9B,OAJK1vD,GACJA,EAAUG,MAAO8vD,GAElBlsB,EAAM,EAAGksB,GACFzqE,IACR,GAmBF,GAfAksD,EAASlB,QAAS+c,GAKlBv5D,EAAEtN,MAAUA,GAAOsN,EAAEtN,KAAOkB,GAASE,MAAS,IAC5CD,QAASglE,GAAWjlE,GAAS8jB,SAAW,MAG1C1X,EAAEvN,KAAOkS,EAAQ+b,QAAU/b,EAAQlS,MAAQuN,EAAE0gB,QAAU1gB,EAAEvN,KAGzDuN,EAAEq5D,WAAcr5D,EAAEo5D,UAAY,KAAMl2D,cAAc5R,MAAO0qD,IAAmB,CAAE,IAGxD,MAAjBh8C,EAAEk8D,YAAsB,CAC5BjB,EAAYhrE,EAASqW,cAAe,KAKpC,IACC20D,EAAUnnE,KAAOkM,EAAEtN,IAInBuoE,EAAUnnE,KAAOmnE,EAAUnnE,KAC3BkM,EAAEk8D,YAAclD,GAAathD,SAAW,KAAOshD,GAAa1hD,MAC3D2jD,EAAUvjD,SAAW,KAAOujD,EAAU3jD,IACxC,CAAE,MAAQnY,GAITa,EAAEk8D,aAAc,CACjB,CACD,CAWA,GARKl8D,EAAEhN,MAAQgN,EAAEjB,aAAiC,iBAAXiB,EAAEhN,OACxCgN,EAAEhN,KAAOhD,EAAO8uB,MAAO9e,EAAEhN,KAAMgN,EAAEo4D,cAIlCkB,GAA+BhG,GAAYtzD,EAAG2E,EAAS40D,GAGlD5Z,EACJ,OAAO4Z,EA8ER,IAAM/7D,KAzEN09D,EAAclrE,EAAOiC,OAAS+N,EAAE+qC,SAGQ,GAApB/6C,EAAOgqE,UAC1BhqE,EAAOiC,MAAM4C,QAAS,aAIvBmL,EAAEvN,KAAOuN,EAAEvN,KAAKka,cAGhB3M,EAAEm8D,YAAcvD,GAAWjiE,KAAMqJ,EAAEvN,MAKnCooE,EAAW76D,EAAEtN,IAAImB,QAAS4kE,GAAO,IAG3Bz4D,EAAEm8D,WAwBIn8D,EAAEhN,MAAQgN,EAAEjB,aACoD,KAAzEiB,EAAEhB,aAAe,IAAKuF,QAAS,uCACjCvE,EAAEhN,KAAOgN,EAAEhN,KAAKa,QAAS2kE,GAAK,OAvB9B2C,EAAWn7D,EAAEtN,IAAI4F,MAAOuiE,EAASxpE,QAG5B2O,EAAEhN,OAAUgN,EAAEjB,aAAiC,iBAAXiB,EAAEhN,QAC1C6nE,IAAc5D,GAAOtgE,KAAMkkE,GAAa,IAAM,KAAQ76D,EAAEhN,YAGjDgN,EAAEhN,OAIO,IAAZgN,EAAEkzC,QACN2nB,EAAWA,EAAShnE,QAAS6kE,GAAY,MACzCyC,GAAalE,GAAOtgE,KAAMkkE,GAAa,IAAM,KAAQ,KAAShvB,GAAM0C,OACnE4sB,GAIFn7D,EAAEtN,IAAMmoE,EAAWM,GASfn7D,EAAEo8D,aACDpsE,EAAOiqE,aAAcY,IACzBtB,EAAMsC,iBAAkB,oBAAqB7rE,EAAOiqE,aAAcY,IAE9D7qE,EAAOkqE,KAAMW,IACjBtB,EAAMsC,iBAAkB,gBAAiB7rE,EAAOkqE,KAAMW,MAKnD76D,EAAEhN,MAAQgN,EAAEm8D,aAAgC,IAAlBn8D,EAAEhB,aAAyB2F,EAAQ3F,cACjEu6D,EAAMsC,iBAAkB,eAAgB77D,EAAEhB,aAI3Cu6D,EAAMsC,iBACL,SACA77D,EAAEq5D,UAAW,IAAOr5D,EAAEq6D,QAASr6D,EAAEq5D,UAAW,IAC3Cr5D,EAAEq6D,QAASr6D,EAAEq5D,UAAW,KACA,MAArBr5D,EAAEq5D,UAAW,GAAc,KAAON,GAAW,WAAa,IAC7D/4D,EAAEq6D,QAAS,MAIFr6D,EAAEq8D,QACZ9C,EAAMsC,iBAAkBr+D,EAAGwC,EAAEq8D,QAAS7+D,IAIvC,GAAKwC,EAAEnN,cAC+C,IAAnDmN,EAAEnN,WAAWmP,KAAMo5D,EAAiB7B,EAAOv5D,IAAiB2/C,GAG9D,OAAO4Z,EAAMptD,QAed,GAXAuvD,EAAW,QAGXJ,EAAiBr1D,IAAKjG,EAAEq6B,UACxBk/B,EAAMxpB,KAAM/vC,EAAE5M,SACdmmE,EAAMttD,KAAMjM,EAAEvM,OAGduY,EAAYstD,GAA+BR,GAAY94D,EAAG2E,EAAS40D,GAK5D,CASN,GARAA,EAAMxZ,WAAa,EAGdmb,GACJG,EAAmBxmE,QAAS,WAAY,CAAE0kE,EAAOv5D,IAI7C2/C,EACJ,OAAO4Z,EAIHv5D,EAAEo6D,OAASp6D,EAAEohC,QAAU,IAC3B45B,EAAernE,EAAOqI,YAAY,WACjCu9D,EAAMptD,MAAO,UACd,GAAGnM,EAAEohC,UAGN,IACCue,GAAY,EACZ3zC,EAAUswD,KAAMd,EAAgBzrB,EACjC,CAAE,MAAQ5wC,GAGT,GAAKwgD,EACJ,MAAMxgD,EAIP4wC,GAAO,EAAG5wC,EACX,CACD,MAlCC4wC,GAAO,EAAG,gBAqCX,SAASA,EAAMz8C,EAAQipE,EAAkBC,EAAWH,GACnD,IAAII,EAAWrpE,EAASK,EAAOipE,EAAUC,EACxCX,EAAaO,EAGT5c,IAILA,GAAY,EAGPqb,GACJrnE,EAAO4Y,aAAcyuD,GAKtBhvD,OAAYwO,EAGZsgD,EAAwBuB,GAAW,GAGnC9C,EAAMxZ,WAAazsD,EAAS,EAAI,EAAI,EAGpCmpE,EAAYnpE,GAAU,KAAOA,EAAS,KAAkB,MAAXA,EAGxCkpE,IACJE,EA7lBJ,SAA8B18D,EAAGu5D,EAAOiD,GAOvC,IALA,IAAII,EAAInqE,EAAMoqE,EAAeC,EAC5BxhB,EAAWt7C,EAAEs7C,SACb+d,EAAYr5D,EAAEq5D,UAGY,MAAnBA,EAAW,IAClBA,EAAUh4B,aACE7mB,IAAPoiD,IACJA,EAAK58D,EAAE+7D,UAAYxC,EAAMoC,kBAAmB,iBAK9C,GAAKiB,EACJ,IAAMnqE,KAAQ6oD,EACb,GAAKA,EAAU7oD,IAAU6oD,EAAU7oD,GAAOkE,KAAMimE,GAAO,CACtDvD,EAAUj3D,QAAS3P,GACnB,KACD,CAKF,GAAK4mE,EAAW,KAAOmD,EACtBK,EAAgBxD,EAAW,OACrB,CAGN,IAAM5mE,KAAQ+pE,EAAY,CACzB,IAAMnD,EAAW,IAAOr5D,EAAEw6D,WAAY/nE,EAAO,IAAM4mE,EAAW,IAAQ,CACrEwD,EAAgBpqE,EAChB,KACD,CACMqqE,IACLA,EAAgBrqE,EAElB,CAGAoqE,EAAgBA,GAAiBC,CAClC,CAKA,GAAKD,EAIJ,OAHKA,IAAkBxD,EAAW,IACjCA,EAAUj3D,QAASy6D,GAEbL,EAAWK,EAEpB,CAwiBeE,CAAqB/8D,EAAGu5D,EAAOiD,KAIrCC,GACLzsE,EAAO89C,QAAS,SAAU9tC,EAAEq5D,YAAe,GAC3CrpE,EAAO89C,QAAS,OAAQ9tC,EAAEq5D,WAAc,IACxCr5D,EAAEw6D,WAAY,eAAkB,WAAY,GAI7CkC,EA9iBH,SAAsB18D,EAAG08D,EAAUnD,EAAOkD,GACzC,IAAIO,EAAOn3D,EAASo3D,EAAM/a,EAAKjlC,EAC9Bu9C,EAAa,CAAC,EAGdnB,EAAYr5D,EAAEq5D,UAAU/gE,QAGzB,GAAK+gE,EAAW,GACf,IAAM4D,KAAQj9D,EAAEw6D,WACfA,EAAYyC,EAAK/5D,eAAkBlD,EAAEw6D,WAAYyC,GAOnD,IAHAp3D,EAAUwzD,EAAUh4B,QAGZx7B,GAcP,GAZK7F,EAAEu6D,eAAgB10D,KACtB0zD,EAAOv5D,EAAEu6D,eAAgB10D,IAAc62D,IAIlCz/C,GAAQw/C,GAAaz8D,EAAEk9D,aAC5BR,EAAW18D,EAAEk9D,WAAYR,EAAU18D,EAAEo5D,WAGtCn8C,EAAOpX,EACPA,EAAUwzD,EAAUh4B,QAKnB,GAAiB,MAAZx7B,EAEJA,EAAUoX,OAGJ,GAAc,MAATA,GAAgBA,IAASpX,EAAU,CAM9C,KAHAo3D,EAAOzC,EAAYv9C,EAAO,IAAMpX,IAAa20D,EAAY,KAAO30D,IAI/D,IAAMm3D,KAASxC,EAId,IADAtY,EAAM8a,EAAM/5D,MAAO,MACT,KAAQ4C,IAGjBo3D,EAAOzC,EAAYv9C,EAAO,IAAMilC,EAAK,KACpCsY,EAAY,KAAOtY,EAAK,KACb,EAGG,IAAT+a,EACJA,EAAOzC,EAAYwC,IAGgB,IAAxBxC,EAAYwC,KACvBn3D,EAAUq8C,EAAK,GACfmX,EAAUj3D,QAAS8/C,EAAK,KAEzB,KACD,CAMH,IAAc,IAAT+a,EAGJ,GAAKA,GAAQj9D,EAAEm9D,OACdT,EAAWO,EAAMP,QAEjB,IACCA,EAAWO,EAAMP,EAClB,CAAE,MAAQv9D,GACT,MAAO,CACNhG,MAAO,cACP1F,MAAOwpE,EAAO99D,EAAI,sBAAwB8d,EAAO,OAASpX,EAE5D,CAGH,CAIF,MAAO,CAAE1M,MAAO,UAAWnG,KAAM0pE,EAClC,CAgdcU,CAAap9D,EAAG08D,EAAUnD,EAAOkD,GAGvCA,GAGCz8D,EAAEo8D,cACNO,EAAWpD,EAAMoC,kBAAmB,oBAEnC3rE,EAAOiqE,aAAcY,GAAa8B,IAEnCA,EAAWpD,EAAMoC,kBAAmB,WAEnC3rE,EAAOkqE,KAAMW,GAAa8B,IAKZ,MAAXrpE,GAA6B,SAAX0M,EAAEvN,KACxBupE,EAAa,YAGS,MAAX1oE,EACX0oE,EAAa,eAIbA,EAAaU,EAASvjE,MACtB/F,EAAUspE,EAAS1pE,KAEnBypE,IADAhpE,EAAQipE,EAASjpE,UAMlBA,EAAQuoE,GACH1oE,GAAW0oE,IACfA,EAAa,QACR1oE,EAAS,IACbA,EAAS,KAMZimE,EAAMjmE,OAASA,EACfimE,EAAMyC,YAAeO,GAAoBP,GAAe,GAGnDS,EACJ/e,EAASc,YAAa4c,EAAiB,CAAEhoE,EAAS4oE,EAAYzC,IAE9D7b,EAASiB,WAAYyc,EAAiB,CAAE7B,EAAOyC,EAAYvoE,IAI5D8lE,EAAMgC,WAAYA,GAClBA,OAAa/gD,EAER0gD,GACJG,EAAmBxmE,QAAS4nE,EAAY,cAAgB,YACvD,CAAElD,EAAOv5D,EAAGy8D,EAAYrpE,EAAUK,IAIpC6nE,EAAiBhe,SAAU8d,EAAiB,CAAE7B,EAAOyC,IAEhDd,IACJG,EAAmBxmE,QAAS,eAAgB,CAAE0kE,EAAOv5D,MAG3ChQ,EAAOgqE,QAChBhqE,EAAOiC,MAAM4C,QAAS,aAGzB,CAEA,OAAO0kE,CACR,EAEA8D,QAAS,SAAU3qE,EAAKM,EAAM0O,GAC7B,OAAO1R,EAAO0F,IAAKhD,EAAKM,EAAM0O,EAAU,OACzC,EAEA47D,UAAW,SAAU5qE,EAAKgP,GACzB,OAAO1R,EAAO0F,IAAKhD,OAAK8nB,EAAW9Y,EAAU,SAC9C,IAGD1R,EAAOkF,KAAM,CAAE,MAAO,SAAU,SAAUw5C,EAAIhuB,GAC7C1wB,EAAQ0wB,GAAW,SAAUhuB,EAAKM,EAAM0O,EAAUjP,GAUjD,OAPKi5C,EAAY14C,KAChBP,EAAOA,GAAQiP,EACfA,EAAW1O,EACXA,OAAOwnB,GAIDxqB,EAAOwC,KAAMxC,EAAOuG,OAAQ,CAClC7D,IAAKA,EACLD,KAAMiuB,EACN04C,SAAU3mE,EACVO,KAAMA,EACNI,QAASsO,GACP1R,EAAO4iB,cAAelgB,IAASA,GACnC,CACD,IAEA1C,EAAO2qE,eAAe,SAAU36D,GAC/B,IAAIxC,EACJ,IAAMA,KAAKwC,EAAEq8D,QACa,iBAApB7+D,EAAE0F,gBACNlD,EAAEhB,YAAcgB,EAAEq8D,QAAS7+D,IAAO,GAGrC,IAGAxN,EAAO46D,SAAW,SAAUl4D,EAAKiS,EAAS6R,GACzC,OAAOxmB,EAAOwC,KAAM,CACnBE,IAAKA,EAGLD,KAAM,MACN2mE,SAAU,SACVlmB,OAAO,EACPknB,OAAO,EACPrvB,QAAQ,EAKRyvB,WAAY,CACX,cAAe,WAAY,GAE5B0C,WAAY,SAAUR,GACrB1sE,EAAO29C,WAAY+uB,EAAU/3D,EAAS6R,EACvC,GAEF,EAGAxmB,EAAOuD,GAAGgD,OAAQ,CACjBgnE,QAAS,SAAU3oE,GAClB,IAAIwwD,EAyBJ,OAvBK5zD,KAAM,KACLk6C,EAAY92C,KAChBA,EAAOA,EAAKoN,KAAMxQ,KAAM,KAIzB4zD,EAAOp1D,EAAQ4E,EAAMpD,KAAM,GAAI28C,eAAgBhnC,GAAI,GAAIimC,OAAO,GAEzD57C,KAAM,GAAI6rB,YACd+nC,EAAKxoC,aAAcprB,KAAM,IAG1B4zD,EAAKt/C,KAAK,WAGT,IAFA,IAAIwmC,EAAO96C,KAEH86C,EAAKkxB,mBACZlxB,EAAOA,EAAKkxB,kBAGb,OAAOlxB,CACR,IAAIz0C,OAAQrG,OAGNA,IACR,EAEAisE,UAAW,SAAU7oE,GACpB,OAAK82C,EAAY92C,GACTpD,KAAK0D,MAAM,SAAUsI,GAC3BxN,EAAQwB,MAAOisE,UAAW7oE,EAAKoN,KAAMxQ,KAAMgM,GAC5C,IAGMhM,KAAK0D,MAAM,WACjB,IAAIujB,EAAOzoB,EAAQwB,MAClB8pD,EAAW7iC,EAAK6iC,WAEZA,EAASjqD,OACbiqD,EAASiiB,QAAS3oE,GAGlB6jB,EAAK5gB,OAAQjD,EAEf,GACD,EAEAwwD,KAAM,SAAUxwD,GACf,IAAI8oE,EAAiBhyB,EAAY92C,GAEjC,OAAOpD,KAAK0D,MAAM,SAAUsI,GAC3BxN,EAAQwB,MAAO+rE,QAASG,EAAiB9oE,EAAKoN,KAAMxQ,KAAMgM,GAAM5I,EACjE,GACD,EAEA+oE,OAAQ,SAAUxiE,GAIjB,OAHA3J,KAAKkD,OAAQyG,GAAW5C,IAAK,QAASrD,MAAM,WAC3ClF,EAAQwB,MAAOmD,YAAanD,KAAK0lB,WAClC,IACO1lB,IACR,IAIDxB,EAAOukD,KAAK/D,QAAQkiB,OAAS,SAAUpmB,GACtC,OAAQt8C,EAAOukD,KAAK/D,QAAQotB,QAAStxB,EACtC,EACAt8C,EAAOukD,KAAK/D,QAAQotB,QAAU,SAAUtxB,GACvC,SAAWA,EAAK3wB,aAAe2wB,EAAKzwB,cAAgBywB,EAAKkjB,iBAAiBn+D,OAC3E,EAKArB,EAAO+pE,aAAa8D,IAAM,WACzB,IACC,OAAO,IAAIlqE,EAAOmqE,cACnB,CAAE,MAAQ3+D,GAAK,CAChB,EAEA,IAAI4+D,GAAmB,CAGrB,EAAG,IAIH,KAAM,KAEPC,GAAehuE,EAAO+pE,aAAa8D,MAEpCvgC,EAAQ2gC,OAASD,IAAkB,oBAAqBA,GACxD1gC,EAAQ9qC,KAAOwrE,KAAiBA,GAEhChuE,EAAO4qE,eAAe,SAAUj2D,GAC/B,IAAIjD,EAAUw8D,EAGd,GAAK5gC,EAAQ2gC,MAAQD,KAAiBr5D,EAAQu3D,YAC7C,MAAO,CACNI,KAAM,SAAUD,EAAShiC,GACxB,IAAI78B,EACHqgE,EAAMl5D,EAAQk5D,MAWf,GATAA,EAAIhpD,KACHlQ,EAAQlS,KACRkS,EAAQjS,IACRiS,EAAQy1D,MACRz1D,EAAQw5D,SACRx5D,EAAQ6yC,UAIJ7yC,EAAQy5D,UACZ,IAAM5gE,KAAKmH,EAAQy5D,UAClBP,EAAKrgE,GAAMmH,EAAQy5D,UAAW5gE,GAmBhC,IAAMA,KAdDmH,EAAQo3D,UAAY8B,EAAI/B,kBAC5B+B,EAAI/B,iBAAkBn3D,EAAQo3D,UAQzBp3D,EAAQu3D,aAAgBG,EAAS,sBACtCA,EAAS,oBAAuB,kBAItBA,EACVwB,EAAIhC,iBAAkBr+D,EAAG6+D,EAAS7+D,IAInCkE,EAAW,SAAUjP,GACpB,OAAO,WACDiP,IACJA,EAAWw8D,EAAgBL,EAAIn/D,OAC9Bm/D,EAAIvjC,QAAUujC,EAAIQ,QAAUR,EAAIS,UAC/BT,EAAIU,mBAAqB,KAEb,UAAT9rE,EACJorE,EAAI1xD,QACgB,UAAT1Z,EAKgB,iBAAforE,EAAIvqE,OACf+mC,EAAU,EAAG,SAEbA,EAGCwjC,EAAIvqE,OACJuqE,EAAI7B,YAIN3hC,EACC0jC,GAAkBF,EAAIvqE,SAAYuqE,EAAIvqE,OACtCuqE,EAAI7B,WAK+B,UAAjC6B,EAAIW,cAAgB,SACM,iBAArBX,EAAIY,aACV,CAAEC,OAAQb,EAAInB,UACd,CAAEjsE,KAAMotE,EAAIY,cACbZ,EAAIjC,yBAIR,CACD,EAGAiC,EAAIn/D,OAASgD,IACbw8D,EAAgBL,EAAIvjC,QAAUujC,EAAIS,UAAY58D,EAAU,cAKnC8Y,IAAhBqjD,EAAIQ,QACRR,EAAIQ,QAAUH,EAEdL,EAAIU,mBAAqB,WAGA,IAAnBV,EAAI9d,YAMRpsD,EAAOqI,YAAY,WACb0F,GACJw8D,GAEF,GAEF,EAIDx8D,EAAWA,EAAU,SAErB,IAGCm8D,EAAIvB,KAAM33D,EAAQw3D,YAAcx3D,EAAQ3R,MAAQ,KACjD,CAAE,MAAQmM,GAGT,GAAKuC,EACJ,MAAMvC,CAER,CACD,EAEAgN,MAAO,WACDzK,GACJA,GAEF,EAGH,IAMA1R,EAAO2qE,eAAe,SAAU36D,GAC1BA,EAAEk8D,cACNl8D,EAAEs7C,SAASrP,QAAS,EAEtB,IAGAj8C,EAAOyqE,UAAW,CACjBJ,QAAS,CACRpuB,OAAQ,6FAGTqP,SAAU,CACTrP,OAAQ,2BAETuuB,WAAY,CACX,cAAe,SAAU/pE,GAExB,OADAT,EAAO29C,WAAYl9C,GACZA,CACR,KAKFT,EAAO2qE,cAAe,UAAU,SAAU36D,QACxBwa,IAAZxa,EAAEkzC,QACNlzC,EAAEkzC,OAAQ,GAENlzC,EAAEk8D,cACNl8D,EAAEvN,KAAO,MAEX,IAGAzC,EAAO4qE,cAAe,UAAU,SAAU56D,GAIxC,IAAIisC,EAAQvqC,EADb,GAAK1B,EAAEk8D,aAAel8D,EAAE2+D,YAEvB,MAAO,CACNrC,KAAM,SAAUv8D,EAAGs6B,GAClB4R,EAASj8C,EAAQ,YACfO,KAAMyP,EAAE2+D,aAAe,CAAC,GACxBlqE,KAAM,CAAEmqE,QAAS5+D,EAAE6+D,cAAergE,IAAKwB,EAAEtN,MACzCnB,GAAI,aAAcmQ,EAAW,SAAUsZ,GACvCixB,EAAOh1C,SACPyK,EAAW,KACNsZ,GACJqf,EAAuB,UAAbrf,EAAIvoB,KAAmB,IAAM,IAAKuoB,EAAIvoB,KAElD,GAGDxC,EAASi8C,KAAKp2B,YAAam2B,EAAQ,GACpC,EACA9/B,MAAO,WACDzK,GACJA,GAEF,EAGH,IAKA,IAqGK0H,GArGD01D,GAAe,GAClBC,GAAS,oBAGV/uE,EAAOyqE,UAAW,CACjBuE,MAAO,WACPC,cAAe,WACd,IAAIv9D,EAAWo9D,GAAanpC,OAAW3lC,EAAOs9C,QAAU,IAAQzB,GAAM0C,OAEtE,OADA/8C,KAAMkQ,IAAa,EACZA,CACR,IAID1R,EAAO2qE,cAAe,cAAc,SAAU36D,EAAGk/D,EAAkB3F,GAElE,IAAI4F,EAAcC,EAAaC,EAC9BC,GAAuB,IAAZt/D,EAAEg/D,QAAqBD,GAAOpoE,KAAMqJ,EAAEtN,KAChD,MACkB,iBAAXsN,EAAEhN,MAE6C,KADnDgN,EAAEhB,aAAe,IACjBuF,QAAS,sCACXw6D,GAAOpoE,KAAMqJ,EAAEhN,OAAU,QAI5B,GAAKssE,GAAiC,UAArBt/D,EAAEq5D,UAAW,GA8D7B,OA3DA8F,EAAen/D,EAAEi/D,cAAgBvzB,EAAY1rC,EAAEi/D,eAC9Cj/D,EAAEi/D,gBACFj/D,EAAEi/D,cAGEK,EACJt/D,EAAGs/D,GAAat/D,EAAGs/D,GAAWzrE,QAASkrE,GAAQ,KAAOI,IAC/B,IAAZn/D,EAAEg/D,QACbh/D,EAAEtN,MAASukE,GAAOtgE,KAAMqJ,EAAEtN,KAAQ,IAAM,KAAQsN,EAAEg/D,MAAQ,IAAMG,GAIjEn/D,EAAEw6D,WAAY,eAAkB,WAI/B,OAHM6E,GACLrvE,EAAOyD,MAAO0rE,EAAe,mBAEvBE,EAAmB,EAC3B,EAGAr/D,EAAEq5D,UAAW,GAAM,OAGnB+F,EAAczrE,EAAQwrE,GACtBxrE,EAAQwrE,GAAiB,WACxBE,EAAoBh9D,SACrB,EAGAk3D,EAAM9b,QAAQ,gBAGQjjC,IAAhB4kD,EACJpvE,EAAQ2D,GAAS4iE,WAAY4I,GAI7BxrE,EAAQwrE,GAAiBC,EAIrBp/D,EAAGm/D,KAGPn/D,EAAEi/D,cAAgBC,EAAiBD,cAGnCH,GAAalmE,KAAMumE,IAIfE,GAAqB3zB,EAAY0zB,IACrCA,EAAaC,EAAmB,IAGjCA,EAAoBD,OAAc5kD,CACnC,IAGO,QAET,IAUA8iB,EAAQiiC,qBACHn2D,GAAOnZ,EAASmvC,eAAemgC,mBAAoB,IAAKn2D,MACvD1B,UAAY,6BACiB,IAA3B0B,GAAK8N,WAAW7lB,QAQxBrB,EAAOmrD,UAAY,SAAUnoD,EAAM0lB,EAAS8mD,GAC3C,MAAqB,iBAATxsE,EACJ,IAEgB,kBAAZ0lB,IACX8mD,EAAc9mD,EACdA,GAAU,GAKLA,IAIA4kB,EAAQiiC,qBAMZvnB,GALAt/B,EAAUzoB,EAASmvC,eAAemgC,mBAAoB,KAKvCj5D,cAAe,SACzBxS,KAAO7D,EAAS2D,SAASE,KAC9B4kB,EAAQwzB,KAAKp2B,YAAakiC,IAE1Bt/B,EAAUzoB,GAKZi1D,GAAWsa,GAAe,IAD1BC,EAAS1kB,EAAWpI,KAAM3/C,IAKlB,CAAE0lB,EAAQpS,cAAem5D,EAAQ,MAGzCA,EAASxa,GAAe,CAAEjyD,GAAQ0lB,EAASwsC,GAEtCA,GAAWA,EAAQ7zD,QACvBrB,EAAQk1D,GAAUjuD,SAGZjH,EAAO48C,MAAO,GAAI6yB,EAAOvoD,cAlChC,IAAI8gC,EAAMynB,EAAQva,CAmCnB,EAMAl1D,EAAOuD,GAAG+N,KAAO,SAAU5O,EAAKP,EAAQuP,GACvC,IAAIvG,EAAU1I,EAAMiqE,EACnBjkD,EAAOjnB,KACP6X,EAAM3W,EAAI6R,QAAS,KAsDpB,OApDK8E,GAAO,IACXlO,EAAWi7D,GAAkB1jE,EAAI4F,MAAO+Q,IACxC3W,EAAMA,EAAI4F,MAAO,EAAG+Q,IAIhBqiC,EAAYv5C,IAGhBuP,EAAWvP,EACXA,OAASqoB,GAGEroB,GAA4B,iBAAXA,IAC5BM,EAAO,QAIHgmB,EAAKpnB,OAAS,GAClBrB,EAAOwC,KAAM,CACZE,IAAKA,EAKLD,KAAMA,GAAQ,MACd2mE,SAAU,OACVpmE,KAAMb,IACH49C,MAAM,SAAU0uB,GAGnB/B,EAAWr6D,UAEXoW,EAAK7jB,KAAMuG,EAIVnL,EAAQ,SAAU6H,OAAQ7H,EAAOmrD,UAAWsjB,IAAiBjuE,KAAM2K,GAGnEsjE,EAKF,IAAIhhB,OAAQ/7C,GAAY,SAAU63D,EAAOjmE,GACxCmlB,EAAKvjB,MAAM,WACVwM,EAASH,MAAO/P,KAAMkrE,GAAY,CAAEnD,EAAMkF,aAAcnrE,EAAQimE,GACjE,GACD,GAGM/nE,IACR,EAKAxB,EAAOukD,KAAK/D,QAAQkvB,SAAW,SAAUpzB,GACxC,OAAOt8C,EAAO+8C,KAAM/8C,EAAOilE,QAAQ,SAAU1hE,GAC5C,OAAO+4C,IAAS/4C,EAAG+4C,IACpB,IAAIj7C,MACL,EAKArB,EAAOkK,OAAS,CACfylE,UAAW,SAAUrzB,EAAM3nC,EAASnH,GACnC,IAAIoiE,EAAaC,EAASC,EAAWC,EAAQC,EAAWC,EACvDjmE,EAAWhK,EAAOya,IAAK6hC,EAAM,YAC7B4zB,EAAUlwE,EAAQs8C,GAClBlwB,EAAQ,CAAC,EAGQ,WAAbpiB,IACJsyC,EAAKlpC,MAAMpJ,SAAW,YAGvBgmE,EAAYE,EAAQhmE,SACpB4lE,EAAY9vE,EAAOya,IAAK6hC,EAAM,OAC9B2zB,EAAajwE,EAAOya,IAAK6hC,EAAM,SACI,aAAbtyC,GAAwC,UAAbA,KAC9C8lE,EAAYG,GAAa17D,QAAS,SAAY,GAMhDw7D,GADAH,EAAcM,EAAQlmE,YACDG,IACrB0lE,EAAUD,EAAY5wD,OAGtB+wD,EAASnkD,WAAYkkD,IAAe,EACpCD,EAAUjkD,WAAYqkD,IAAgB,GAGlCv0B,EAAY/mC,KAGhBA,EAAUA,EAAQ3C,KAAMsqC,EAAM9uC,EAAGxN,EAAOuG,OAAQ,CAAC,EAAGypE,KAGjC,MAAfr7D,EAAQxK,MACZiiB,EAAMjiB,IAAQwK,EAAQxK,IAAM6lE,EAAU7lE,IAAQ4lE,GAE1B,MAAhBp7D,EAAQqK,OACZoN,EAAMpN,KAASrK,EAAQqK,KAAOgxD,EAAUhxD,KAAS6wD,GAG7C,UAAWl7D,EACfA,EAAQw7D,MAAMn+D,KAAMsqC,EAAMlwB,GAG1B8jD,EAAQz1D,IAAK2R,EAEf,GAGDpsB,EAAOuD,GAAGgD,OAAQ,CAGjB2D,OAAQ,SAAUyK,GAGjB,GAAKtC,UAAUhR,OACd,YAAmBmpB,IAAZ7V,EACNnT,KACAA,KAAK0D,MAAM,SAAUsI,GACpBxN,EAAOkK,OAAOylE,UAAWnuE,KAAMmT,EAASnH,EACzC,IAGF,IAAIosC,EAAMjyB,EACT20B,EAAO96C,KAAM,GAEd,OAAM86C,EAQAA,EAAKkjB,iBAAiBn+D,QAK5Bu4C,EAAO0C,EAAKvwB,wBACZpE,EAAM20B,EAAK6B,cAAc0F,YAClB,CACN15C,IAAKyvC,EAAKzvC,IAAMwd,EAAIyoD,YACpBpxD,KAAM46B,EAAK56B,KAAO2I,EAAI0oD,cARf,CAAElmE,IAAK,EAAG6U,KAAM,QATxB,CAmBD,EAIAhV,SAAU,WACT,GAAMxI,KAAM,GAAZ,CAIA,IAAIyd,EAAc/U,EAAQsc,EACzB81B,EAAO96C,KAAM,GACb8uE,EAAe,CAAEnmE,IAAK,EAAG6U,KAAM,GAGhC,GAAwC,UAAnChf,EAAOya,IAAK6hC,EAAM,YAGtBpyC,EAASoyC,EAAKvwB,4BAER,CAON,IANA7hB,EAAS1I,KAAK0I,SAIdsc,EAAM81B,EAAK6B,cACXl/B,EAAeq9B,EAAKr9B,cAAgBuH,EAAI1I,gBAChCmB,IACLA,IAAiBuH,EAAIpN,MAAQ6F,IAAiBuH,EAAI1I,kBACT,WAA3C9d,EAAOya,IAAKwE,EAAc,aAE1BA,EAAeA,EAAaoO,WAExBpO,GAAgBA,IAAiBq9B,GAAkC,IAA1Br9B,EAAa6J,YAG1DwnD,EAAetwE,EAAQif,GAAe/U,UACzBC,KAAOnK,EAAOya,IAAKwE,EAAc,kBAAkB,GAChEqxD,EAAatxD,MAAQhf,EAAOya,IAAKwE,EAAc,mBAAmB,GAEpE,CAGA,MAAO,CACN9U,IAAKD,EAAOC,IAAMmmE,EAAanmE,IAAMnK,EAAOya,IAAK6hC,EAAM,aAAa,GACpEt9B,KAAM9U,EAAO8U,KAAOsxD,EAAatxD,KAAOhf,EAAOya,IAAK6hC,EAAM,cAAc,GArCzE,CAuCD,EAYAr9B,aAAc,WACb,OAAOzd,KAAKsU,KAAK,WAGhB,IAFA,IAAImJ,EAAezd,KAAKyd,aAEhBA,GAA2D,WAA3Cjf,EAAOya,IAAKwE,EAAc,aACjDA,EAAeA,EAAaA,aAG7B,OAAOA,GAAgBnB,EACxB,GACD,IAID9d,EAAOkF,KAAM,CAAE4Z,WAAY,cAAezU,UAAW,gBAAiB,SAAUqmB,EAAQjsB,GACvF,IAAI0F,EAAM,gBAAkB1F,EAE5BzE,EAAOuD,GAAImtB,GAAW,SAAUjvB,GAC/B,OAAOwuD,GAAQzuD,MAAM,SAAU86C,EAAM5rB,EAAQjvB,GAG5C,IAAIkmB,EAOJ,GANKg0B,EAAUW,GACd30B,EAAM20B,EACuB,IAAlBA,EAAKxzB,WAChBnB,EAAM20B,EAAKuH,kBAGCr5B,IAAR/oB,EACJ,OAAOkmB,EAAMA,EAAKljB,GAAS63C,EAAM5rB,GAG7B/I,EACJA,EAAIuU,SACF/xB,EAAYwd,EAAI0oD,YAAV5uE,EACP0I,EAAM1I,EAAMkmB,EAAIyoD,aAIjB9zB,EAAM5rB,GAAWjvB,CAEnB,GAAGivB,EAAQjvB,EAAK4Q,UAAUhR,OAC3B,CACD,IAQArB,EAAOkF,KAAM,CAAE,MAAO,SAAU,SAAUw5C,EAAIj6C,GAC7CzE,EAAO2/D,SAAUl7D,GAAS43D,GAAc/uB,EAAQgwB,eAC/C,SAAUhhB,EAAM2f,GACf,GAAKA,EAIJ,OAHAA,EAAWD,GAAQ1f,EAAM73C,GAGlBg3D,GAAU90D,KAAMs1D,GACtBj8D,EAAQs8C,GAAOtyC,WAAYvF,GAAS,KACpCw3D,CAEH,GAEF,IAIAj8D,EAAOkF,KAAM,CAAEqrE,OAAQ,SAAUC,MAAO,UAAW,SAAUrrE,EAAM1C,GAClEzC,EAAOkF,KAAM,CACZo1C,QAAS,QAAUn1C,EACnBiC,QAAS3E,EACT,GAAI,QAAU0C,IACZ,SAAUsrE,EAAcC,GAG1B1wE,EAAOuD,GAAImtE,GAAa,SAAUl2B,EAAQ15C,GACzC,IAAIovD,EAAY79C,UAAUhR,SAAYovE,GAAkC,kBAAXj2B,GAC5D2kB,EAAQsR,KAA6B,IAAXj2B,IAA6B,IAAV15C,EAAiB,SAAW,UAE1E,OAAOmvD,GAAQzuD,MAAM,SAAU86C,EAAM75C,EAAM3B,GAC1C,IAAI0lB,EAEJ,OAAKm1B,EAAUW,GAGyB,IAAhCo0B,EAASn8D,QAAS,SACxB+nC,EAAM,QAAUn3C,GAChBm3C,EAAKr8C,SAAS6d,gBAAiB,SAAW3Y,GAIrB,IAAlBm3C,EAAKxzB,UACTtC,EAAM81B,EAAKx+B,gBAIJnL,KAAKsiB,IACXqnB,EAAKljC,KAAM,SAAWjU,GAAQqhB,EAAK,SAAWrhB,GAC9Cm3C,EAAKljC,KAAM,SAAWjU,GAAQqhB,EAAK,SAAWrhB,GAC9CqhB,EAAK,SAAWrhB,UAIDqlB,IAAV1pB,EAGNd,EAAOya,IAAK6hC,EAAM75C,EAAM08D,GAGxBn/D,EAAOoT,MAAOkpC,EAAM75C,EAAM3B,EAAOq+D,EACnC,GAAG18D,EAAMytD,EAAY1V,OAAShwB,EAAW0lC,EAC1C,CACD,GACD,IAGAlwD,EAAOkF,KAAM,CACZ,YACA,WACA,eACA,YACA,cACA,aACE,SAAUw5C,EAAIj8C,GAChBzC,EAAOuD,GAAId,GAAS,SAAUc,GAC7B,OAAO/B,KAAKD,GAAIkB,EAAMc,EACvB,CACD,IAKAvD,EAAOuD,GAAGgD,OAAQ,CAEjBwM,KAAM,SAAU8iD,EAAO7yD,EAAMO,GAC5B,OAAO/B,KAAKD,GAAIs0D,EAAO,KAAM7yD,EAAMO,EACpC,EACAotE,OAAQ,SAAU9a,EAAOtyD,GACxB,OAAO/B,KAAK6X,IAAKw8C,EAAO,KAAMtyD,EAC/B,EAEAqtE,SAAU,SAAUzlE,EAAU0qD,EAAO7yD,EAAMO,GAC1C,OAAO/B,KAAKD,GAAIs0D,EAAO1qD,EAAUnI,EAAMO,EACxC,EACAstE,WAAY,SAAU1lE,EAAU0qD,EAAOtyD,GAGtC,OAA4B,IAArB8O,UAAUhR,OAChBG,KAAK6X,IAAKlO,EAAU,MACpB3J,KAAK6X,IAAKw8C,EAAO1qD,GAAY,KAAM5H,EACrC,EAEAwvC,MAAO,SAAU+9B,EAAQC,GACxB,OAAOvvE,KACLD,GAAI,aAAcuvE,GAClBvvE,GAAI,aAAcwvE,GAASD,EAC9B,IAGD9wE,EAAOkF,KACN,wLAE4D+N,MAAO,MACnE,SAAUyrC,EAAIv5C,GAGbnF,EAAOuD,GAAI4B,GAAS,SAAUnC,EAAMO,GACnC,OAAO8O,UAAUhR,OAAS,EACzBG,KAAKD,GAAI4D,EAAM,KAAMnC,EAAMO,GAC3B/B,KAAKqD,QAASM,EAChB,CACD,IAUD,IAAI6rE,GAAQ,sDAMZhxE,EAAOixE,MAAQ,SAAU1tE,EAAImlB,GAC5B,IAAIwpC,EAAK/8C,EAAM87D,EAUf,GARwB,iBAAZvoD,IACXwpC,EAAM3uD,EAAImlB,GACVA,EAAUnlB,EACVA,EAAK2uD,GAKAxW,EAAYn4C,GAalB,OARA4R,EAAO7M,EAAM0J,KAAMK,UAAW,GAC9B4+D,EAAQ,WACP,OAAO1tE,EAAGgO,MAAOmX,GAAWlnB,KAAM2T,EAAKX,OAAQlM,EAAM0J,KAAMK,YAC5D,EAGA4+D,EAAM1yB,KAAOh7C,EAAGg7C,KAAOh7C,EAAGg7C,MAAQv+C,EAAOu+C,OAElC0yB,CACR,EAEAjxE,EAAOkxE,UAAY,SAAUC,GACvBA,EACJnxE,EAAO6vD,YAEP7vD,EAAOE,OAAO,EAEhB,EACAF,EAAOoc,QAAUjK,MAAMiK,QACvBpc,EAAOoxE,UAAY7f,KAAKC,MACxBxxD,EAAO6mB,SAAWA,EAClB7mB,EAAO07C,WAAaA,EACpB17C,EAAO27C,SAAWA,EAClB37C,EAAO+iB,UAAYA,GACnB/iB,EAAOyC,KAAO05C,EAEdn8C,EAAO+tB,IAAM3F,KAAK2F,IAElB/tB,EAAOqxE,UAAY,SAAUtwE,GAK5B,IAAI0B,EAAOzC,EAAOyC,KAAM1B,GACxB,OAAkB,WAAT0B,GAA8B,WAATA,KAK5B6uE,MAAOvwE,EAAM6qB,WAAY7qB,GAC5B,EAEAf,EAAOoB,KAAO,SAAUX,GACvB,OAAe,MAARA,EACN,IACEA,EAAO,IAAKoD,QAASmtE,GAAO,KAChC,OAoBE,KAFqB,EAAF,WACnB,OAAOhxE,CACP,UAFiB,OAEjB,aAMF,IAGCuxE,GAAU5tE,EAAO3D,OAGjBwxE,GAAK7tE,EAAOxD,EAwBb,OAtBAH,EAAO86C,WAAa,SAAUuC,GAS7B,OARK15C,EAAOxD,IAAMH,IACjB2D,EAAOxD,EAAIqxE,IAGPn0B,GAAQ15C,EAAO3D,SAAWA,IAC9B2D,EAAO3D,OAASuxE,IAGVvxE,CACR,OAKyB,IAAbi7C,IACXt3C,EAAO3D,OAAS2D,EAAOxD,EAAIH,GAMrBA,CACP,G,kBC98UmE+Q,EAAOD,QAGlE,WAAe,aAcnB,SAASuV,EAAStlB,GACd,OAAgB,OAARA,GACW,iBAARA,GACP,gBAAiBA,GACjBA,EAAIgR,cAAgB3P,MAC5B,CACA,SAASmE,EAAOqE,EAAQ4D,QACL,IAAX5D,IAAqBA,EAAS,CAAC,QACvB,IAAR4D,IAAkBA,EAAM,CAAC,GAC7BpM,OAAOkkB,KAAK9X,GAAK+X,SAAQ,SAAU7b,QACJ,IAAhBE,EAAOF,GACZE,EAAOF,GAAO8D,EAAI9D,GACf2b,EAAS7X,EAAI9D,KAClB2b,EAASzb,EAAOF,KAChBtI,OAAOkkB,KAAK9X,EAAI9D,IAAMrJ,OAAS,GAC/BkF,EAAOqE,EAAOF,GAAM8D,EAAI9D,GAEhC,GACJ,CAEA,IAAI8b,EAA0B,oBAAbvmB,SAA2BA,SAAW,CAAC,EACpDwmB,EAAc,CACdrN,KAAM,CAAC,EACPsN,iBAAkB,WAAc,EAChCC,oBAAqB,WAAc,EACnCxN,cAAe,CACXyN,KAAM,WAAc,EACpBC,SAAU,IAEdC,cAAe,WACX,OAAO,IACX,EACA7L,iBAAkB,WACd,MAAO,EACX,EACA8L,eAAgB,WACZ,OAAO,IACX,EACAC,YAAa,WACT,MAAO,CACHC,UAAW,WAAc,EAEjC,EACA3Q,cAAe,WACX,MAAO,CACH1O,SAAU,GACVsf,WAAY,GACZ9T,MAAO,CAAC,EACRY,aAAc,WAAc,EAC5BmT,qBAAsB,WAClB,MAAO,EACX,EAER,EACAC,gBAAiB,WACb,MAAO,CAAC,CACZ,EACAC,WAAY,WACR,OAAO,IACX,EACAzjB,SAAU,CACNyB,KAAM,GACNiiB,KAAM,GACNC,SAAU,GACVzjB,KAAM,GACN0jB,OAAQ,GACRC,SAAU,GACVC,SAAU,GACVrH,OAAQ,KAGhB9Z,EAAOigB,EAAKC,GAEZ,IAAIkB,EAAwB,oBAAXhkB,OAAyBA,OAAS,CAAC,EA2CpD4C,EAAOohB,EA1CS,CACZ1nB,SAAUwmB,EACVf,UAAW,CACPkC,UAAW,IAEfhkB,SAAU,CACNyB,KAAM,GACNiiB,KAAM,GACNC,SAAU,GACVzjB,KAAM,GACN0jB,OAAQ,GACRC,SAAU,GACVC,SAAU,GACVrH,OAAQ,IAEZwH,QAAS,CACLC,aAAc,WAAc,EAC5BC,UAAW,WAAc,EACzBC,GAAI,WAAc,EAClBC,KAAM,WAAc,GAExBC,YAAa,WACT,OAAO1mB,IACX,EACAklB,iBAAkB,WAAc,EAChCC,oBAAqB,WAAc,EACnC1C,iBAAkB,WACd,MAAO,CACHkE,iBAAkB,WACd,MAAO,EACX,EAER,EACA5Z,MAAO,WAAc,EACrB6Z,KAAM,WAAc,EACpBC,OAAQ,CAAC,EACTrc,WAAY,WAAc,EAC1BuQ,aAAc,WAAc,EAC5B+L,WAAY,WACR,MAAO,CAAC,CACZ,IAkBJ,IAAIC,EAAO,SAAcC,GAGvB,IAFA,IAAIC,EAAOjnB,KAEFgM,EAAI,EAAGA,EAAIgb,EAAInnB,OAAQmM,GAAK,EACnCib,EAAKjb,GAAKgb,EAAIhb,GAIhB,OAFAib,EAAKpnB,OAASmnB,EAAInnB,OAEXG,IACT,EAEA,SAASrB,EAAEgL,EAAUud,GACnB,IAAIF,EAAM,GACNhb,EAAI,EACR,GAAIrC,IAAaud,GACXvd,aAAoBod,EACtB,OAAOpd,EAGX,GAAIA,EAEF,GAAwB,iBAAbA,EAAuB,CAChC,IAAIwd,EACAC,EACAhkB,EAAOuG,EAAS/J,OACpB,GAAIwD,EAAK2P,QAAQ,MAAQ,GAAK3P,EAAK2P,QAAQ,MAAQ,EAAG,CACpD,IAAIsU,EAAW,MAQf,IAP4B,IAAxBjkB,EAAK2P,QAAQ,SAAgBsU,EAAW,MAChB,IAAxBjkB,EAAK2P,QAAQ,SAAgBsU,EAAW,SAChB,IAAxBjkB,EAAK2P,QAAQ,QAAwC,IAAxB3P,EAAK2P,QAAQ,SAAgBsU,EAAW,MAC1C,IAA3BjkB,EAAK2P,QAAQ,YAAmBsU,EAAW,SACf,IAA5BjkB,EAAK2P,QAAQ,aAAoBsU,EAAW,WAChDD,EAAapC,EAAIlQ,cAAcuS,IACpBnR,UAAY9S,EAClB4I,EAAI,EAAGA,EAAIob,EAAW1B,WAAW7lB,OAAQmM,GAAK,EACjDgb,EAAI5f,KAAKggB,EAAW1B,WAAW1Z,GAEnC,MAQE,IAFEmb,EALGD,GAA2B,MAAhBvd,EAAS,IAAeA,EAAS7J,MAAM,aAK9ConB,GAAWlC,GAAKvL,iBAAiB9P,EAAS/J,QAH3C,CAAColB,EAAIO,eAAe5b,EAAS/J,OAAO6R,MAAM,KAAK,KAKlDzF,EAAI,EAAGA,EAAImb,EAAItnB,OAAQmM,GAAK,EAC3Bmb,EAAInb,IAAMgb,EAAI5f,KAAK+f,EAAInb,GAGjC,MAAO,GAAIrC,EAAS2d,UAAY3d,IAAawc,GAAOxc,IAAaqb,EAE/DgC,EAAI5f,KAAKuC,QACJ,GAAIA,EAAS9J,OAAS,GAAK8J,EAAS,GAAG2d,SAE5C,IAAKtb,EAAI,EAAGA,EAAIrC,EAAS9J,OAAQmM,GAAK,EACpCgb,EAAI5f,KAAKuC,EAASqC,IAIxB,OAAO,IAAI+a,EAAKC,EAClB,CAMA,SAASO,EAAOP,GAEd,IADA,IAAIQ,EAAc,GACTxb,EAAI,EAAGA,EAAIgb,EAAInnB,OAAQmM,GAAK,GACE,IAAjCwb,EAAYzU,QAAQiU,EAAIhb,KAAcwb,EAAYpgB,KAAK4f,EAAIhb,IAEjE,OAAOwb,CACT,CAGA,SAASpoB,EAASwU,GAChB,QAAyB,IAAdA,EACT,OAAO5T,KAGT,IADA,IAAI2nB,EAAU/T,EAAUnC,MAAM,KACrBzF,EAAI,EAAGA,EAAI2b,EAAQ9nB,OAAQmM,GAAK,EACvC,IAAK,IAAI4b,EAAI,EAAGA,EAAI5nB,KAAKH,OAAQ+nB,GAAK,OACb,IAAZ5nB,KAAK4nB,SAAmD,IAAtB5nB,KAAK4nB,GAAGte,WAA6BtJ,KAAK4nB,GAAGte,UAAUmL,IAAIkT,EAAQ3b,IAGpH,OAAOhM,IACT,CACA,SAASb,EAAYyU,GAEnB,IADA,IAAI+T,EAAU/T,EAAUnC,MAAM,KACrBzF,EAAI,EAAGA,EAAI2b,EAAQ9nB,OAAQmM,GAAK,EACvC,IAAK,IAAI4b,EAAI,EAAGA,EAAI5nB,KAAKH,OAAQ+nB,GAAK,OACb,IAAZ5nB,KAAK4nB,SAAmD,IAAtB5nB,KAAK4nB,GAAGte,WAA6BtJ,KAAK4nB,GAAGte,UAAU7D,OAAOkiB,EAAQ3b,IAGvH,OAAOhM,IACT,CACA,SAASK,EAASuT,GAChB,QAAK5T,KAAK,IACHA,KAAK,GAAGsJ,UAAUC,SAASqK,EACpC,CACA,SAASrS,EAAYqS,GAEnB,IADA,IAAI+T,EAAU/T,EAAUnC,MAAM,KACrBzF,EAAI,EAAGA,EAAI2b,EAAQ9nB,OAAQmM,GAAK,EACvC,IAAK,IAAI4b,EAAI,EAAGA,EAAI5nB,KAAKH,OAAQ+nB,GAAK,OACb,IAAZ5nB,KAAK4nB,SAAmD,IAAtB5nB,KAAK4nB,GAAGte,WAA6BtJ,KAAK4nB,GAAGte,UAAUtC,OAAO2gB,EAAQ3b,IAGvH,OAAOhM,IACT,CACA,SAASjB,EAAK8oB,EAAOvoB,GACnB,IAAI2wE,EAAcp/D,UAElB,GAAyB,IAArBA,UAAUhR,QAAiC,iBAAVgoB,EAEnC,OAAI7nB,KAAK,GAAaA,KAAK,GAAGuS,aAAasV,QAC3C,EAIF,IAAK,IAAI7b,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EACpC,GAA2B,IAAvBikE,EAAYpwE,OAEdG,KAAKgM,GAAGwG,aAAaqV,EAAOvoB,QAI5B,IAAK,IAAIwoB,KAAYD,EACnB7nB,KAAKgM,GAAG8b,GAAYD,EAAMC,GAC1B9nB,KAAKgM,GAAGwG,aAAasV,EAAUD,EAAMC,IAI3C,OAAO9nB,IACT,CAEA,SAASyV,EAAW1W,GAClB,IAAK,IAAIiN,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EACpChM,KAAKgM,GAAG4G,gBAAgB7T,GAE1B,OAAOiB,IACT,CACA,SAASwB,EAAK0H,EAAK5J,GACjB,IAAImM,EACJ,QAAqB,IAAVnM,EAAX,CAkBA,IAAK,IAAI0M,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,GACpCP,EAAKzL,KAAKgM,IACF+b,yBAA0Btc,EAAGsc,uBAAyB,CAAC,GAC/Dtc,EAAGsc,uBAAuB7e,GAAO5J,EAEnC,OAAOU,IARP,CAZE,GAFAyL,EAAKzL,KAAK,GAEF,CACN,GAAIyL,EAAGsc,wBAA2B7e,KAAOuC,EAAGsc,uBAC1C,OAAOtc,EAAGsc,uBAAuB7e,GAGnC,IAAI8e,EAAUvc,EAAG8G,aAAc,QAAUrJ,GACzC,OAAI8e,QAGJ,CACF,CAWJ,CAGA,SAASC,EAAUA,GACjB,IAAK,IAAIjc,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAAG,CACvC,IAAIkc,EAAUloB,KAAKgM,GAAG4F,MACtBsW,EAAQC,gBAAkBF,EAC1BC,EAAQD,UAAYA,CACtB,CACA,OAAOjoB,IACT,CACA,SAASoI,EAAWggB,GACM,iBAAbA,IACTA,GAAsB,MAExB,IAAK,IAAIpc,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAAG,CACvC,IAAIkc,EAAUloB,KAAKgM,GAAG4F,MACtBsW,EAAQG,yBAA2BD,EACnCF,EAAQI,mBAAqBF,CAC/B,CACA,OAAOpoB,IACT,CAEA,SAASD,IAIP,IAHA,IAAImwE,EAEAv8D,EAAO,GAAItO,EAAMwL,UAAUhR,OACvBwF,KAAQsO,EAAMtO,GAAQwL,UAAWxL,GACzC,IAAIkjB,EAAY5U,EAAK,GACjB6U,EAAiB7U,EAAK,GACtB8U,EAAW9U,EAAK,GAChB+U,EAAU/U,EAAK,GAOnB,SAASgV,EAAgBhb,GACvB,IAAIvE,EAASuE,EAAEvE,OACf,GAAKA,EAAL,CACA,IAAIwf,EAAYjb,EAAEvE,OAAOyf,eAAiB,GAI1C,GAHID,EAAU7V,QAAQpF,GAAK,GACzBib,EAAUhY,QAAQjD,GAEhBhP,EAAEyK,GAAQxF,GAAG4kB,GAAmBC,EAAS1Y,MAAM3G,EAAQwf,QAGzD,IADA,IAAIvf,EAAU1K,EAAEyK,GAAQC,UACfyf,EAAI,EAAGA,EAAIzf,EAAQxJ,OAAQipB,GAAK,EACnCnqB,EAAE0K,EAAQyf,IAAIllB,GAAG4kB,IAAmBC,EAAS1Y,MAAM1G,EAAQyf,GAAIF,EAThD,CAYzB,CACA,SAASG,EAAYpb,GACnB,IAAIib,EAAYjb,GAAKA,EAAEvE,QAASuE,EAAEvE,OAAOyf,eAAsB,GAC3DD,EAAU7V,QAAQpF,GAAK,GACzBib,EAAUhY,QAAQjD,GAEpB8a,EAAS1Y,MAAM/P,KAAM4oB,EACvB,CA3BuB,mBAAZjV,EAAK,KACE4U,GAAf2nD,EAASv8D,GAAyB,GAAI8U,EAAWynD,EAAO,GAAIxnD,EAAUwnD,EAAO,GAC9E1nD,OAAiBQ,GAEdN,IAAWA,GAAU,GA0B1B,IAFA,IACId,EADAqB,EAASV,EAAU9W,MAAM,KAEpBzF,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAAG,CACvC,IAAIP,EAAKzL,KAAKgM,GACd,GAAKwc,EAaH,IAAKZ,EAAI,EAAGA,EAAIqB,EAAOppB,OAAQ+nB,GAAK,EAAG,CACrC,IAAIuoD,EAAUlnD,EAAOrB,GAChBnc,EAAGyd,oBAAqBzd,EAAGyd,kBAAoB,CAAC,GAChDzd,EAAGyd,kBAAkBinD,KAAY1kE,EAAGyd,kBAAkBinD,GAAW,IACtE1kE,EAAGyd,kBAAkBinD,GAAS/oE,KAAK,CACjCqhB,SAAUA,EACVU,cAAeR,IAEjBld,EAAGyZ,iBAAiBirD,EAASxnD,EAAiBD,EAChD,MArBA,IAAKd,EAAI,EAAGA,EAAIqB,EAAOppB,OAAQ+nB,GAAK,EAAG,CACrC,IAAInnB,EAAQwoB,EAAOrB,GACdnc,EAAG2d,gBAAiB3d,EAAG2d,cAAgB,CAAC,GACxC3d,EAAG2d,cAAc3oB,KAAUgL,EAAG2d,cAAc3oB,GAAS,IAC1DgL,EAAG2d,cAAc3oB,GAAO2G,KAAK,CAC3BqhB,SAAUA,EACVU,cAAeJ,IAEjBtd,EAAGyZ,iBAAiBzkB,EAAOsoB,EAAaL,EAC1C,CAcJ,CACA,OAAO1oB,IACT,CACA,SAAS6X,IAIP,IAHA,IAAIq4D,EAEAv8D,EAAO,GAAItO,EAAMwL,UAAUhR,OACvBwF,KAAQsO,EAAMtO,GAAQwL,UAAWxL,GACzC,IAAIkjB,EAAY5U,EAAK,GACjB6U,EAAiB7U,EAAK,GACtB8U,EAAW9U,EAAK,GAChB+U,EAAU/U,EAAK,GACI,mBAAZA,EAAK,KACE4U,GAAf2nD,EAASv8D,GAAyB,GAAI8U,EAAWynD,EAAO,GAAIxnD,EAAUwnD,EAAO,GAC9E1nD,OAAiBQ,GAEdN,IAAWA,GAAU,GAG1B,IADA,IAAIO,EAASV,EAAU9W,MAAM,KACpBzF,EAAI,EAAGA,EAAIid,EAAOppB,OAAQmM,GAAK,EAEtC,IADA,IAAIvL,EAAQwoB,EAAOjd,GACV4b,EAAI,EAAGA,EAAI5nB,KAAKH,OAAQ+nB,GAAK,EAAG,CACvC,IAAInc,EAAKzL,KAAK4nB,GACVyB,OAAW,EAMf,IALKb,GAAkB/c,EAAG2d,cACxBC,EAAW5d,EAAG2d,cAAc3oB,GACnB+nB,GAAkB/c,EAAGyd,oBAC9BG,EAAW5d,EAAGyd,kBAAkBzoB,IAE9B4oB,GAAYA,EAASxpB,OACvB,IAAK,IAAIipB,EAAIO,EAASxpB,OAAS,EAAGipB,GAAK,EAAGA,GAAK,EAAG,CAChD,IAAIQ,EAAUD,EAASP,GACnBL,GAAYa,EAAQb,WAAaA,GAG1BA,GAAYa,EAAQb,UAAYa,EAAQb,SAASc,WAAaD,EAAQb,SAASc,YAAcd,GAFtGhd,EAAG0Z,oBAAoB1kB,EAAO6oB,EAAQH,cAAeT,GACrDW,EAASrZ,OAAO8Y,EAAG,IAITL,IACVhd,EAAG0Z,oBAAoB1kB,EAAO6oB,EAAQH,cAAeT,GACrDW,EAASrZ,OAAO8Y,EAAG,GAEvB,CAEJ,CAEF,OAAO9oB,IACT,CACA,SAASqD,IAEP,IADA,IAAIsQ,EAAO,GAAItO,EAAMwL,UAAUhR,OACvBwF,KAAQsO,EAAMtO,GAAQwL,UAAWxL,GAIzC,IAFA,IAAI4jB,EAAStV,EAAK,GAAGlC,MAAM,KACvBmX,EAAYjV,EAAK,GACZ3H,EAAI,EAAGA,EAAIid,EAAOppB,OAAQmM,GAAK,EAEtC,IADA,IAAIvL,EAAQwoB,EAAOjd,GACV4b,EAAI,EAAGA,EAAI5nB,KAAKH,OAAQ+nB,GAAK,EAAG,CACvC,IAAInc,EAAKzL,KAAK4nB,GACV4B,OAAM,EACV,IACEA,EAAM,IAAIrD,EAAIO,YAAYjmB,EAAO,CAC/BgpB,OAAQb,EACRc,SAAS,EACTC,YAAY,GAEhB,CAAE,MAAOhc,IACP6b,EAAMxE,EAAIQ,YAAY,UAClBC,UAAUhlB,GAAO,GAAM,GAC3B+oB,EAAIC,OAASb,CACf,CAEAnd,EAAGod,cAAgBlV,EAAKb,QAAO,SAAUtR,EAAMooB,GAAa,OAAOA,EAAY,CAAG,IAClFne,EAAGoe,cAAcL,GACjB/d,EAAGod,cAAgB,UACZpd,EAAGod,aACZ,CAEF,OAAO7oB,IACT,CACA,SAAS8pB,EAAc5Z,GACrB,IAEIlE,EAFAid,EAAS,CAAC,sBAAuB,iBACjCc,EAAM/pB,KAEV,SAASgqB,EAAarc,GAEpB,GAAIA,EAAEvE,SAAWpJ,KAEjB,IADAkQ,EAASM,KAAKxQ,KAAM2N,GACf3B,EAAI,EAAGA,EAAIid,EAAOppB,OAAQmM,GAAK,EAClC+d,EAAIlS,IAAIoR,EAAOjd,GAAIge,EAEvB,CACA,GAAI9Z,EACF,IAAKlE,EAAI,EAAGA,EAAIid,EAAOppB,OAAQmM,GAAK,EAClC+d,EAAIhqB,GAAGkpB,EAAOjd,GAAIge,GAGtB,OAAOhqB,IACT,CACA,SAAS2d,EAAWsM,GAClB,GAAIjqB,KAAKH,OAAS,EAAG,CACnB,GAAIoqB,EAAgB,CAElB,IAAIC,EAASlqB,KAAKkqB,SAClB,OAAOlqB,KAAK,GAAGmqB,YAAcC,WAAWF,EAAOvD,iBAAiB,iBAAmByD,WAAWF,EAAOvD,iBAAiB,eACxH,CACA,OAAO3mB,KAAK,GAAGmqB,WACjB,CACA,OAAO,IACT,CACA,SAAS1hB,EAAYwhB,GACnB,GAAIjqB,KAAKH,OAAS,EAAG,CACnB,GAAIoqB,EAAgB,CAElB,IAAIC,EAASlqB,KAAKkqB,SAClB,OAAOlqB,KAAK,GAAGqqB,aAAeD,WAAWF,EAAOvD,iBAAiB,eAAiByD,WAAWF,EAAOvD,iBAAiB,iBACvH,CACA,OAAO3mB,KAAK,GAAGqqB,YACjB,CACA,OAAO,IACT,CACA,SAAS3hB,IACP,GAAI1I,KAAKH,OAAS,EAAG,CACnB,IAAI4L,EAAKzL,KAAK,GACVsqB,EAAM7e,EAAG8e,wBACT3S,EAAOoN,EAAIpN,KACX4S,EAAY/e,EAAG+e,WAAa5S,EAAK4S,WAAa,EAC9CC,EAAahf,EAAGgf,YAAc7S,EAAK6S,YAAc,EACjD5hB,EAAY4C,IAAO0a,EAAMA,EAAIuE,QAAUjf,EAAG5C,UAC1CyU,EAAa7R,IAAO0a,EAAMA,EAAIwE,QAAUlf,EAAG6R,WAC/C,MAAO,CACL3U,IAAM2hB,EAAI3hB,IAAME,EAAa2hB,EAC7BhN,KAAO8M,EAAI9M,KAAOF,EAAcmN,EAEpC,CAEA,OAAO,IACT,CACA,SAASP,IACP,OAAIlqB,KAAK,GAAammB,EAAI1D,iBAAiBziB,KAAK,GAAI,MAC7C,CAAC,CACV,CACA,SAASiZ,EAAI2R,EAAOtrB,GAClB,IAAI0M,EACJ,GAAyB,IAArB6E,UAAUhR,OAAc,CAC1B,GAAqB,iBAAV+qB,EAEJ,CACL,IAAK5e,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAEhC,IAAK,IAAI/I,KAAQ2nB,EACf5qB,KAAKgM,GAAG4F,MAAM3O,GAAQ2nB,EAAM3nB,GAGhC,OAAOjD,IACT,CATE,GAAIA,KAAK,GAAM,OAAOmmB,EAAI1D,iBAAiBziB,KAAK,GAAI,MAAM2mB,iBAAiBiE,EAU/E,CACA,GAAyB,IAArB/Z,UAAUhR,QAAiC,iBAAV+qB,EAAoB,CACvD,IAAK5e,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAChChM,KAAKgM,GAAG4F,MAAMgZ,GAAStrB,EAEzB,OAAOU,IACT,CACA,OAAOA,IACT,CAEA,SAAS0D,EAAKwM,GAEZ,IAAKA,EAAY,OAAOlQ,KAExB,IAAK,IAAIgM,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAEpC,IAA2C,IAAvCkE,EAASM,KAAKxQ,KAAKgM,GAAIA,EAAGhM,KAAKgM,IAEjC,OAAOhM,KAIX,OAAOA,IACT,CACA,SAAS8S,EAAO5C,GAGd,IAFA,IAAI8b,EAAe,GACfjC,EAAM/pB,KACDgM,EAAI,EAAGA,EAAI+d,EAAIlqB,OAAQmM,GAAK,EAC/BkE,EAASM,KAAKuZ,EAAI/d,GAAIA,EAAG+d,EAAI/d,KAAOggB,EAAa5kB,KAAK2iB,EAAI/d,IAEhE,OAAO,IAAI+a,EAAKiF,EAClB,CAEA,SAAS5oB,EAAKA,GACZ,QAAoB,IAATA,EACT,OAAOpD,KAAK,GAAKA,KAAK,GAAGkW,eAAY8S,EAGvC,IAAK,IAAIhd,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EACpChM,KAAKgM,GAAGkK,UAAY9S,EAEtB,OAAOpD,IACT,CAEA,SAASf,EAAKA,GACZ,QAAoB,IAATA,EACT,OAAIe,KAAK,GACAA,KAAK,GAAG+Z,YAAYna,OAEtB,KAGT,IAAK,IAAIoM,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EACpChM,KAAKgM,GAAG+N,YAAc9a,EAExB,OAAOe,IACT,CACA,SAAS4D,EAAG+F,GACV,IACIkhB,EACA7e,EAFAP,EAAKzL,KAAK,GAGd,IAAKyL,QAA0B,IAAb9B,EAA4B,OAAO,EACrD,GAAwB,iBAAbA,EAAuB,CAChC,GAAI8B,EAAGwJ,QAAW,OAAOxJ,EAAGwJ,QAAQtL,GAC/B,GAAI8B,EAAG0J,sBAAyB,OAAO1J,EAAG0J,sBAAsBxL,GAChE,GAAI8B,EAAGyJ,kBAAqB,OAAOzJ,EAAGyJ,kBAAkBvL,GAG7D,IADAkhB,EAAclsB,EAAEgL,GACXqC,EAAI,EAAGA,EAAI6e,EAAYhrB,OAAQmM,GAAK,EACvC,GAAI6e,EAAY7e,KAAOP,EAAM,OAAO,EAEtC,OAAO,CACT,CAAO,GAAI9B,IAAaqb,EAAO,OAAOvZ,IAAOuZ,EACxC,GAAIrb,IAAawc,EAAO,OAAO1a,IAAO0a,EAE3C,GAAIxc,EAAS2d,UAAY3d,aAAoBod,EAAM,CAEjD,IADA8D,EAAclhB,EAAS2d,SAAW,CAAC3d,GAAYA,EAC1CqC,EAAI,EAAGA,EAAI6e,EAAYhrB,OAAQmM,GAAK,EACvC,GAAI6e,EAAY7e,KAAOP,EAAM,OAAO,EAEtC,OAAO,CACT,CACA,OAAO,CACT,CACA,SAASD,IACP,IACIQ,EADA8e,EAAQ9qB,KAAK,GAEjB,GAAI8qB,EAAO,CAGT,IAFA9e,EAAI,EAEuC,QAAnC8e,EAAQA,EAAMC,kBACG,IAAnBD,EAAMxD,WAAkBtb,GAAK,GAEnC,OAAOA,CACT,CAEF,CAEA,SAAS2J,EAAGnK,GACV,QAAqB,IAAVA,EAAyB,OAAOxL,KAC3C,IACIgrB,EADAnrB,EAASG,KAAKH,OAElB,OACS,IAAIknB,EADTvb,EAAQ3L,EAAS,EACH,GAEd2L,EAAQ,GACVwf,EAAcnrB,EAAS2L,GACL,EAAqB,GACvB,CAACxL,KAAKgrB,IAER,CAAChrB,KAAKwL,IACxB,CACA,SAASnF,IAEP,IADA,IAGI4kB,EAHAtX,EAAO,GAAItO,EAAMwL,UAAUhR,OACvBwF,KAAQsO,EAAMtO,GAAQwL,UAAWxL,GAIzC,IAAK,IAAIyjB,EAAI,EAAGA,EAAInV,EAAK9T,OAAQipB,GAAK,EAAG,CACvCmC,EAAWtX,EAAKmV,GAChB,IAAK,IAAI9c,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EACpC,GAAwB,iBAAbif,EAAuB,CAChC,IAAIC,EAAUlG,EAAIlQ,cAAc,OAEhC,IADAoW,EAAQhV,UAAY+U,EACbC,EAAQC,YACbnrB,KAAKgM,GAAGsY,YAAY4G,EAAQC,WAEhC,MAAO,GAAIF,aAAoBlE,EAC7B,IAAK,IAAIa,EAAI,EAAGA,EAAIqD,EAASprB,OAAQ+nB,GAAK,EACxC5nB,KAAKgM,GAAGsY,YAAY2G,EAASrD,SAG/B5nB,KAAKgM,GAAGsY,YAAY2G,EAG1B,CAEA,OAAOjrB,IACT,CACA,SAAS6U,EAAQoW,GACf,IAAIjf,EACA4b,EACJ,IAAK5b,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAChC,GAAwB,iBAAbif,EAAuB,CAChC,IAAIC,EAAUlG,EAAIlQ,cAAc,OAEhC,IADAoW,EAAQhV,UAAY+U,EACfrD,EAAIsD,EAAQxF,WAAW7lB,OAAS,EAAG+nB,GAAK,EAAGA,GAAK,EACnD5nB,KAAKgM,GAAGof,aAAaF,EAAQxF,WAAWkC,GAAI5nB,KAAKgM,GAAG0Z,WAAW,GAEnE,MAAO,GAAIuF,aAAoBlE,EAC7B,IAAKa,EAAI,EAAGA,EAAIqD,EAASprB,OAAQ+nB,GAAK,EACpC5nB,KAAKgM,GAAGof,aAAaH,EAASrD,GAAI5nB,KAAKgM,GAAG0Z,WAAW,SAGvD1lB,KAAKgM,GAAGof,aAAaH,EAAUjrB,KAAKgM,GAAG0Z,WAAW,IAGtD,OAAO1lB,IACT,CACA,SAASqrB,EAAK1hB,GACZ,OAAI3J,KAAKH,OAAS,EACZ8J,EACE3J,KAAK,GAAGsrB,oBAAsB3sB,EAAEqB,KAAK,GAAGsrB,oBAAoB1nB,GAAG+F,GAC1D,IAAIod,EAAK,CAAC/mB,KAAK,GAAGsrB,qBAEpB,IAAIvE,EAAK,IAGd/mB,KAAK,GAAGsrB,mBAA6B,IAAIvE,EAAK,CAAC/mB,KAAK,GAAGsrB,qBACpD,IAAIvE,EAAK,IAEX,IAAIA,EAAK,GAClB,CACA,SAASwE,EAAQ5hB,GACf,IAAI6hB,EAAU,GACV/f,EAAKzL,KAAK,GACd,IAAKyL,EAAM,OAAO,IAAIsb,EAAK,IAC3B,KAAOtb,EAAG6f,oBAAoB,CAC5B,IAAID,EAAO5f,EAAG6f,mBACV3hB,EACEhL,EAAE0sB,GAAMznB,GAAG+F,IAAa6hB,EAAQpkB,KAAKikB,GAClCG,EAAQpkB,KAAKikB,GACtB5f,EAAK4f,CACP,CACA,OAAO,IAAItE,EAAKyE,EAClB,CACA,SAASC,EAAK9hB,GACZ,GAAI3J,KAAKH,OAAS,EAAG,CACnB,IAAI4L,EAAKzL,KAAK,GACd,OAAI2J,EACE8B,EAAGigB,wBAA0B/sB,EAAE8M,EAAGigB,wBAAwB9nB,GAAG+F,GACxD,IAAIod,EAAK,CAACtb,EAAGigB,yBAEf,IAAI3E,EAAK,IAGdtb,EAAGigB,uBAAiC,IAAI3E,EAAK,CAACtb,EAAGigB,yBAC9C,IAAI3E,EAAK,GAClB,CACA,OAAO,IAAIA,EAAK,GAClB,CACA,SAAS4E,EAAQhiB,GACf,IAAIiiB,EAAU,GACVngB,EAAKzL,KAAK,GACd,IAAKyL,EAAM,OAAO,IAAIsb,EAAK,IAC3B,KAAOtb,EAAGigB,wBAAwB,CAChC,IAAID,EAAOhgB,EAAGigB,uBACV/hB,EACEhL,EAAE8sB,GAAM7nB,GAAG+F,IAAaiiB,EAAQxkB,KAAKqkB,GAClCG,EAAQxkB,KAAKqkB,GACtBhgB,EAAKggB,CACP,CACA,OAAO,IAAI1E,EAAK6E,EAClB,CACA,SAAS1oB,EAAOyG,GAEd,IADA,IAAIN,EAAU,GACL2C,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EACT,OAAvBhM,KAAKgM,GAAG6f,aACNliB,EACEhL,EAAEqB,KAAKgM,GAAG6f,YAAYjoB,GAAG+F,IAAaN,EAAQjC,KAAKpH,KAAKgM,GAAG6f,YAE/DxiB,EAAQjC,KAAKpH,KAAKgM,GAAG6f,aAI3B,OAAOltB,EAAE4oB,EAAOle,GAClB,CACA,SAASA,EAAQM,GAEf,IADA,IAAIN,EAAU,GACL2C,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAEpC,IADA,IAAI9I,EAASlD,KAAKgM,GAAG6f,WACd3oB,GACDyG,EACEhL,EAAEuE,GAAQU,GAAG+F,IAAaN,EAAQjC,KAAKlE,GAE3CmG,EAAQjC,KAAKlE,GAEfA,EAASA,EAAO2oB,WAGpB,OAAOltB,EAAE4oB,EAAOle,GAClB,CACA,SAASlJ,EAAQwJ,GACf,IAAIxJ,EAAUH,KACd,YAAwB,IAAb2J,EACF,IAAIod,EAAK,KAEb5mB,EAAQyD,GAAG+F,KACdxJ,EAAUA,EAAQkJ,QAAQM,GAAUgM,GAAG,IAElCxV,EACT,CACA,SAASnB,EAAK2K,GAEZ,IADA,IAAImiB,EAAgB,GACX9f,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAEpC,IADA,IAAI+f,EAAQ/rB,KAAKgM,GAAGyN,iBAAiB9P,GAC5Bie,EAAI,EAAGA,EAAImE,EAAMlsB,OAAQ+nB,GAAK,EACrCkE,EAAc1kB,KAAK2kB,EAAMnE,IAG7B,OAAO,IAAIb,EAAK+E,EAClB,CACA,SAAS1lB,EAASuD,GAEhB,IADA,IAAIvD,EAAW,GACN4F,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAGpC,IAFA,IAAI0Z,EAAa1lB,KAAKgM,GAAG0Z,WAEhBkC,EAAI,EAAGA,EAAIlC,EAAW7lB,OAAQ+nB,GAAK,EACrCje,EAEiC,IAA3B+b,EAAWkC,GAAGN,UAAkB3oB,EAAE+mB,EAAWkC,IAAIhkB,GAAG+F,IAC7DvD,EAASgB,KAAKse,EAAWkC,IAFM,IAA3BlC,EAAWkC,GAAGN,UAAkBlhB,EAASgB,KAAKse,EAAWkC,IAMnE,OAAO,IAAIb,EAAKQ,EAAOnhB,GACzB,CACA,SAASX,IACP,IAAK,IAAIuG,EAAI,EAAGA,EAAIhM,KAAKH,OAAQmM,GAAK,EAChChM,KAAKgM,GAAG6f,YAAc7rB,KAAKgM,GAAG6f,WAAWrH,YAAYxkB,KAAKgM,IAEhE,OAAOhM,IACT,CACA,SAASyU,IAEP,IADA,IAAId,EAAO,GAAItO,EAAMwL,UAAUhR,OACvBwF,KAAQsO,EAAMtO,GAAQwL,UAAWxL,GAEzC,IACI2G,EACA4b,EAFAmC,EAAM/pB,KAGV,IAAKgM,EAAI,EAAGA,EAAI2H,EAAK9T,OAAQmM,GAAK,EAAG,CACnC,IAAIigB,EAAQttB,EAAEgV,EAAK3H,IACnB,IAAK4b,EAAI,EAAGA,EAAIqE,EAAMpsB,OAAQ+nB,GAAK,EACjCmC,EAAIA,EAAIlqB,QAAUosB,EAAMrE,GACxBmC,EAAIlqB,QAAU,CAElB,CACA,OAAOkqB,CACT,CAtoBAprB,EAAEoD,GAAKglB,EAAKlY,UACZlQ,EAAE8oB,MAAQV,EACVpoB,EAAEooB,KAAOA,EAsoBT,IAAIW,EAAU,CACZtoB,SAAUA,EACVD,YAAaA,EACbkB,SAAUA,EACVkB,YAAaA,EACbxC,KAAMA,EACN0W,WAAYA,EACZjU,KAAMA,EACNymB,UAAWA,EACX7f,WAAYA,EACZrI,GAAIA,EACJ8X,IAAKA,EACLxU,QAASA,EACTymB,cAAeA,EACfnM,WAAYA,EACZlV,YAAaA,EACbC,OAAQA,EACRuQ,IAAKA,EACLvV,KAAMA,EACNN,KAAMA,EACNnE,KAAMA,EACN2E,GAAIA,EACJ4H,MAAOA,EACPmK,GAAIA,EACJtP,OAAQA,EACRwO,QAASA,EACTwW,KAAMA,EACNE,QAASA,EACTE,KAAMA,EACNE,QAASA,EACTzoB,OAAQA,EACRmG,QAASA,EACTlJ,QAASA,EACTnB,KAAMA,EACNoH,SAAUA,EACV0M,OAAQA,EACRrN,OAAQA,EACRgP,IAAKA,EACLyV,OAAQA,GAGVtpB,OAAOkkB,KAAK4C,GAAS3C,SAAQ,SAAUmH,GACrCvtB,EAAEoD,GAAGmqB,GAAcvtB,EAAEoD,GAAGmqB,IAAexE,EAAQwE,EACjD,IAEA,IAAIC,EAAQ,CACVC,YAAa,SAAqB7sB,GAChC,IAAI8sB,EAAS9sB,EACbqB,OAAOkkB,KAAKuH,GAAQtH,SAAQ,SAAU7b,GACpC,IACEmjB,EAAOnjB,GAAO,IAChB,CAAE,MAAOyE,GAET,CACA,WACS0e,EAAOnjB,EAChB,CAAE,MAAOyE,GAET,CACF,GACF,EACA2e,SAAU,SAAkBpc,EAAU2K,GAGpC,YAFe,IAAVA,IAAmBA,EAAQ,GAEzBrQ,WAAW0F,EAAU2K,EAC9B,EACA0R,IAAK,WACH,OAAO3F,KAAK2F,KACd,EACAC,aAAc,SAAsB/gB,EAAIghB,GAGtC,IAAIC,EACAC,EACAC,OAJU,IAATH,IAAkBA,EAAO,KAM9B,IAAII,EAAW1G,EAAI1D,iBAAiBhX,EAAI,MA+BxC,OA7BI0a,EAAI2G,kBACNH,EAAeE,EAAS5E,WAAa4E,EAAS1E,iBAC7B1W,MAAM,KAAK5R,OAAS,IACnC8sB,EAAeA,EAAalb,MAAM,MAAM6C,KAAI,SAAUhG,GAAK,OAAOA,EAAEjM,QAAQ,IAAK,IAAM,IAAG4Q,KAAK,OAIjG2Z,EAAkB,IAAIzG,EAAI2G,gBAAiC,SAAjBH,EAA0B,GAAKA,IAGzED,GADAE,EAAkBC,EAASE,cAAgBF,EAASG,YAAcH,EAASI,aAAeJ,EAASK,aAAeL,EAAS5E,WAAa4E,EAASlG,iBAAiB,aAAatkB,QAAQ,aAAc,uBAC5KiP,WAAWG,MAAM,KAG/B,MAATgb,IAEyBE,EAAvBxG,EAAI2G,gBAAkCF,EAAgBO,IAE/B,KAAlBT,EAAO7sB,OAAgCuqB,WAAWsC,EAAO,KAE5CtC,WAAWsC,EAAO,KAE7B,MAATD,IAEyBE,EAAvBxG,EAAI2G,gBAAkCF,EAAgBQ,IAE/B,KAAlBV,EAAO7sB,OAAgCuqB,WAAWsC,EAAO,KAE5CtC,WAAWsC,EAAO,KAEnCC,GAAgB,CACzB,EACAU,cAAe,SAAuBnsB,GACpC,IAEI8K,EACArL,EACA2sB,EACAztB,EALA0Z,EAAQ,CAAC,EACTgU,EAAarsB,GAAOilB,EAAI/jB,SAASE,KAKrC,GAA0B,iBAAfirB,GAA2BA,EAAW1tB,OAK/C,IAFAA,GADAc,GADA4sB,EAAaA,EAAWxa,QAAQ,MAAQ,EAAIwa,EAAWlrB,QAAQ,QAAS,IAAM,IAC1DoP,MAAM,KAAKqB,QAAO,SAAU0a,GAAc,MAAsB,KAAfA,CAAmB,KACxE3tB,OAEXmM,EAAI,EAAGA,EAAInM,EAAQmM,GAAK,EAC3BshB,EAAQ3sB,EAAOqL,GAAG3J,QAAQ,QAAS,IAAIoP,MAAM,KAC7C8H,EAAMkU,mBAAmBH,EAAM,UAA2B,IAAbA,EAAM,QAAqBtE,EAAYyE,mBAAmBH,EAAM,KAAO,GAGxH,OAAO/T,CACT,EACAsL,SAAU,SAAkB9W,GAC1B,MAAoB,iBAANA,GAAwB,OAANA,GAAcA,EAAEwC,aAAexC,EAAEwC,cAAgB3P,MACnF,EACAmE,OAAQ,WAEN,IADA,IAAI4O,EAAO,GAAIy8D,EAAQv/D,UAAUhR,OACzBuwE,KAAUz8D,EAAMy8D,GAAUv/D,UAAWu/D,GAG7C,IADA,IAAI1iD,EAAK9sB,OAAO+S,EAAK,IACZ3H,EAAI,EAAGA,EAAI2H,EAAK9T,OAAQmM,GAAK,EAAG,CACvC,IAAI2hB,EAAaha,EAAK3H,GACtB,GAAI2hB,QAEF,IADA,IAAIC,EAAYhtB,OAAOkkB,KAAKlkB,OAAO+sB,IAC1BE,EAAY,EAAGxoB,EAAMuoB,EAAU/tB,OAAQguB,EAAYxoB,EAAKwoB,GAAa,EAAG,CAC/E,IAAIC,EAAUF,EAAUC,GACpBE,EAAOntB,OAAOotB,yBAAyBL,EAAYG,QAC1C9E,IAAT+E,GAAsBA,EAAKE,aACzB9B,EAAMtH,SAAS6I,EAAGI,KAAa3B,EAAMtH,SAAS8I,EAAWG,IAC3D3B,EAAMpnB,OAAO2oB,EAAGI,GAAUH,EAAWG,KAC3B3B,EAAMtH,SAAS6I,EAAGI,KAAa3B,EAAMtH,SAAS8I,EAAWG,KACnEJ,EAAGI,GAAW,CAAC,EACf3B,EAAMpnB,OAAO2oB,EAAGI,GAAUH,EAAWG,KAErCJ,EAAGI,GAAWH,EAAWG,GAG/B,CAEJ,CACA,OAAOJ,CACT,GAGEQ,EACK,CACLC,SAAW,iBAAkBhI,GAASA,EAAIiI,eAAiBpJ,aAAemB,EAAIiI,eAE9EC,gBAAiBlI,EAAImI,cAAiB,mBAAoBnI,EAAIjC,WAAciC,EAAIjC,UAAUqK,gBAAkB,EAE5GC,SACU,qBAAsBrI,GAAO,2BAA4BA,EAGnEsI,gBAAkB,WAChB,IAAIC,GAAkB,EACtB,IACE,IAAIC,EAAO/tB,OAAOguB,eAAe,CAAC,EAAG,UAAW,CAE9C1qB,IAAK,WACHwqB,GAAkB,CACpB,IAEFvI,EAAIjB,iBAAiB,sBAAuB,KAAMyJ,EACpD,CAAE,MAAOhhB,GAET,CACA,OAAO+gB,CACT,CAdiB,GAgBjBG,SACS,mBAAoB1I,GAK7B2I,EAAc,SAAqBnuB,QACrB,IAAXA,IAAoBA,EAAS,CAAC,GAEnC,IAAIsmB,EAAOjnB,KACXinB,EAAKtmB,OAASA,EAGdsmB,EAAK8H,gBAAkB,CAAC,EAEpB9H,EAAKtmB,QAAUsmB,EAAKtmB,OAAOZ,IAC7Ba,OAAOkkB,KAAKmC,EAAKtmB,OAAOZ,IAAIglB,SAAQ,SAAUiK,GAC5C/H,EAAKlnB,GAAGivB,EAAW/H,EAAKtmB,OAAOZ,GAAGivB,GACpC,GAEJ,EAEIqhD,EAAkB,CAAEjgD,WAAY,CAAEo/B,cAAc,IA4KpD,SAAS9+B,IACP,IACIznB,EACA+B,EAFA2lB,EAAS3wB,KAGT4wB,EAAMD,EAAOC,IAEf3nB,OADiC,IAAxB0nB,EAAOhwB,OAAOsI,MACf0nB,EAAOhwB,OAAOsI,MAEd2nB,EAAI,GAAGC,YAGf7lB,OADkC,IAAzB2lB,EAAOhwB,OAAOqK,OACd2lB,EAAOhwB,OAAOqK,OAEd4lB,EAAI,GAAGE,aAEH,IAAV7nB,GAAe0nB,EAAOI,gBAA+B,IAAX/lB,GAAgB2lB,EAAOK,eAKtE/nB,EAAQA,EAAQxE,SAASmsB,EAAI3X,IAAI,gBAAiB,IAAMxU,SAASmsB,EAAI3X,IAAI,iBAAkB,IAC3FjO,EAASA,EAASvG,SAASmsB,EAAI3X,IAAI,eAAgB,IAAMxU,SAASmsB,EAAI3X,IAAI,kBAAmB,IAE7FkT,EAAMpnB,OAAO4rB,EAAQ,CACnB1nB,MAAOA,EACP+B,OAAQA,EACRimB,KAAMN,EAAOI,eAAiB9nB,EAAQ+B,IAE1C,CAEA,SAASkmB,IACP,IAAIP,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAEhBwwB,EAAaR,EAAOQ,WACpBC,EAAaT,EAAOM,KACpBK,EAAMX,EAAOU,aACbE,EAAWZ,EAAOY,SAClBC,EAAYb,EAAOc,SAAW9wB,EAAO8wB,QAAQC,QAC7CC,EAAuBH,EAAYb,EAAOc,QAAQG,OAAO/xB,OAAS8wB,EAAOiB,OAAO/xB,OAChF+xB,EAAST,EAAW/qB,SAAU,IAAOuqB,EAAOhwB,OAAiB,YAC7DmxB,EAAeN,EAAYb,EAAOc,QAAQG,OAAO/xB,OAAS+xB,EAAO/xB,OACjEkyB,EAAW,GACXC,EAAa,GACbC,EAAkB,GAEtB,SAASC,EAAgBC,GACvB,OAAKxxB,EAAOyxB,SACRD,IAAeP,EAAO/xB,OAAS,CAIrC,CAEA,IAAIwyB,EAAe1xB,EAAO2xB,mBACE,mBAAjBD,IACTA,EAAe1xB,EAAO2xB,mBAAmB9hB,KAAKmgB,IAGhD,IAAI4B,EAAc5xB,EAAO6xB,kBACE,mBAAhBD,IACTA,EAAc5xB,EAAO6xB,kBAAkBhiB,KAAKmgB,IAG9C,IAAI8B,EAAyB9B,EAAOoB,SAASlyB,OACzC6yB,EAA2B/B,EAAOoB,SAASlyB,OAE3CgzB,EAAelyB,EAAOkyB,aACtBC,GAAiBT,EACjBU,EAAgB,EAChBvnB,EAAQ,EACZ,QAA0B,IAAf4lB,EAAX,CAaA,IAAIuB,EAaAC,EAvBwB,iBAAjBC,GAA6BA,EAAa9f,QAAQ,MAAQ,IACnE8f,EAAgBzI,WAAWyI,EAAaxwB,QAAQ,IAAK,KAAO,IAAO+uB,GAGrET,EAAOqC,aAAeH,EAGlBvB,EAAOM,EAAO3Y,IAAI,CAAEga,WAAY,GAAIC,UAAW,KAC5CtB,EAAO3Y,IAAI,CAAEka,YAAa,GAAIC,aAAc,KAG/CzyB,EAAO0yB,gBAAkB,IAEzBV,EADExhB,KAAKC,MAAM0gB,EAAenxB,EAAO0yB,mBAAqBvB,EAAenB,EAAOhwB,OAAO0yB,gBAC5DvB,EAEA3gB,KAAKmiB,KAAKxB,EAAenxB,EAAO0yB,iBAAmB1yB,EAAO0yB,gBAExD,SAAzB1yB,EAAO4yB,eAA2D,QAA/B5yB,EAAO6yB,sBAC5Cb,EAAyBxhB,KAAKsiB,IAAId,EAAwBhyB,EAAO4yB,cAAgB5yB,EAAO0yB,mBAS5F,IAHA,IA2II8B,EA3IA9B,EAAkB1yB,EAAO0yB,gBACzBK,EAAef,EAAyBU,EACxCM,EAAiBxiB,KAAKC,MAAM0gB,EAAenxB,EAAO0yB,iBAC7CrnB,EAAI,EAAGA,EAAI8lB,EAAc9lB,GAAK,EAAG,CACxC4mB,EAAY,EACZ,IAAIgB,EAAQhC,EAAOjc,GAAG3J,GACtB,GAAIrL,EAAO0yB,gBAAkB,EAAG,CAE9B,IAAIQ,OAAqB,EACrBC,OAAS,EACTC,OAAM,EACV,GAAmC,QAA/BpzB,EAAO6yB,qBAAiC7yB,EAAOqzB,eAAiB,EAAG,CACrE,IAAIC,EAAa9iB,KAAKC,MAAMpF,GAAKrL,EAAOqzB,eAAiBrzB,EAAO0yB,kBAC5Da,EAAoBloB,EAAIrL,EAAO0yB,gBAAkB1yB,EAAOqzB,eAAiBC,EACzEE,EAAgC,IAAfF,EACjBtzB,EAAOqzB,eACP7iB,KAAKijB,IAAIjjB,KAAKmiB,MAAMxB,EAAemC,EAAaZ,EAAkB1yB,EAAOqzB,gBAAkBX,GAAkB1yB,EAAOqzB,gBAIxHH,GAFAC,EAAUI,GADVH,EAAM5iB,KAAKC,MAAM8iB,EAAoBC,IACDA,EAAkBF,EAAatzB,EAAOqzB,gBAE1CD,EAAMpB,EAA0BU,EAChEO,EACG3a,IAAI,CACH,4BAA6B4a,EAC7B,yBAA0BA,EAC1B,iBAAkBA,EAClB,gBAAiBA,EACjBQ,MAAOR,GAEb,KAA0C,WAA/BlzB,EAAO6yB,qBAEhBO,EAAM/nB,GADN8nB,EAAS3iB,KAAKC,MAAMpF,EAAIqnB,IACJA,GAChBS,EAASH,GAAmBG,IAAWH,GAAkBI,IAAQV,EAAkB,KACrFU,GAAO,IACIV,IACTU,EAAM,EACND,GAAU,IAKdA,EAAS9nB,GADT+nB,EAAM5iB,KAAKC,MAAMpF,EAAI0nB,IACDA,EAEtBE,EAAM3a,IACH,WAAa0X,EAAOI,eAAiB,MAAQ,QACrC,IAARgD,GAAapzB,EAAOkyB,cAAoBlyB,EAAmB,aAAI,KAEpE,CACA,GAA6B,SAAzBizB,EAAM3a,IAAI,WAAd,CAEA,GAA6B,SAAzBtY,EAAO4yB,cAA0B,CACnC,IAAIe,EAAcnO,EAAI1D,iBAAiBmR,EAAM,GAAI,MAC7CW,EAAmBX,EAAM,GAAGhiB,MAAMqW,UAClCuM,EAAyBZ,EAAM,GAAGhiB,MAAMuW,gBAO5C,GANIoM,IACFX,EAAM,GAAGhiB,MAAMqW,UAAY,QAEzBuM,IACFZ,EAAM,GAAGhiB,MAAMuW,gBAAkB,QAE/BxnB,EAAO8zB,aACT7B,EAAYjC,EAAOI,eACf6C,EAAMjW,YAAW,GACjBiW,EAAMnrB,aAAY,QAGtB,GAAIkoB,EAAOI,eAAgB,CACzB,IAAI9nB,EAAQmhB,WAAWkK,EAAY3N,iBAAiB,UAChD+N,EAActK,WAAWkK,EAAY3N,iBAAiB,iBACtDgO,EAAevK,WAAWkK,EAAY3N,iBAAiB,kBACvDsM,EAAa7I,WAAWkK,EAAY3N,iBAAiB,gBACrDwM,EAAc/I,WAAWkK,EAAY3N,iBAAiB,iBACtDiO,EAAYN,EAAY3N,iBAAiB,cAE3CiM,EADEgC,GAA2B,eAAdA,EACH3rB,EAAQgqB,EAAaE,EAErBlqB,EAAQyrB,EAAcC,EAAe1B,EAAaE,CAElE,KAAO,CACL,IAAInoB,EAASof,WAAWkK,EAAY3N,iBAAiB,WACjDkO,EAAazK,WAAWkK,EAAY3N,iBAAiB,gBACrDmO,EAAgB1K,WAAWkK,EAAY3N,iBAAiB,mBACxDuM,EAAY9I,WAAWkK,EAAY3N,iBAAiB,eACpDyM,EAAehJ,WAAWkK,EAAY3N,iBAAiB,kBACvD2pD,EAAch8C,EAAY3N,iBAAiB,cAE7CiM,EADE09C,GAA+B,eAAhBA,EACLtlE,EAASkoB,EAAYE,EAErBpoB,EAAS6pB,EAAaC,EAAgB5B,EAAYE,CAElE,CAEEmB,IACFX,EAAM,GAAGhiB,MAAMqW,UAAYsM,GAEzBC,IACFZ,EAAM,GAAGhiB,MAAMuW,gBAAkBqM,GAE/B7zB,EAAO8zB,eAAgB7B,EAAYzhB,KAAKC,MAAMwhB,GACpD,MACEA,GAAaxB,GAAezwB,EAAO4yB,cAAgB,GAAKV,GAAiBlyB,EAAO4yB,cAC5E5yB,EAAO8zB,eAAgB7B,EAAYzhB,KAAKC,MAAMwhB,IAE9ChB,EAAO5lB,KACL2kB,EAAOI,eACTa,EAAO5lB,GAAG4F,MAAM3I,MAAQ2pB,EAAY,KAEpChB,EAAO5lB,GAAG4F,MAAM5G,OAAS4nB,EAAY,MAIvChB,EAAO5lB,KACT4lB,EAAO5lB,GAAG+oB,gBAAkBnC,GAE9BX,EAAgB7qB,KAAKwrB,GAGjBjyB,EAAOq0B,gBACTlC,EAAgBA,EAAiBF,EAAY,EAAMG,EAAgB,EAAKF,EAClD,IAAlBE,GAA6B,IAAN/mB,IAAW8mB,EAAgBA,EAAiB1B,EAAa,EAAKyB,GAC/E,IAAN7mB,IAAW8mB,EAAgBA,EAAiB1B,EAAa,EAAKyB,GAC9D1hB,KAAK8jB,IAAInC,GAAiB,OAAYA,EAAgB,GACtDnyB,EAAO8zB,eAAgB3B,EAAgB3hB,KAAKC,MAAM0hB,IAClD,EAAUnyB,EAAOqzB,gBAAmB,GAAKjC,EAAS3qB,KAAK0rB,GAC3Dd,EAAW5qB,KAAK0rB,KAEZnyB,EAAO8zB,eAAgB3B,EAAgB3hB,KAAKC,MAAM0hB,KACjDtnB,EAAQ2F,KAAKijB,IAAIzD,EAAOhwB,OAAOu0B,mBAAoB1pB,IAAUmlB,EAAOhwB,OAAOqzB,gBAAmB,GAAKjC,EAAS3qB,KAAK0rB,GACtHd,EAAW5qB,KAAK0rB,GAChBA,EAAgBA,EAAgBF,EAAYC,GAG9ClC,EAAOqC,aAAeJ,EAAYC,EAElCE,EAAgBH,EAEhBpnB,GAAS,CAxFwC,CAyFnD,CAaA,GAZAmlB,EAAOqC,YAAc7hB,KAAKsiB,IAAI9C,EAAOqC,YAAa5B,GAAcmB,EAI9DjB,GAAOC,IAA+B,UAAlB5wB,EAAOy0B,QAAwC,cAAlBz0B,EAAOy0B,SACxDjE,EAAWlY,IAAI,CAAEhQ,MAAS0nB,EAAOqC,YAAcryB,EAAOkyB,aAAgB,OAEpElyB,EAAO00B,iBACL1E,EAAOI,eAAkBI,EAAWlY,IAAI,CAAEhQ,MAAS0nB,EAAOqC,YAAcryB,EAAOkyB,aAAgB,OAC5F1B,EAAWlY,IAAI,CAAEjO,OAAU2lB,EAAOqC,YAAcryB,EAAOkyB,aAAgB,QAG5ElyB,EAAO0yB,gBAAkB,IAC3B1C,EAAOqC,aAAeJ,EAAYjyB,EAAOkyB,cAAgBF,EACzDhC,EAAOqC,YAAc7hB,KAAKmiB,KAAK3C,EAAOqC,YAAcryB,EAAO0yB,iBAAmB1yB,EAAOkyB,aACjFlC,EAAOI,eAAkBI,EAAWlY,IAAI,CAAEhQ,MAAS0nB,EAAOqC,YAAcryB,EAAOkyB,aAAgB,OAC5F1B,EAAWlY,IAAI,CAAEjO,OAAU2lB,EAAOqC,YAAcryB,EAAOkyB,aAAgB,OAC1ElyB,EAAOq0B,gBAAgB,CACzBG,EAAgB,GAChB,IAAK,IAAIo7C,EAAM,EAAGA,EAAMx+C,EAASlyB,OAAQ0wE,GAAO,EAAG,CACjD,IAAIj7C,GAAiBvD,EAASw+C,GAC1B5vE,EAAO8zB,eAAgBa,GAAiBnkB,KAAKC,MAAMkkB,KACnDvD,EAASw+C,GAAO5/C,EAAOqC,YAAcjB,EAAS,IAAMoD,EAAc/tB,KAAKkuB,GAC7E,CACAvD,EAAWoD,CACb,CAIF,IAAKx0B,EAAOq0B,eAAgB,CAC1BG,EAAgB,GAChB,IAAK,IAAIq7C,GAAM,EAAGA,GAAMz+C,EAASlyB,OAAQ2wE,IAAO,EAAG,CACjD,IAAIC,GAAmB1+C,EAASy+C,IAC5B7vE,EAAO8zB,eAAgBg8C,GAAmBt/D,KAAKC,MAAMq/D,KACrD1+C,EAASy+C,KAAQ7/C,EAAOqC,YAAc5B,GACxC+D,EAAc/tB,KAAKqpE,GAEvB,CACA1+C,EAAWoD,EACPhkB,KAAKC,MAAMuf,EAAOqC,YAAc5B,GAAcjgB,KAAKC,MAAM2gB,EAASA,EAASlyB,OAAS,IAAM,GAC5FkyB,EAAS3qB,KAAKupB,EAAOqC,YAAc5B,EAEvC,CAUA,GATwB,IAApBW,EAASlyB,SAAgBkyB,EAAW,CAAC,IAEb,IAAxBpxB,EAAOkyB,eACLlC,EAAOI,eACLO,EAAOM,EAAO9e,OAAOof,GAAiBjZ,IAAI,CAAEga,WAAaJ,EAAe,OACrEjB,EAAO9e,OAAOof,GAAiBjZ,IAAI,CAAEka,YAAcN,EAAe,OAClEjB,EAAO9e,OAAOof,GAAiBjZ,IAAI,CAAEma,aAAeP,EAAe,QAG1ElyB,EAAOq0B,gBAAkBr0B,EAAO40B,qBAAsB,CACxD,IAAIC,GAAgB,EACpBvD,EAAgBlN,SAAQ,SAAU0Q,GAChCD,IAAiBC,GAAkB90B,EAAOkyB,aAAelyB,EAAOkyB,aAAe,EACjF,IAEA,IAAI6C,IADJF,IAAiB70B,EAAOkyB,cACMzB,EAC9BW,EAAWA,EAASzd,KAAI,SAAUqhB,GAChC,OAAIA,EAAO,GAAatD,EACpBsD,EAAOD,GAAkBA,GAAUnD,EAChCoD,CACT,GACF,CAEA,GAAIh1B,EAAOi1B,yBAA0B,CACnC,IAAI86C,GAAkB,EAKtB,GAJAz+C,EAAgBlN,SAAQ,SAAU0Q,GAChCi7C,IAAmBj7C,GAAkB90B,EAAOkyB,aAAelyB,EAAOkyB,aAAe,EACnF,KACA69C,IAAmB/vE,EAAOkyB,cACJzB,EAAY,CAChC,IAAIyE,IAAmBzE,EAAas/C,IAAmB,EACvD3+C,EAAShN,SAAQ,SAAU4Q,EAAMG,GAC/B/D,EAAS+D,GAAaH,EAAOE,EAC/B,IACA7D,EAAWjN,SAAQ,SAAU4Q,EAAMG,GACjC9D,EAAW8D,GAAaH,EAAOE,EACjC,GACF,CACF,CAEA1J,EAAMpnB,OAAO4rB,EAAQ,CACnBiB,OAAQA,EACRG,SAAUA,EACVC,WAAYA,EACZC,gBAAiBA,IAGfH,IAAiBH,GACnBhB,EAAOpB,KAAK,sBAEVwC,EAASlyB,SAAW4yB,IAClB9B,EAAOhwB,OAAOo1B,eAAiBpF,EAAOqF,gBAC1CrF,EAAOpB,KAAK,yBAEVyC,EAAWnyB,SAAW6yB,GACxB/B,EAAOpB,KAAK,2BAGV5uB,EAAOs1B,qBAAuBt1B,EAAOu1B,wBACvCvF,EAAOwF,oBAzQT,CA2QF,CAEA,SAASC,EAAkBxsB,GACzB,IAGIoC,EAHA2kB,EAAS3wB,KACTq2B,EAAe,GACfC,EAAY,EAQhB,GANqB,iBAAV1sB,EACT+mB,EAAO4F,cAAc3sB,IACF,IAAVA,GACT+mB,EAAO4F,cAAc5F,EAAOhwB,OAAOiJ,OAGD,SAAhC+mB,EAAOhwB,OAAO4yB,eAA4B5C,EAAOhwB,OAAO4yB,cAAgB,EAC1E,GAAI5C,EAAOhwB,OAAOq0B,eAChBrE,EAAO6F,cAAc9yB,MAAK,SAAU8H,EAAOooB,GACzCyC,EAAajvB,KAAKwsB,EACpB,SAEA,IAAK5nB,EAAI,EAAGA,EAAImF,KAAKmiB,KAAK3C,EAAOhwB,OAAO4yB,eAAgBvnB,GAAK,EAAG,CAC9D,IAAIR,EAAQmlB,EAAO8F,YAAczqB,EACjC,GAAIR,EAAQmlB,EAAOiB,OAAO/xB,OAAU,MACpCw2B,EAAajvB,KAAKupB,EAAOiB,OAAOjc,GAAGnK,GAAO,GAC5C,MAGF6qB,EAAajvB,KAAKupB,EAAOiB,OAAOjc,GAAGgb,EAAO8F,aAAa,IAIzD,IAAKzqB,EAAI,EAAGA,EAAIqqB,EAAax2B,OAAQmM,GAAK,EACxC,QAA+B,IAApBqqB,EAAarqB,GAAoB,CAC1C,IAAIhB,EAASqrB,EAAarqB,GAAGqe,aAC7BiM,EAAYtrB,EAASsrB,EAAYtrB,EAASsrB,CAC5C,CAIEA,GAAa3F,EAAOQ,WAAWlY,IAAI,SAAWqd,EAAY,KAChE,CAEA,SAASH,KAGP,IAFA,IAAIxF,EAAS3wB,KACT4xB,EAASjB,EAAOiB,OACX5lB,EAAI,EAAGA,EAAI4lB,EAAO/xB,OAAQmM,GAAK,EACtC4lB,EAAO5lB,GAAG0qB,kBAAoB/F,EAAOI,eAAiBa,EAAO5lB,GAAG2qB,WAAa/E,EAAO5lB,GAAG4qB,SAE3F,CAEA,SAASC,GAAsBC,QACV,IAAdA,IAAuBA,EAAa92B,MAAQA,KAAK82B,WAAc,GAEpE,IAAInG,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAEhBixB,EAASjB,EAAOiB,OAChBN,EAAMX,EAAOU,aAEjB,GAAsB,IAAlBO,EAAO/xB,OAAX,MAC2C,IAAhC+xB,EAAO,GAAG8E,mBAAqC/F,EAAOwF,qBAEjE,IAAIY,GAAgBD,EAChBxF,IAAOyF,EAAeD,GAG1BlF,EAAOzyB,YAAYwB,EAAOq2B,mBAE1BrG,EAAOsG,qBAAuB,GAC9BtG,EAAO6F,cAAgB,GAEvB,IAAK,IAAIxqB,EAAI,EAAGA,EAAI4lB,EAAO/xB,OAAQmM,GAAK,EAAG,CACzC,IAAI4nB,EAAQhC,EAAO5lB,GACfkrB,GACDH,GAAgBp2B,EAAOq0B,eAAiBrE,EAAOwG,eAAiB,GAAMvD,EAAM8C,oBAC1E9C,EAAMmB,gBAAkBp0B,EAAOkyB,cACpC,GAAIlyB,EAAOu1B,uBAA0Bv1B,EAAOq0B,gBAAkBr0B,EAAOy2B,WAAa,CAChF,IAAIC,IAAgBN,EAAenD,EAAM8C,mBACrCY,EAAaD,EAAc1G,EAAOsB,gBAAgBjmB,IACrCqrB,GAAe,GAAKA,EAAc1G,EAAOM,KAAO,GACnDqG,EAAa,GAAKA,GAAc3G,EAAOM,MACvCoG,GAAe,GAAKC,GAAc3G,EAAOM,QAErDN,EAAO6F,cAAcpvB,KAAKwsB,GAC1BjD,EAAOsG,qBAAqB7vB,KAAK4E,GACjC4lB,EAAOjc,GAAG3J,GAAG5M,SAASuB,EAAOq2B,mBAEjC,CACApD,EAAM2D,SAAWjG,GAAO4F,EAAgBA,CAC1C,CACAvG,EAAO6F,cAAgB73B,EAAEgyB,EAAO6F,cA/BG,CAgCrC,CAEA,SAASgB,GAAgBV,GACvB,IAAInG,EAAS3wB,KACb,QAAyB,IAAd82B,EAA2B,CACpC,IAAIW,EAAa9G,EAAOU,cAAgB,EAAI,EAE5CyF,EAAanG,GAAUA,EAAOmG,WAAcnG,EAAOmG,UAAYW,GAAgB,CACjF,CACA,IAAI92B,EAASgwB,EAAOhwB,OAChB+2B,EAAiB/G,EAAOgH,eAAiBhH,EAAOwG,eAChDI,EAAW5G,EAAO4G,SAClBK,EAAcjH,EAAOiH,YACrBC,EAAQlH,EAAOkH,MACfC,EAAeF,EACfG,EAASF,EACU,IAAnBH,GACFH,EAAW,EACXK,GAAc,EACdC,GAAQ,IAGRD,GADAL,GAAYT,EAAYnG,EAAOwG,gBAAkB,IACvB,EAC1BU,EAAQN,GAAY,GAEtBpL,EAAMpnB,OAAO4rB,EAAQ,CACnB4G,SAAUA,EACVK,YAAaA,EACbC,MAAOA,KAGLl3B,EAAOs1B,qBAAuBt1B,EAAOu1B,uBAA0Bv1B,EAAOq0B,gBAAkBr0B,EAAOy2B,aAAezG,EAAOkG,qBAAqBC,GAE1Ic,IAAgBE,GAClBnH,EAAOpB,KAAK,yBAEVsI,IAAUE,GACZpH,EAAOpB,KAAK,oBAETuI,IAAiBF,GAAiBG,IAAWF,IAChDlH,EAAOpB,KAAK,YAGdoB,EAAOpB,KAAK,WAAYgI,EAC1B,CAEA,SAASS,KACP,IAWIE,EAXAvH,EAAS3wB,KAET4xB,EAASjB,EAAOiB,OAChBjxB,EAASgwB,EAAOhwB,OAChBwwB,EAAaR,EAAOQ,WACpBsF,EAAc9F,EAAO8F,YACrBwB,EAAYtH,EAAOsH,UACnBzG,EAAYb,EAAOc,SAAW9wB,EAAO8wB,QAAQC,QAEjDE,EAAOzyB,YAAcwB,EAAuB,iBAAI,IAAOA,EAAqB,eAAI,IAAOA,EAAqB,eAAI,IAAOA,EAAgC,0BAAI,IAAOA,EAA8B,wBAAI,IAAOA,EAA8B,0BAIvOu3B,EADE1G,EACYb,EAAOQ,WAAWnyB,KAAM,IAAO2B,EAAiB,WAAI,6BAAgC81B,EAAc,MAElG7E,EAAOjc,GAAG8gB,IAIdr3B,SAASuB,EAAOw3B,kBAExBx3B,EAAO83B,OAELP,EAAY73B,SAASM,EAAO+3B,qBAC9BvH,EACG/qB,SAAU,IAAOzF,EAAiB,WAAI,SAAYA,EAA0B,oBAAI,8BAAiCs3B,EAAY,MAC7H74B,SAASuB,EAAO23B,2BAEnBnH,EACG/qB,SAAU,IAAOzF,EAAiB,WAAI,IAAOA,EAA0B,oBAAI,6BAAgCs3B,EAAY,MACvH74B,SAASuB,EAAO23B,4BAIvB,IAAIK,EAAYT,EAAY3M,QAAS,IAAO5qB,EAAiB,YAAIgV,GAAG,GAAGvW,SAASuB,EAAOy3B,gBACnFz3B,EAAO83B,MAA6B,IAArBE,EAAU94B,SAC3B84B,EAAY/G,EAAOjc,GAAG,IACZvW,SAASuB,EAAOy3B,gBAG5B,IAAIQ,EAAYV,EAAYvM,QAAS,IAAOhrB,EAAiB,YAAIgV,GAAG,GAAGvW,SAASuB,EAAO03B,gBACnF13B,EAAO83B,MAA6B,IAArBG,EAAU/4B,SAC3B+4B,EAAYhH,EAAOjc,IAAI,IACbvW,SAASuB,EAAO03B,gBAExB13B,EAAO83B,OAELE,EAAUt4B,SAASM,EAAO+3B,qBAC5BvH,EACG/qB,SAAU,IAAOzF,EAAiB,WAAI,SAAYA,EAA0B,oBAAI,8BAAkCg4B,EAAU55B,KAAK,2BAA8B,MAC/JK,SAASuB,EAAO43B,yBAEnBpH,EACG/qB,SAAU,IAAOzF,EAAiB,WAAI,IAAOA,EAA0B,oBAAI,6BAAiCg4B,EAAU55B,KAAK,2BAA8B,MACzJK,SAASuB,EAAO43B,yBAEjBK,EAAUv4B,SAASM,EAAO+3B,qBAC5BvH,EACG/qB,SAAU,IAAOzF,EAAiB,WAAI,SAAYA,EAA0B,oBAAI,8BAAkCi4B,EAAU75B,KAAK,2BAA8B,MAC/JK,SAASuB,EAAO63B,yBAEnBrH,EACG/qB,SAAU,IAAOzF,EAAiB,WAAI,IAAOA,EAA0B,oBAAI,6BAAiCi4B,EAAU75B,KAAK,2BAA8B,MACzJK,SAASuB,EAAO63B,yBAGzB,CAEA,SAASK,GAAmBC,GAC1B,IASIhD,EATAnF,EAAS3wB,KACT82B,EAAYnG,EAAOU,aAAeV,EAAOmG,WAAanG,EAAOmG,UAC7D9E,EAAarB,EAAOqB,WACpBD,EAAWpB,EAAOoB,SAClBpxB,EAASgwB,EAAOhwB,OAChBo4B,EAAgBpI,EAAO8F,YACvBuC,EAAoBrI,EAAOsH,UAC3BgB,EAAoBtI,EAAOmF,UAC3BW,EAAcqC,EAElB,QAA2B,IAAhBrC,EAA6B,CACtC,IAAK,IAAIzqB,EAAI,EAAGA,EAAIgmB,EAAWnyB,OAAQmM,GAAK,OACT,IAAtBgmB,EAAWhmB,EAAI,GACpB8qB,GAAa9E,EAAWhmB,IAAM8qB,EAAY9E,EAAWhmB,EAAI,IAAOgmB,EAAWhmB,EAAI,GAAKgmB,EAAWhmB,IAAM,EACvGyqB,EAAczqB,EACL8qB,GAAa9E,EAAWhmB,IAAM8qB,EAAY9E,EAAWhmB,EAAI,KAClEyqB,EAAczqB,EAAI,GAEX8qB,GAAa9E,EAAWhmB,KACjCyqB,EAAczqB,GAIdrL,EAAOu4B,sBACLzC,EAAc,QAA4B,IAAhBA,KAA+BA,EAAc,EAE/E,CACA,GAAI1E,EAAShf,QAAQ+jB,IAAc,EACjChB,EAAY/D,EAAShf,QAAQ+jB,OACxB,CACL,IAAIqC,EAAOhoB,KAAKijB,IAAIzzB,EAAOu0B,mBAAoBuB,GAC/CX,EAAYqD,EAAOhoB,KAAKC,OAAOqlB,EAAc0C,GAAQx4B,EAAOqzB,eAC9D,CAEA,GADI8B,GAAa/D,EAASlyB,SAAUi2B,EAAY/D,EAASlyB,OAAS,GAC9D42B,IAAgBsC,EAApB,CASA,IAAId,EAAYxzB,SAASksB,EAAOiB,OAAOjc,GAAG8gB,GAAa13B,KAAK,4BAA8B03B,EAAa,IAEvGtK,EAAMpnB,OAAO4rB,EAAQ,CACnBmF,UAAWA,EACXmC,UAAWA,EACXc,cAAeA,EACftC,YAAaA,IAEf9F,EAAOpB,KAAK,qBACZoB,EAAOpB,KAAK,mBACRyJ,IAAsBf,GACxBtH,EAAOpB,KAAK,oBAEVoB,EAAOyI,aAAezI,EAAOhwB,OAAO04B,qBACtC1I,EAAOpB,KAAK,cAjBd,MALMuG,IAAcmD,IAChBtI,EAAOmF,UAAYA,EACnBnF,EAAOpB,KAAK,mBAsBlB,CAEA,SAAS+J,GAAoB3rB,GAC3B,IAAIgjB,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAChBizB,EAAQj1B,EAAEgP,EAAEvE,QAAQjJ,QAAS,IAAOQ,EAAiB,YAAI,GACzD44B,GAAa,EACjB,GAAI3F,EACF,IAAK,IAAI5nB,EAAI,EAAGA,EAAI2kB,EAAOiB,OAAO/xB,OAAQmM,GAAK,EACzC2kB,EAAOiB,OAAO5lB,KAAO4nB,IAAS2F,GAAa,GAInD,IAAI3F,IAAS2F,EAUX,OAFA5I,EAAO6I,kBAAexQ,OACtB2H,EAAO8I,kBAAezQ,GARtB2H,EAAO6I,aAAe5F,EAClBjD,EAAOc,SAAWd,EAAOhwB,OAAO8wB,QAAQC,QAC1Cf,EAAO8I,aAAeh1B,SAAS9F,EAAEi1B,GAAO70B,KAAK,2BAA4B,IAEzE4xB,EAAO8I,aAAe96B,EAAEi1B,GAAOpoB,QAO/B7K,EAAO+4B,0BAA+C1Q,IAAxB2H,EAAO8I,cAA8B9I,EAAO8I,eAAiB9I,EAAO8F,aACpG9F,EAAO+I,qBAEX,CAnyBA5K,EAAYjgB,UAAU9O,GAAK,SAAakpB,EAAQK,EAAS2F,GACvD,IAAIhI,EAAOjnB,KACX,GAAuB,mBAAZspB,EAA0B,OAAOrC,EAC5C,IAAIiI,EAASD,EAAW,UAAY,OAKpC,OAJAhG,EAAOxX,MAAM,KAAKsT,SAAQ,SAAUtkB,GAC7BwmB,EAAK8H,gBAAgBtuB,KAAUwmB,EAAK8H,gBAAgBtuB,GAAS,IAClEwmB,EAAK8H,gBAAgBtuB,GAAOyuB,GAAQ5F,EACtC,IACOrC,CACT,EAEA6H,EAAYjgB,UAAUsgB,KAAO,SAAelG,EAAQK,EAAS2F,GAC3D,IAAIhI,EAAOjnB,KACX,GAAuB,mBAAZspB,EAA0B,OAAOrC,EAC5C,SAASmI,IAEL,IADA,IAAIzb,EAAO,GAAItO,EAAMwL,UAAUhR,OACvBwF,KAAQsO,EAAMtO,GAAQwL,UAAWxL,GAE3C4hB,EAAKpP,IAAIoR,EAAQmG,GACbA,EAAYC,gBACPD,EAAYC,QAErB/F,EAAQvZ,MAAMkX,EAAMtT,EACtB,CAEA,OADAyb,EAAYC,QAAU/F,EACfrC,EAAKlnB,GAAGkpB,EAAQmG,EAAaH,EACtC,EAEAH,EAAYjgB,UAAUgJ,IAAM,SAAcoR,EAAQK,GAChD,IAAIrC,EAAOjnB,KACX,OAAKinB,EAAK8H,iBACV9F,EAAOxX,MAAM,KAAKsT,SAAQ,SAAUtkB,QACX,IAAZ6oB,EACTrC,EAAK8H,gBAAgBtuB,GAAS,GACrBwmB,EAAK8H,gBAAgBtuB,IAAUwmB,EAAK8H,gBAAgBtuB,GAAOZ,QACpEonB,EAAK8H,gBAAgBtuB,GAAOskB,SAAQ,SAAUuK,EAAc9jB,IACtD8jB,IAAiBhG,GAAYgG,EAAaD,SAAWC,EAAaD,UAAY/F,IAChFrC,EAAK8H,gBAAgBtuB,GAAOuP,OAAOxE,EAAO,EAE9C,GAEJ,IACOyb,GAZ6BA,CAatC,EAEA6H,EAAYjgB,UAAU0gB,KAAO,WAEzB,IADA,IAAI5b,EAAO,GAAItO,EAAMwL,UAAUhR,OACvBwF,KAAQsO,EAAMtO,GAAQwL,UAAWxL,GAE3C,IAEI4jB,EACAznB,EACA0lB,EAJAD,EAAOjnB,KACX,OAAKinB,EAAK8H,iBAIa,iBAAZpb,EAAK,IAAmBhD,MAAMiK,QAAQjH,EAAK,KACpDsV,EAAStV,EAAK,GACdnS,EAAOmS,EAAK7M,MAAM,EAAG6M,EAAK9T,QAC1BqnB,EAAUD,IAEVgC,EAAStV,EAAK,GAAGsV,OACjBznB,EAAOmS,EAAK,GAAGnS,KACf0lB,EAAUvT,EAAK,GAAGuT,SAAWD,IAEbtW,MAAMiK,QAAQqO,GAAUA,EAASA,EAAOxX,MAAM,MACpDsT,SAAQ,SAAUtkB,GAC5B,GAAIwmB,EAAK8H,iBAAmB9H,EAAK8H,gBAAgBtuB,GAAQ,CACvD,IAAI4oB,EAAW,GACfpC,EAAK8H,gBAAgBtuB,GAAOskB,SAAQ,SAAUuK,GAC5CjG,EAASjiB,KAAKkoB,EAChB,IACAjG,EAAStE,SAAQ,SAAUuK,GACzBA,EAAavf,MAAMmX,EAAS1lB,EAC9B,GACF,CACF,IACOylB,GAzB6BA,CA0BtC,EAEA6H,EAAYjgB,UAAU2gB,iBAAmB,SAA2BC,GAClE,IAAIC,EAAW1vB,KACV0vB,EAASC,SACd/uB,OAAOkkB,KAAK4K,EAASC,SAAS5K,SAAQ,SAAU6K,GAC9C,IAAIrgB,EAASmgB,EAASC,QAAQC,GAE1BrgB,EAAO5O,QACTwrB,EAAMpnB,OAAO0qB,EAAgBlgB,EAAO5O,OAExC,GACF,EAEAmuB,EAAYjgB,UAAUghB,WAAa,SAAqBC,QAC7B,IAAlBA,IAA2BA,EAAgB,CAAC,GAEnD,IAAIJ,EAAW1vB,KACV0vB,EAASC,SACd/uB,OAAOkkB,KAAK4K,EAASC,SAAS5K,SAAQ,SAAU6K,GAC9C,IAAIrgB,EAASmgB,EAASC,QAAQC,GAC1BG,EAAeD,EAAcF,IAAe,CAAC,EAE7CrgB,EAAOmgB,UACT9uB,OAAOkkB,KAAKvV,EAAOmgB,UAAU3K,SAAQ,SAAUiL,GAC7C,IAAIC,EAAa1gB,EAAOmgB,SAASM,GAE/BN,EAASM,GADe,mBAAfC,EACkBA,EAAW1e,KAAKme,GAEhBO,CAE/B,IAGE1gB,EAAOxP,IAAM2vB,EAAS3vB,IACxBa,OAAOkkB,KAAKvV,EAAOxP,IAAIglB,SAAQ,SAAUmL,GACvCR,EAAS3vB,GAAGmwB,EAAiB3gB,EAAOxP,GAAGmwB,GACzC,IAIE3gB,EAAO4gB,QACT5gB,EAAO4gB,OAAO5e,KAAKme,EAAnBngB,CAA6BwgB,EAEjC,GACF,EAEAsgD,EAAgBjgD,WAAW9O,IAAM,SAAU8O,GACzC,IAAI3I,EAAQznB,KACPynB,EAAM4I,KACX5I,EAAM4I,IAAID,EACZ,EAEAtB,EAAYwB,cAAgB,SAAwB/gB,GAEhD,IADA,IAAI5O,EAAS,GAAI0E,EAAMwL,UAAUhR,OAAS,EAClCwF,KAAQ,GAAI1E,EAAQ0E,GAAQwL,UAAWxL,EAAM,GAEvD,IAAIoiB,EAAQznB,KACPynB,EAAM5Y,UAAU8gB,UAAWlI,EAAM5Y,UAAU8gB,QAAU,CAAC,GAC3D,IAAIhsB,EAAO4L,EAAO5L,MAAW/C,OAAOkkB,KAAK2C,EAAM5Y,UAAU8gB,SAAe,OAAI,IAAOxD,EAAMI,MAkBzF,OAjBA9E,EAAM5Y,UAAU8gB,QAAQhsB,GAAQ4L,EAE5BA,EAAOghB,OACT3vB,OAAOkkB,KAAKvV,EAAOghB,OAAOxL,SAAQ,SAAU7b,GAC1Cue,EAAM5Y,UAAU3F,GAAOqG,EAAOghB,MAAMrnB,EACtC,IAGEqG,EAAOihB,QACT5vB,OAAOkkB,KAAKvV,EAAOihB,QAAQzL,SAAQ,SAAU7b,GAC3Cue,EAAMve,GAAOqG,EAAOihB,OAAOtnB,EAC7B,IAGEqG,EAAOkhB,SACTlhB,EAAOkhB,QAAQ1gB,MAAM0X,EAAO9mB,GAEvB8mB,CACT,EAEAqH,EAAYuB,IAAM,SAAc9gB,GAE5B,IADA,IAAI5O,EAAS,GAAI0E,EAAMwL,UAAUhR,OAAS,EAClCwF,KAAQ,GAAI1E,EAAQ0E,GAAQwL,UAAWxL,EAAM,GAEvD,IAAIoiB,EAAQznB,KACZ,OAAI2Q,MAAMiK,QAAQrL,IAChBA,EAAOwV,SAAQ,SAAU5W,GAAK,OAAOsZ,EAAM6I,cAAcniB,EAAI,IACtDsZ,GAEFA,EAAM6I,cAAcvgB,MAAM0X,EAAO,CAAElY,GAASyD,OAAQrS,GAC7D,EAEAC,OAAO+vE,iBAAkB7hD,EAAauhD,GA6nBtC,IAAI74D,GAAS,CACXkZ,WAAYA,EACZQ,aAAcA,EACdkF,iBAAkBA,EAClBD,mBAAoBA,GACpBU,qBAAsBA,GACtBW,eAAgBA,GAChBQ,oBAAqBA,GACrBa,kBAAmBA,GACnBS,mBAAoBA,IAGtB,SAAS9M,GAAcC,QACP,IAATA,IAAkBA,EAAOzsB,KAAK+wB,eAAiB,IAAM,KAE1D,IAAIJ,EAAS3wB,KAETW,EAASgwB,EAAOhwB,OAChB2wB,EAAMX,EAAOU,aACbyF,EAAYnG,EAAOmG,UACnB3F,EAAaR,EAAOQ,WAExB,GAAIxwB,EAAOg5B,iBACT,OAAOrI,GAAOwF,EAAYA,EAE5B,GAAIn2B,EAAOyxB,QACT,OAAO0E,EAGT,IAAI8C,EAAmBzN,EAAMK,aAAa2E,EAAW,GAAI1E,GAGzD,OAFI6E,IAAOsI,GAAoBA,GAExBA,GAAoB,CAC7B,CAEA,SAASC,GAAc/C,EAAWgD,GAChC,IAAInJ,EAAS3wB,KACTsxB,EAAMX,EAAOU,aACb1wB,EAASgwB,EAAOhwB,OAChBwwB,EAAaR,EAAOQ,WACpB4I,EAAYpJ,EAAOoJ,UACnBxC,EAAW5G,EAAO4G,SAClBvoB,EAAI,EACJZ,EAAI,EACJwiE,EAAI,EAEJjgD,EAAOI,eACT/hB,EAAIsiB,GAAOwF,EAAYA,EAEvB1oB,EAAI0oB,EAGFn2B,EAAO8zB,eACTzlB,EAAImC,KAAKC,MAAMpC,GACfZ,EAAI+C,KAAKC,MAAMhD,IAGbzN,EAAOyxB,QACT2H,EAAUpJ,EAAOI,eAAiB,aAAe,aAAeJ,EAAOI,gBAAkB/hB,GAAKZ,EACpFzN,EAAOg5B,kBACjBxI,EAAWlJ,UAAW,eAAiBjZ,EAAI,OAASZ,EAAI,OAASwiE,EAAI,OAEvEjgD,EAAOsJ,kBAAoBtJ,EAAOmG,UAClCnG,EAAOmG,UAAYnG,EAAOI,eAAiB/hB,EAAIZ,EAI/C,IAAIspB,EAAiB/G,EAAOgH,eAAiBhH,EAAOwG,gBAC7B,IAAnBO,EACY,GAECZ,EAAYnG,EAAOwG,gBAAkB,KAElCI,GAClB5G,EAAO6G,eAAeV,GAGxBnG,EAAOpB,KAAK,eAAgBoB,EAAOmG,UAAWgD,EAChD,CAEA,SAAS3C,KACP,OAASn3B,KAAK+xB,SAAS,EACzB,CAEA,SAAS4F,KACP,OAAS33B,KAAK+xB,SAAS/xB,KAAK+xB,SAASlyB,OAAS,EAChD,CAEA,SAASq6B,GAAapD,EAAWltB,EAAOuwB,EAAcC,EAAiBC,GACrE,IAAI96B,OAEe,IAAdu3B,IAAuBA,EAAY,QACzB,IAAVltB,IAAmBA,EAAQ5J,KAAKW,OAAOiJ,YACtB,IAAjBuwB,IAA0BA,GAAe,QACrB,IAApBC,IAA6BA,GAAkB,GACpD,IAAIzJ,EAAS3wB,KAETW,EAASgwB,EAAOhwB,OAChBo5B,EAAYpJ,EAAOoJ,UAEvB,GAAIpJ,EAAO2J,WAAa35B,EAAO45B,+BAC7B,OAAO,EAGT,IAEIC,EAFArD,EAAexG,EAAOwG,eACtBQ,EAAehH,EAAOgH,eAS1B,GAPmD6C,EAA/CJ,GAAmBtD,EAAYK,EAA+BA,EACzDiD,GAAmBtD,EAAYa,EAA+BA,EACjDb,EAGtBnG,EAAO6G,eAAegD,GAElB75B,EAAOyxB,QAAS,CAClB,IAAIqI,EAAM9J,EAAOI,eAWjB,OAVc,IAAVnnB,EACFmwB,EAAUU,EAAM,aAAe,cAAgBD,EAG3CT,EAAUW,SACZX,EAAUW,WAAWn7B,EAAM,CAAC,GAAOk7B,EAAM,OAAS,QAAUD,EAAcj7B,EAAIo7B,SAAW,SAAUp7B,IAEnGw6B,EAAUU,EAAM,aAAe,cAAgBD,GAG5C,CACT,CAoCA,OAlCc,IAAV5wB,GACF+mB,EAAO4F,cAAc,GACrB5F,EAAOkJ,aAAaW,GAChBL,IACFxJ,EAAOpB,KAAK,wBAAyB3lB,EAAOywB,GAC5C1J,EAAOpB,KAAK,oBAGdoB,EAAO4F,cAAc3sB,GACrB+mB,EAAOkJ,aAAaW,GAChBL,IACFxJ,EAAOpB,KAAK,wBAAyB3lB,EAAOywB,GAC5C1J,EAAOpB,KAAK,oBAEToB,EAAO2J,YACV3J,EAAO2J,WAAY,EACd3J,EAAOiK,oCACVjK,EAAOiK,kCAAoC,SAAuBjtB,GAC3DgjB,IAAUA,EAAOkK,WAClBltB,EAAEvE,SAAWpJ,OACjB2wB,EAAOQ,WAAW,GAAGhM,oBAAoB,gBAAiBwL,EAAOiK,mCACjEjK,EAAOQ,WAAW,GAAGhM,oBAAoB,sBAAuBwL,EAAOiK,mCACvEjK,EAAOiK,kCAAoC,YACpCjK,EAAOiK,kCACVT,GACFxJ,EAAOpB,KAAK,iBAEhB,GAEFoB,EAAOQ,WAAW,GAAGjM,iBAAiB,gBAAiByL,EAAOiK,mCAC9DjK,EAAOQ,WAAW,GAAGjM,iBAAiB,sBAAuByL,EAAOiK,sCAIjE,CACT,CAEA,IAAI9D,GAAY,CACdtK,aAAcA,GACdqN,aAAcA,GACd1C,aAAcA,GACdQ,aAAcA,GACduC,YAAaA,IAGf,SAAS3D,GAAenO,EAAU0R,GAChC,IAAInJ,EAAS3wB,KAER2wB,EAAOhwB,OAAOyxB,SACjBzB,EAAOQ,WAAW/oB,WAAWggB,GAG/BuI,EAAOpB,KAAK,gBAAiBnH,EAAU0R,EACzC,CAEA,SAASgB,GAAiBX,EAAcY,QAChB,IAAjBZ,IAA0BA,GAAe,GAE9C,IAAIxJ,EAAS3wB,KACTy2B,EAAc9F,EAAO8F,YACrB91B,EAASgwB,EAAOhwB,OAChBo4B,EAAgBpI,EAAOoI,cAC3B,IAAIp4B,EAAOyxB,QAAX,CACIzxB,EAAOy2B,YACTzG,EAAOyF,mBAGT,IAAI3U,EAAMsZ,EASV,GARKtZ,IACgCA,EAA/BgV,EAAcsC,EAAuB,OAChCtC,EAAcsC,EAAuB,OACjC,SAGfpI,EAAOpB,KAAK,mBAER4K,GAAgB1D,IAAgBsC,EAAe,CACjD,GAAY,UAARtX,EAEF,YADAkP,EAAOpB,KAAK,6BAGdoB,EAAOpB,KAAK,8BACA,SAAR9N,EACFkP,EAAOpB,KAAK,4BAEZoB,EAAOpB,KAAK,2BAEhB,CAzB8B,CA0BhC,CAEA,SAASshD,GAAiB12C,EAAcY,QAChB,IAAjBZ,IAA0BA,GAAe,GAE9C,IAAIxJ,EAAS3wB,KACTy2B,EAAc9F,EAAO8F,YACrBsC,EAAgBpI,EAAOoI,cACvBp4B,EAASgwB,EAAOhwB,OAEpB,GADAgwB,EAAO2J,WAAY,GACf35B,EAAOyxB,QAAX,CACAzB,EAAO4F,cAAc,GAErB,IAAI9U,EAAMsZ,EASV,GARKtZ,IACgCA,EAA/BgV,EAAcsC,EAAuB,OAChCtC,EAAcsC,EAAuB,OACjC,SAGfpI,EAAOpB,KAAK,iBAER4K,GAAgB1D,IAAgBsC,EAAe,CACjD,GAAY,UAARtX,EAEF,YADAkP,EAAOpB,KAAK,2BAGdoB,EAAOpB,KAAK,4BACA,SAAR9N,EACFkP,EAAOpB,KAAK,0BAEZoB,EAAOpB,KAAK,yBAEhB,CAvB8B,CAwBhC,CAEA,IAAIuhD,GAAe,CACjBv6C,cAAeA,GACfuE,gBAAiBA,GACjBhR,cAAe+mD,IAGjB,SAAS71C,GAASxvB,EAAO5B,EAAOuwB,EAAcE,GAC5C,IAAI96B,OAEW,IAAViM,IAAmBA,EAAQ,QACjB,IAAV5B,IAAmBA,EAAQ5J,KAAKW,OAAOiJ,YACtB,IAAjBuwB,IAA0BA,GAAe,GAC9C,IAAIxJ,EAAS3wB,KACTmyB,EAAa3mB,EACb2mB,EAAa,IAAKA,EAAa,GAEnC,IAAIxxB,EAASgwB,EAAOhwB,OAChBoxB,EAAWpB,EAAOoB,SAClBC,EAAarB,EAAOqB,WACpB+G,EAAgBpI,EAAOoI,cACvBtC,EAAc9F,EAAO8F,YACrBnF,EAAMX,EAAOU,aACb0I,EAAYpJ,EAAOoJ,UACvB,GAAIpJ,EAAO2J,WAAa35B,EAAO45B,+BAC7B,OAAO,EAGT,IAAIpB,EAAOhoB,KAAKijB,IAAIzD,EAAOhwB,OAAOu0B,mBAAoB/C,GAClD2D,EAAYqD,EAAOhoB,KAAKC,OAAO+gB,EAAagH,GAAQxI,EAAOhwB,OAAOqzB,gBAClE8B,GAAa/D,EAASlyB,SAAUi2B,EAAY/D,EAASlyB,OAAS,IAE7D42B,GAAe91B,EAAOs6B,cAAgB,MAAQlC,GAAiB,IAAMoB,GACxExJ,EAAOpB,KAAK,0BAGd,IAuBIwL,EAvBAjE,GAAa/E,EAAS+D,GAM1B,GAHAnF,EAAO6G,eAAeV,GAGlBn2B,EAAOu4B,oBACT,IAAK,IAAIltB,EAAI,EAAGA,EAAIgmB,EAAWnyB,OAAQmM,GAAK,GACrCmF,KAAKC,MAAkB,IAAZ0lB,IAAoB3lB,KAAKC,MAAsB,IAAhB4gB,EAAWhmB,MACxDmmB,EAAanmB,GAKnB,GAAI2kB,EAAOyI,aAAejH,IAAesE,EAAa,CACpD,IAAK9F,EAAOuK,gBAAkBpE,EAAYnG,EAAOmG,WAAaA,EAAYnG,EAAOwG,eAC/E,OAAO,EAET,IAAKxG,EAAOwK,gBAAkBrE,EAAYnG,EAAOmG,WAAaA,EAAYnG,EAAOgH,iBAC1ElB,GAAe,KAAOtE,EAAc,OAAO,CAEpD,CASA,GANgC4I,EAA5B5I,EAAasE,EAA2B,OACnCtE,EAAasE,EAA2B,OAC9B,QAIdnF,IAAQwF,IAAcnG,EAAOmG,YAAgBxF,GAAOwF,IAAcnG,EAAOmG,UAc5E,OAbAnG,EAAOkI,kBAAkB1G,GAErBxxB,EAAOy2B,YACTzG,EAAOyF,mBAETzF,EAAOqH,sBACe,UAAlBr3B,EAAOy0B,QACTzE,EAAOkJ,aAAa/C,GAEJ,UAAdiE,IACFpK,EAAOmK,gBAAgBX,EAAcY,GACrCpK,EAAO7G,cAAcqQ,EAAcY,KAE9B,EAET,GAAIp6B,EAAOyxB,QAAS,CAClB,IAAIqI,EAAM9J,EAAOI,eACbrjB,GAAKopB,EAcT,OAbIxF,IACF5jB,EAAIqsB,EAAU7nB,YAAc6nB,EAAU5P,YAAczc,GAExC,IAAV9D,EACFmwB,EAAUU,EAAM,aAAe,aAAe/sB,EAG1CqsB,EAAUW,SACZX,EAAUW,WAAWn7B,EAAM,CAAC,GAAOk7B,EAAM,OAAS,OAAS/sB,EAAGnO,EAAIo7B,SAAW,SAAUp7B,IAEvFw6B,EAAUU,EAAM,aAAe,aAAe/sB,GAG3C,CACT,CAmCA,OAjCc,IAAV9D,GACF+mB,EAAO4F,cAAc,GACrB5F,EAAOkJ,aAAa/C,GACpBnG,EAAOkI,kBAAkB1G,GACzBxB,EAAOqH,sBACPrH,EAAOpB,KAAK,wBAAyB3lB,EAAOywB,GAC5C1J,EAAOmK,gBAAgBX,EAAcY,GACrCpK,EAAO7G,cAAcqQ,EAAcY,KAEnCpK,EAAO4F,cAAc3sB,GACrB+mB,EAAOkJ,aAAa/C,GACpBnG,EAAOkI,kBAAkB1G,GACzBxB,EAAOqH,sBACPrH,EAAOpB,KAAK,wBAAyB3lB,EAAOywB,GAC5C1J,EAAOmK,gBAAgBX,EAAcY,GAChCpK,EAAO2J,YACV3J,EAAO2J,WAAY,EACd3J,EAAOyK,gCACVzK,EAAOyK,8BAAgC,SAAuBztB,GACvDgjB,IAAUA,EAAOkK,WAClBltB,EAAEvE,SAAWpJ,OACjB2wB,EAAOQ,WAAW,GAAGhM,oBAAoB,gBAAiBwL,EAAOyK,+BACjEzK,EAAOQ,WAAW,GAAGhM,oBAAoB,sBAAuBwL,EAAOyK,+BACvEzK,EAAOyK,8BAAgC,YAChCzK,EAAOyK,8BACdzK,EAAO7G,cAAcqQ,EAAcY,GACrC,GAEFpK,EAAOQ,WAAW,GAAGjM,iBAAiB,gBAAiByL,EAAOyK,+BAC9DzK,EAAOQ,WAAW,GAAGjM,iBAAiB,sBAAuByL,EAAOyK,kCAIjE,CACT,CAEA,SAASC,GAAa7vB,EAAO5B,EAAOuwB,EAAcE,QACjC,IAAV7uB,IAAmBA,EAAQ,QACjB,IAAV5B,IAAmBA,EAAQ5J,KAAKW,OAAOiJ,YACtB,IAAjBuwB,IAA0BA,GAAe,GAE9C,IAAIxJ,EAAS3wB,KACTs7B,EAAW9vB,EAKf,OAJImlB,EAAOhwB,OAAO83B,OAChB6C,GAAY3K,EAAO4K,cAGd5K,EAAOqK,QAAQM,EAAU1xB,EAAOuwB,EAAcE,EACvD,CAGA,SAASmB,GAAW5xB,EAAOuwB,EAAcE,QACxB,IAAVzwB,IAAmBA,EAAQ5J,KAAKW,OAAOiJ,YACtB,IAAjBuwB,IAA0BA,GAAe,GAE9C,IAAIxJ,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAChB25B,EAAY3J,EAAO2J,UACnBmB,EAAY9K,EAAO8F,YAAc91B,EAAOu0B,mBAAqB,EAAIv0B,EAAOqzB,eAC5E,GAAIrzB,EAAO83B,KAAM,CACf,GAAI6B,EAAa,OAAO,EACxB3J,EAAO+K,UAEP/K,EAAOgL,YAAchL,EAAOQ,WAAW,GAAG1G,UAC5C,CACA,OAAOkG,EAAOqK,QAAQrK,EAAO8F,YAAcgF,EAAW7xB,EAAOuwB,EAAcE,EAC7E,CAGA,SAASuB,GAAWhyB,EAAOuwB,EAAcE,QACxB,IAAVzwB,IAAmBA,EAAQ5J,KAAKW,OAAOiJ,YACtB,IAAjBuwB,IAA0BA,GAAe,GAE9C,IAAIxJ,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAChB25B,EAAY3J,EAAO2J,UACnBvI,EAAWpB,EAAOoB,SAClBC,EAAarB,EAAOqB,WACpBX,EAAeV,EAAOU,aAE1B,GAAI1wB,EAAO83B,KAAM,CACf,GAAI6B,EAAa,OAAO,EACxB3J,EAAO+K,UAEP/K,EAAOgL,YAAchL,EAAOQ,WAAW,GAAG1G,UAC5C,CAEA,SAASvb,EAAUjP,GACjB,OAAIA,EAAM,GAAakR,KAAKC,MAAMD,KAAK8jB,IAAIh1B,IACpCkR,KAAKC,MAAMnR,EACpB,CACA,IAWI87B,EAXAF,EAAsB3sB,EALVmiB,EAAeV,EAAOmG,WAAanG,EAAOmG,WAMtDgF,EAAqB/J,EAASzd,KAAI,SAAUrU,GAAO,OAAOiP,EAAUjP,EAAM,IAI1E+7B,GAHuBhK,EAAW1d,KAAI,SAAUrU,GAAO,OAAOiP,EAAUjP,EAAM,IAEhE8xB,EAAS+J,EAAmB/oB,QAAQ8oB,IACvC9J,EAAS+J,EAAmB/oB,QAAQ8oB,GAAuB,IAW1E,YAVwB,IAAbG,GAA4Br7B,EAAOyxB,SAC5CL,EAAShN,SAAQ,SAAU4Q,IACpBqG,GAAYH,GAAuBlG,IAAQqG,EAAWrG,EAC7D,SAGsB,IAAbqG,IACTD,EAAY/J,EAAWjf,QAAQipB,IACf,IAAKD,EAAYpL,EAAO8F,YAAc,GAEjD9F,EAAOqK,QAAQe,EAAWnyB,EAAOuwB,EAAcE,EACxD,CAGA,SAAS4B,GAAYryB,EAAOuwB,EAAcE,QACzB,IAAVzwB,IAAmBA,EAAQ5J,KAAKW,OAAOiJ,YACtB,IAAjBuwB,IAA0BA,GAAe,GAE9C,IAAIxJ,EAAS3wB,KACb,OAAO2wB,EAAOqK,QAAQrK,EAAO8F,YAAa7sB,EAAOuwB,EAAcE,EACjE,CAGA,SAAS6B,GAAgBtyB,EAAOuwB,EAAcE,EAAU8B,QACvC,IAAVvyB,IAAmBA,EAAQ5J,KAAKW,OAAOiJ,YACtB,IAAjBuwB,IAA0BA,GAAe,QAC3B,IAAdgC,IAAuBA,EAAY,IAExC,IAAIxL,EAAS3wB,KACTwL,EAAQmlB,EAAO8F,YACf0C,EAAOhoB,KAAKijB,IAAIzD,EAAOhwB,OAAOu0B,mBAAoB1pB,GAClDsqB,EAAYqD,EAAOhoB,KAAKC,OAAO5F,EAAQ2tB,GAAQxI,EAAOhwB,OAAOqzB,gBAE7D8C,EAAYnG,EAAOU,aAAeV,EAAOmG,WAAanG,EAAOmG,UAEjE,GAAIA,GAAanG,EAAOoB,SAAS+D,GAAY,CAG3C,IAAIsG,EAAczL,EAAOoB,SAAS+D,GAE7BgB,EAAYsF,GADFzL,EAAOoB,SAAS+D,EAAY,GACCsG,GAAeD,IACzD3wB,GAASmlB,EAAOhwB,OAAOqzB,eAE3B,KAAO,CAGL,IAAIgI,EAAWrL,EAAOoB,SAAS+D,EAAY,GAEtCgB,EAAYkF,IADGrL,EAAOoB,SAAS+D,GACWkG,GAAYG,IACzD3wB,GAASmlB,EAAOhwB,OAAOqzB,eAE3B,CAIA,OAHAxoB,EAAQ2F,KAAKsiB,IAAIjoB,EAAO,GACxBA,EAAQ2F,KAAKijB,IAAI5oB,EAAOmlB,EAAOqB,WAAWnyB,OAAS,GAE5C8wB,EAAOqK,QAAQxvB,EAAO5B,EAAOuwB,EAAcE,EACpD,CAEA,SAASX,KACP,IAMIzB,EANAtH,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAChBwwB,EAAaR,EAAOQ,WAEpBoC,EAAyC,SAAzB5yB,EAAO4yB,cAA2B5C,EAAO0L,uBAAyB17B,EAAO4yB,cACzF+I,EAAe3L,EAAO8I,aAE1B,GAAI94B,EAAO83B,KAAM,CACf,GAAI9H,EAAO2J,UAAa,OACxBrC,EAAYxzB,SAAS9F,EAAEgyB,EAAO6I,cAAcz6B,KAAK,2BAA4B,IACzE4B,EAAOq0B,eAENsH,EAAe3L,EAAO4K,aAAgBhI,EAAgB,GACnD+I,EAAgB3L,EAAOiB,OAAO/xB,OAAS8wB,EAAO4K,aAAiBhI,EAAgB,GAEnF5C,EAAO+K,UACPY,EAAenL,EACZ/qB,SAAU,IAAOzF,EAAiB,WAAI,6BAAgCs3B,EAAY,WAAet3B,EAA0B,oBAAI,KAC/HgV,GAAG,GACHnK,QAEH2gB,EAAMG,UAAS,WACbqE,EAAOqK,QAAQsB,EACjB,KAEA3L,EAAOqK,QAAQsB,GAERA,EAAe3L,EAAOiB,OAAO/xB,OAAS0zB,GAC/C5C,EAAO+K,UACPY,EAAenL,EACZ/qB,SAAU,IAAOzF,EAAiB,WAAI,6BAAgCs3B,EAAY,WAAet3B,EAA0B,oBAAI,KAC/HgV,GAAG,GACHnK,QAEH2gB,EAAMG,UAAS,WACbqE,EAAOqK,QAAQsB,EACjB,KAEA3L,EAAOqK,QAAQsB,EAEnB,MACE3L,EAAOqK,QAAQsB,EAEnB,CAEA,IAAI1I,GAAQ,CACVoH,QAASA,GACTK,YAAaA,GACbG,UAAWA,GACXI,UAAWA,GACXK,WAAYA,GACZC,eAAgBA,GAChBxC,oBAAqBA,IAGvB,SAAS6C,KACP,IAAI5L,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAChBwwB,EAAaR,EAAOQ,WAExBA,EAAW/qB,SAAU,IAAOzF,EAAiB,WAAI,IAAOA,EAA0B,qBAAI8E,SAEtF,IAAImsB,EAAST,EAAW/qB,SAAU,IAAOzF,EAAiB,YAE1D,GAAIA,EAAO67B,uBAAwB,CACjC,IAAIC,EAAiB97B,EAAOqzB,eAAkBpC,EAAO/xB,OAASc,EAAOqzB,eACrE,GAAIyI,IAAmB97B,EAAOqzB,eAAgB,CAC5C,IAAK,IAAIhoB,EAAI,EAAGA,EAAIywB,EAAgBzwB,GAAK,EAAG,CAC1C,IAAI0wB,EAAY/9B,EAAEqmB,EAAIlQ,cAAc,QAAQ1V,SAAWuB,EAAiB,WAAI,IAAOA,EAAsB,iBACzGwwB,EAAW9qB,OAAOq2B,EACpB,CACA9K,EAAST,EAAW/qB,SAAU,IAAOzF,EAAiB,WACxD,CACF,CAE6B,SAAzBA,EAAO4yB,eAA6B5yB,EAAO46B,eAAgB56B,EAAO46B,aAAe3J,EAAO/xB,QAE5F8wB,EAAO4K,aAAepqB,KAAKmiB,KAAKlJ,WAAWzpB,EAAO46B,cAAgB56B,EAAO4yB,cAAe,KACxF5C,EAAO4K,cAAgB56B,EAAOi8B,qBAC1BjM,EAAO4K,aAAe3J,EAAO/xB,SAC/B8wB,EAAO4K,aAAe3J,EAAO/xB,QAG/B,IAAIg9B,EAAgB,GAChBC,EAAe,GACnBlL,EAAOluB,MAAK,SAAU8H,EAAOC,GAC3B,IAAImoB,EAAQj1B,EAAE8M,GACVD,EAAQmlB,EAAO4K,cAAgBuB,EAAa11B,KAAKqE,GACjDD,EAAQomB,EAAO/xB,QAAU2L,GAASomB,EAAO/xB,OAAS8wB,EAAO4K,cAAgBsB,EAAcz1B,KAAKqE,GAChGmoB,EAAM70B,KAAK,0BAA2ByM,EACxC,IACA,IAAK,IAAI+kE,EAAM,EAAGA,EAAMzzC,EAAaj9B,OAAQ0wE,GAAO,EAClDp/C,EAAW9qB,OAAO1H,EAAEm+B,EAAayzC,GAAKxzC,WAAU,IAAO39B,SAASuB,EAAO+3B,sBAEzE,IAAK,IAAI83C,EAAM3zC,EAAch9B,OAAS,EAAG2wE,GAAO,EAAGA,GAAO,EACxDr/C,EAAWtc,QAAQlW,EAAEk+B,EAAc2zC,GAAKzzC,WAAU,IAAO39B,SAASuB,EAAO+3B,qBAE7E,CAEA,SAASgD,KACP,IAAI/K,EAAS3wB,KAEb2wB,EAAOpB,KAAK,iBAEZ,IAOI+L,EAPA7E,EAAc9F,EAAO8F,YACrB7E,EAASjB,EAAOiB,OAChB2J,EAAe5K,EAAO4K,aACtBJ,EAAiBxK,EAAOwK,eACxBD,EAAiBvK,EAAOuK,eACxBnJ,EAAWpB,EAAOoB,SAClBT,EAAMX,EAAOU,aAEjBV,EAAOwK,gBAAiB,EACxBxK,EAAOuK,gBAAiB,EAExB,IACI8B,GADiBjL,EAAS0E,GACH9F,EAAOnE,eAG9BiK,EAAc8E,GAChBD,EAAY1J,EAAO/xB,OAAyB,EAAf07B,EAAqB9E,EAClD6E,GAAYC,EACO5K,EAAOqK,QAAQM,EAAU,GAAG,GAAO,IACzB,IAAT0B,GAClBrM,EAAOkJ,cAAcvI,GAAOX,EAAOmG,UAAYnG,EAAOmG,WAAakG,IAE5DvG,GAAe7E,EAAO/xB,OAAS07B,IAExCD,GAAY1J,EAAO/xB,OAAS42B,EAAc8E,EAC1CD,GAAYC,EACS5K,EAAOqK,QAAQM,EAAU,GAAG,GAAO,IACzB,IAAT0B,GACpBrM,EAAOkJ,cAAcvI,GAAOX,EAAOmG,UAAYnG,EAAOmG,WAAakG,IAGvErM,EAAOwK,eAAiBA,EACxBxK,EAAOuK,eAAiBA,EAExBvK,EAAOpB,KAAK,UACd,CAEA,SAAS0N,KACP,IAAItM,EAAS3wB,KACTmxB,EAAaR,EAAOQ,WACpBxwB,EAASgwB,EAAOhwB,OAChBixB,EAASjB,EAAOiB,OACpBT,EAAW/qB,SAAU,IAAOzF,EAAiB,WAAI,IAAOA,EAA0B,oBAAI,KAAQA,EAAiB,WAAI,IAAOA,EAAsB,iBAAI8E,SACpJmsB,EAAOnc,WAAW,0BACpB,CAEA,IAAIgjB,GAAO,CACT8D,WAAYA,GACZb,QAASA,GACTuB,YAAaA,IAGf,SAASE,GAAeC,GACtB,IAAIzM,EAAS3wB,KACb,KAAIkuB,EAAQC,QAAUwC,EAAOhwB,OAAO08B,eAAkB1M,EAAOhwB,OAAOo1B,eAAiBpF,EAAO2M,UAAa3M,EAAOhwB,OAAOyxB,SAAvH,CACA,IAAI3mB,EAAKklB,EAAOllB,GAChBA,EAAGmG,MAAM2rB,OAAS,OAClB9xB,EAAGmG,MAAM2rB,OAASH,EAAS,mBAAqB,eAChD3xB,EAAGmG,MAAM2rB,OAASH,EAAS,eAAiB,YAC5C3xB,EAAGmG,MAAM2rB,OAASH,EAAS,WAAa,MALkG,CAM5I,CAEA,SAASI,KACP,IAAI7M,EAAS3wB,KACTkuB,EAAQC,OAAUwC,EAAOhwB,OAAOo1B,eAAiBpF,EAAO2M,UAAa3M,EAAOhwB,OAAOyxB,UACvFzB,EAAOllB,GAAGmG,MAAM2rB,OAAS,GAC3B,CAEA,IAAIL,GAAa,CACfC,cAAeA,GACfK,gBAAiBA,IAGnB,SAASE,GAAa9L,GACpB,IAAIjB,EAAS3wB,KACTmxB,EAAaR,EAAOQ,WACpBxwB,EAASgwB,EAAOhwB,OAIpB,GAHIA,EAAO83B,MACT9H,EAAOsM,cAEa,iBAAXrL,GAAuB,WAAYA,EAC5C,IAAK,IAAI5lB,EAAI,EAAGA,EAAI4lB,EAAO/xB,OAAQmM,GAAK,EAClC4lB,EAAO5lB,IAAMmlB,EAAW9qB,OAAOurB,EAAO5lB,SAG5CmlB,EAAW9qB,OAAOurB,GAEhBjxB,EAAO83B,MACT9H,EAAO4L,aAEH57B,EAAO6tB,UAAYN,EAAQM,UAC/BmC,EAAOnZ,QAEX,CAEA,SAASmmB,GAAc/L,GACrB,IAAIjB,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAChBwwB,EAAaR,EAAOQ,WACpBsF,EAAc9F,EAAO8F,YAErB91B,EAAO83B,MACT9H,EAAOsM,cAET,IAAInE,EAAiBrC,EAAc,EACnC,GAAsB,iBAAX7E,GAAuB,WAAYA,EAAQ,CACpD,IAAK,IAAI5lB,EAAI,EAAGA,EAAI4lB,EAAO/xB,OAAQmM,GAAK,EAClC4lB,EAAO5lB,IAAMmlB,EAAWtc,QAAQ+c,EAAO5lB,IAE7C8sB,EAAiBrC,EAAc7E,EAAO/xB,MACxC,MACEsxB,EAAWtc,QAAQ+c,GAEjBjxB,EAAO83B,MACT9H,EAAO4L,aAEH57B,EAAO6tB,UAAYN,EAAQM,UAC/BmC,EAAOnZ,SAETmZ,EAAOqK,QAAQlC,EAAgB,GAAG,EACpC,CAEA,SAAS8E,GAAUpyB,EAAOomB,GACxB,IAAIjB,EAAS3wB,KACTmxB,EAAaR,EAAOQ,WACpBxwB,EAASgwB,EAAOhwB,OAEhBk9B,EADclN,EAAO8F,YAErB91B,EAAO83B,OACToF,GAAqBlN,EAAO4K,aAC5B5K,EAAOsM,cACPtM,EAAOiB,OAAST,EAAW/qB,SAAU,IAAOzF,EAAiB,aAE/D,IAAIm9B,EAAanN,EAAOiB,OAAO/xB,OAC/B,GAAI2L,GAAS,EACXmlB,EAAOgN,aAAa/L,QAGtB,GAAIpmB,GAASsyB,EACXnN,EAAO+M,YAAY9L,OADrB,CAOA,IAHA,IAAIkH,EAAiB+E,EAAoBryB,EAAQqyB,EAAoB,EAAIA,EAErEE,EAAe,GACV/xB,EAAI8xB,EAAa,EAAG9xB,GAAKR,EAAOQ,GAAK,EAAG,CAC/C,IAAIgyB,EAAerN,EAAOiB,OAAOjc,GAAG3J,GACpCgyB,EAAav4B,SACbs4B,EAAantB,QAAQotB,EACvB,CAEA,GAAsB,iBAAXpM,GAAuB,WAAYA,EAAQ,CACpD,IAAK,IAAI2+C,EAAM,EAAGA,EAAM3+C,EAAO/xB,OAAQ0wE,GAAO,EACxC3+C,EAAO2+C,IAAQp/C,EAAW9qB,OAAOurB,EAAO2+C,IAE9Cz3C,EAAiB+E,EAAoBryB,EAAQqyB,EAAoBjM,EAAO/xB,OAASg+B,CACnF,MACE1M,EAAW9qB,OAAOurB,GAGpB,IAAK,IAAI4+C,EAAM,EAAGA,EAAMzyC,EAAal+B,OAAQ2wE,GAAO,EAClDr/C,EAAW9qB,OAAO03B,EAAayyC,IAG7B7vE,EAAO83B,MACT9H,EAAO4L,aAEH57B,EAAO6tB,UAAYN,EAAQM,UAC/BmC,EAAOnZ,SAEL7W,EAAO83B,KACT9H,EAAOqK,QAAQlC,EAAiBnI,EAAO4K,aAAc,GAAG,GAExD5K,EAAOqK,QAAQlC,EAAgB,GAAG,EAhCpC,CAkCF,CAEA,SAASmF,GAAaC,GACpB,IAAIvN,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAChBwwB,EAAaR,EAAOQ,WAGpB0M,EAFclN,EAAO8F,YAGrB91B,EAAO83B,OACToF,GAAqBlN,EAAO4K,aAC5B5K,EAAOsM,cACPtM,EAAOiB,OAAST,EAAW/qB,SAAU,IAAOzF,EAAiB,aAE/D,IACIw9B,EADArF,EAAiB+E,EAGrB,GAA6B,iBAAlBK,GAA8B,WAAYA,EAAe,CAClE,IAAK,IAAIlyB,EAAI,EAAGA,EAAIkyB,EAAcr+B,OAAQmM,GAAK,EAC7CmyB,EAAgBD,EAAclyB,GAC1B2kB,EAAOiB,OAAOuM,IAAkBxN,EAAOiB,OAAOjc,GAAGwoB,GAAe14B,SAChE04B,EAAgBrF,IAAkBA,GAAkB,GAE1DA,EAAiB3nB,KAAKsiB,IAAIqF,EAAgB,EAC5C,MACEqF,EAAgBD,EACZvN,EAAOiB,OAAOuM,IAAkBxN,EAAOiB,OAAOjc,GAAGwoB,GAAe14B,SAChE04B,EAAgBrF,IAAkBA,GAAkB,GACxDA,EAAiB3nB,KAAKsiB,IAAIqF,EAAgB,GAGxCn4B,EAAO83B,MACT9H,EAAO4L,aAGH57B,EAAO6tB,UAAYN,EAAQM,UAC/BmC,EAAOnZ,SAEL7W,EAAO83B,KACT9H,EAAOqK,QAAQlC,EAAiBnI,EAAO4K,aAAc,GAAG,GAExD5K,EAAOqK,QAAQlC,EAAgB,GAAG,EAEtC,CAEA,SAASsF,KAIP,IAHA,IAAIzN,EAAS3wB,KAETk+B,EAAgB,GACXlyB,EAAI,EAAGA,EAAI2kB,EAAOiB,OAAO/xB,OAAQmM,GAAK,EAC7CkyB,EAAc92B,KAAK4E,GAErB2kB,EAAOsN,YAAYC,EACrB,CAEA,IASMI,GACAC,GAEAC,GAkBAgB,GACAC,GAEAf,GACAK,GACAD,GACAD,GACAI,GACAD,GACAE,GACAE,GACAG,GACAJ,GA1CF1B,GAAe,CACjBC,YAAaA,GACbC,aAAcA,GACdC,SAAUA,GACVK,YAAaA,GACbG,gBAAiBA,IAGfC,IACEC,GAAWnY,EAAIjC,UAAUoa,SACzBC,GAAKpY,EAAIjC,UAAUkC,UAEnBoY,GAAS,CACXC,KAAK,EACLC,SAAS,EACTC,eAAe,EACfC,SAAS,EACTC,QAAQ,EACRC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,IAAI,EACJC,SAAS,EACTC,OAAO,EACPC,SAAS,EACTC,WAAYlZ,EAAIkZ,UAAWlZ,EAAImZ,UAC/BA,YAAanZ,EAAIkZ,UAAWlZ,EAAImZ,UAChCC,UAAU,GAGRC,GAAcrZ,EAAIU,OAAO5d,MACzBw2B,GAAetZ,EAAIU,OAAO7b,OAE1B0zB,GAAUH,GAAGz+B,MAAM,+BACnBi/B,GAAOR,GAAGz+B,MAAM,wBAChBg/B,GAAOP,GAAGz+B,MAAM,2BAChB++B,IAAUE,IAAQR,GAAGz+B,MAAM,8BAC3Bm/B,GAAKV,GAAGxrB,QAAQ,UAAY,GAAKwrB,GAAGxrB,QAAQ,aAAe,EAC3DisB,GAAOT,GAAGxrB,QAAQ,UAAY,EAC9BmsB,GAAUX,GAAGxrB,QAAQ,WAAa,GAAKwrB,GAAGxrB,QAAQ,aAAe,EACjEqsB,GAAuB,UAAbd,GACViB,GAAWhB,GAAG7sB,cAAcqB,QAAQ,aAAe,EACnDosB,GAAqB,aAAbb,IAGPS,IACAI,IACAjR,EAAQC,QAEQ,OAAhBqR,IAAyC,OAAjBC,IACL,MAAhBD,IAAwC,OAAjBC,IACP,MAAhBD,IAAwC,OAAjBC,IACP,MAAhBD,IAAwC,OAAjBC,MAG7BV,GAAOR,GAAGz+B,MAAM,uBAChBq/B,IAAQ,GAGVX,GAAOS,GAAKA,GACZT,GAAOQ,KAAOA,GACdR,GAAOU,QAAUA,GAGbR,KAAYU,KACdZ,GAAOkB,GAAK,UACZlB,GAAOmB,UAAYjB,GAAQ,GAC3BF,GAAOE,SAAU,EACjBF,GAAOG,cAAgBJ,GAAG7sB,cAAcqB,QAAQ,WAAa,IAE3DgsB,IAAQF,IAAUC,MACpBN,GAAOkB,GAAK,MACZlB,GAAOC,KAAM,GAGXI,KAAWC,KACbN,GAAOmB,UAAYd,GAAO,GAAGx8B,QAAQ,KAAM,KAC3Cm8B,GAAOK,QAAS,GAEdE,KACFP,GAAOmB,UAAYZ,GAAK,GAAG18B,QAAQ,KAAM,KACzCm8B,GAAOO,MAAO,GAEZD,KACFN,GAAOmB,UAAYb,GAAK,GAAKA,GAAK,GAAGz8B,QAAQ,KAAM,KAAO,KAC1Dm8B,GAAOM,MAAO,GAGZN,GAAOC,KAAOD,GAAOmB,WAAapB,GAAGxrB,QAAQ,aAAe,GACvB,OAAnCyrB,GAAOmB,UAAUluB,MAAM,KAAK,KAC9B+sB,GAAOmB,UAAYpB,GAAG7sB,cAAcD,MAAM,YAAY,GAAGA,MAAM,KAAK,IAKxE+sB,GAAOoB,YAAcf,IAAUE,IAAQD,MAAUP,GAAGz+B,MAAM,gCAAiCqmB,EAAIjC,UAAU2b,aACnG1Z,EAAIW,YAAcX,EAAIW,WAAW,8BAA8B7R,QACrEupB,GAAOsB,QAAUtB,GAAOoB,QACxBpB,GAAOqB,WAAarB,GAAOoB,QAG3BpB,GAAOI,UAAYJ,GAAOC,KAAOD,GAAOE,UAAYa,GAChDf,GAAOI,UACTJ,GAAOe,SAAWA,GAClBf,GAAOW,MAAQA,GACfX,GAAOY,QAAUA,GACbZ,GAAOW,QACTX,GAAOkB,GAAK,SAEVlB,GAAOY,UACTZ,GAAOkB,GAAK,YAKhBlB,GAAOuB,WAAa5Z,EAAI6Z,kBAAoB,EAGrCxB,IAGT,SAASyB,GAAcx/B,GACrB,IAAIkwB,EAAS3wB,KACTwB,EAAOmvB,EAAOuP,gBACdv/B,EAASgwB,EAAOhwB,OAChBw/B,EAAUxP,EAAOwP,QAErB,IAAIxP,EAAO2J,YAAa35B,EAAO45B,+BAA/B,CAGA,IAAI5sB,EAAIlN,EACJkN,EAAEoI,gBAAiBpI,EAAIA,EAAEoI,eAC7B,IAAIqqB,EAAYzhC,EAAEgP,EAAEvE,QAEpB,IAAiC,YAA7BzI,EAAO0/B,mBACJD,EAAUjgC,QAAQwwB,EAAOoJ,WAAWl6B,UAE3C2B,EAAK8+B,aAA0B,eAAX3yB,EAAE1M,MACjBO,EAAK8+B,gBAAgB,UAAW3yB,IAAiB,IAAZA,EAAE4J,WACvC/V,EAAK8+B,cAAgB,WAAY3yB,GAAKA,EAAE4yB,OAAS,GAClD/+B,EAAKg/B,WAAah/B,EAAKi/B,UAC3B,GAAI9/B,EAAO+/B,WAAaN,EAAUjgC,QAAQQ,EAAOggC,kBAAoBhgC,EAAOggC,kBAAqB,IAAOhgC,EAAqB,gBAAI,GAC/HgwB,EAAOkQ,YAAa,OAGtB,IAAIlgC,EAAOmgC,cACJV,EAAUjgC,QAAQQ,EAAOmgC,cAAc,GAD9C,CAIAX,EAAQY,SAAsB,eAAXpzB,EAAE1M,KAAwB0M,EAAEqzB,cAAc,GAAGC,MAAQtzB,EAAEszB,MAC1Ed,EAAQe,SAAsB,eAAXvzB,EAAE1M,KAAwB0M,EAAEqzB,cAAc,GAAGG,MAAQxzB,EAAEwzB,MAC1E,IAAIC,EAASjB,EAAQY,SACjBM,EAASlB,EAAQe,SAIjBI,EAAqB3gC,EAAO2gC,oBAAsB3gC,EAAO4gC,sBACzDC,EAAqB7gC,EAAO6gC,oBAAsB7gC,EAAO8gC,sBAC7D,IACEH,KACKF,GAAUI,GACXJ,GAAUjb,EAAIU,OAAO5d,MAAQu4B,GAHnC,CAuBA,GAfArV,EAAMpnB,OAAOvD,EAAM,CACjBg/B,WAAW,EACXC,SAAS,EACTiB,qBAAqB,EACrBC,iBAAa3Y,EACb4Y,iBAAa5Y,IAGfmX,EAAQiB,OAASA,EACjBjB,EAAQkB,OAASA,EACjB7/B,EAAKqgC,eAAiB1V,EAAMI,MAC5BoE,EAAOkQ,YAAa,EACpBlQ,EAAOD,aACPC,EAAOmR,oBAAiB9Y,EACpBroB,EAAOw7B,UAAY,IAAK36B,EAAKugC,oBAAqB,GACvC,eAAXp0B,EAAE1M,KAAuB,CAC3B,IAAIP,GAAiB,EACjB0/B,EAAUx8B,GAAGpC,EAAKwgC,gBAAiBthC,GAAiB,GAEtDskB,EAAIrN,eACDhZ,EAAEqmB,EAAIrN,eAAe/T,GAAGpC,EAAKwgC,eAC7Bhd,EAAIrN,gBAAkByoB,EAAU,IAEnCpb,EAAIrN,cAAcyN,OAGpB,IAAI6c,EAAuBvhC,GAAkBiwB,EAAOuR,gBAAkBvhC,EAAOwhC,0BACzExhC,EAAOyhC,+BAAiCH,IAC1Ct0B,EAAEjN,gBAEN,CACAiwB,EAAOpB,KAAK,aAAc5hB,EAjC1B,CAjBA,CAlBA,CAqEF,CAEA,SAAS00B,GAAa5hC,GACpB,IAAIkwB,EAAS3wB,KACTwB,EAAOmvB,EAAOuP,gBACdv/B,EAASgwB,EAAOhwB,OAChBw/B,EAAUxP,EAAOwP,QACjB7O,EAAMX,EAAOU,aACb1jB,EAAIlN,EAER,GADIkN,EAAEoI,gBAAiBpI,EAAIA,EAAEoI,eACxBvU,EAAKg/B,WAMV,IAAIh/B,EAAK8+B,cAA2B,cAAX3yB,EAAE1M,KAA3B,CACA,IAAIqhC,EAAyB,cAAX30B,EAAE1M,MAAwB0M,EAAEqzB,gBAAkBrzB,EAAEqzB,cAAc,IAAMrzB,EAAE40B,eAAe,IACnGtB,EAAmB,cAAXtzB,EAAE1M,KAAuBqhC,EAAYrB,MAAQtzB,EAAEszB,MACvDE,EAAmB,cAAXxzB,EAAE1M,KAAuBqhC,EAAYnB,MAAQxzB,EAAEwzB,MAC3D,GAAIxzB,EAAE60B,wBAGJ,OAFArC,EAAQiB,OAASH,OACjBd,EAAQkB,OAASF,GAGnB,IAAKxQ,EAAOuR,eAYV,OAVAvR,EAAOkQ,YAAa,OAChBr/B,EAAKg/B,YACPrU,EAAMpnB,OAAOo7B,EAAS,CACpBiB,OAAQH,EACRI,OAAQF,EACRJ,SAAUE,EACVC,SAAUC,IAEZ3/B,EAAKqgC,eAAiB1V,EAAMI,QAIhC,GAAI/qB,EAAK8+B,cAAgB3/B,EAAO8hC,sBAAwB9hC,EAAO83B,KAC7D,GAAI9H,EAAOK,cAET,GACGmQ,EAAQhB,EAAQkB,QAAU1Q,EAAOmG,WAAanG,EAAOgH,gBAClDwJ,EAAQhB,EAAQkB,QAAU1Q,EAAOmG,WAAanG,EAAOwG,eAIzD,OAFA31B,EAAKg/B,WAAY,OACjBh/B,EAAKi/B,SAAU,QAGZ,GACJQ,EAAQd,EAAQiB,QAAUzQ,EAAOmG,WAAanG,EAAOgH,gBAClDsJ,EAAQd,EAAQiB,QAAUzQ,EAAOmG,WAAanG,EAAOwG,eAEzD,OAGJ,GAAI31B,EAAK8+B,cAAgBtb,EAAIrN,eACvBhK,EAAEvE,SAAW4b,EAAIrN,eAAiBhZ,EAAEgP,EAAEvE,QAAQxF,GAAGpC,EAAKwgC,cAGxD,OAFAxgC,EAAKi/B,SAAU,OACf9P,EAAOkQ,YAAa,GAOxB,GAHIr/B,EAAKkgC,qBACP/Q,EAAOpB,KAAK,YAAa5hB,KAEvBA,EAAEqzB,eAAiBrzB,EAAEqzB,cAAcnhC,OAAS,GAAhD,CAEAsgC,EAAQY,SAAWE,EACnBd,EAAQe,SAAWC,EAEnB,IAKM0B,EALFH,EAAQvC,EAAQY,SAAWZ,EAAQiB,OACnCuB,EAAQxC,EAAQe,SAAWf,EAAQkB,OACvC,KAAI1Q,EAAOhwB,OAAOw7B,WAAahrB,KAAKyxB,KAAMzxB,KAAK4/D,IAAKruC,EAAO,GAAQvxB,KAAK4/D,IAAKpuC,EAAO,IAAQhS,EAAOhwB,OAAOw7B,WAsB1G,QApBgC,IAArB36B,EAAKmgC,cAEThR,EAAOI,gBAAkBoP,EAAQe,WAAaf,EAAQkB,QAAY1Q,EAAOK,cAAgBmP,EAAQY,WAAaZ,EAAQiB,OACzH5/B,EAAKmgC,aAAc,EAGde,EAAQA,EAAUC,EAAQA,GAAU,KACvCE,EAA6D,IAA/C1xB,KAAK2xB,MAAM3xB,KAAK8jB,IAAI0N,GAAQxxB,KAAK8jB,IAAIyN,IAAiBvxB,KAAK4xB,GACzEvhC,EAAKmgC,YAAchR,EAAOI,eAAiB8R,EAAaliC,EAAOkiC,WAAc,GAAKA,EAAaliC,EAAOkiC,aAIxGrhC,EAAKmgC,aACPhR,EAAOpB,KAAK,oBAAqB5hB,QAEH,IAArBnM,EAAKogC,cACVzB,EAAQY,WAAaZ,EAAQiB,QAAUjB,EAAQe,WAAaf,EAAQkB,SACtE7/B,EAAKogC,aAAc,IAGnBpgC,EAAKmgC,YACPngC,EAAKg/B,WAAY,OAGnB,GAAKh/B,EAAKogC,YAAV,CAGAjR,EAAOkQ,YAAa,GACflgC,EAAOyxB,SAAWzkB,EAAEgc,YACvBhc,EAAEjN,iBAEAC,EAAOqiC,2BAA6BriC,EAAOsiC,QAC7Ct1B,EAAEmI,kBAGCtU,EAAKi/B,UACJ9/B,EAAO83B,MACT9H,EAAO+K,UAETl6B,EAAK0hC,eAAiBvS,EAAOnE,eAC7BmE,EAAO4F,cAAc,GACjB5F,EAAO2J,WACT3J,EAAOQ,WAAW9tB,QAAQ,qCAE5B7B,EAAK2hC,qBAAsB,GAEvBxiC,EAAOu8B,aAAyC,IAA1BvM,EAAOuK,iBAAqD,IAA1BvK,EAAOwK,gBACjExK,EAAOwM,eAAc,GAEvBxM,EAAOpB,KAAK,kBAAmB5hB,IAEjCgjB,EAAOpB,KAAK,aAAc5hB,GAC1BnM,EAAKi/B,SAAU,EAEf,IAAIzD,EAAOrM,EAAOI,eAAiB2R,EAAQC,EAC3CxC,EAAQnD,KAAOA,EAEfA,GAAQr8B,EAAOyiC,WACX9R,IAAO0L,GAAQA,GAEnBrM,EAAOmR,eAAiB9E,EAAO,EAAI,OAAS,OAC5Cx7B,EAAKo4B,iBAAmBoD,EAAOx7B,EAAK0hC,eAEpC,IAAIG,GAAsB,EACtBC,EAAkB3iC,EAAO2iC,gBA0B7B,GAzBI3iC,EAAO8hC,sBACTa,EAAkB,GAEftG,EAAO,GAAKx7B,EAAKo4B,iBAAmBjJ,EAAOwG,gBAC9CkM,GAAsB,EAClB1iC,EAAO4iC,aAAc/hC,EAAKo4B,iBAAoBjJ,EAAOwG,eAAiB,EAAMhmB,KAAK4/D,KAAOpgD,EAAOwG,eAAiB31B,EAAK0hC,eAAiBlG,EAAOsG,KACxItG,EAAO,GAAKx7B,EAAKo4B,iBAAmBjJ,EAAOgH,iBACpD0L,GAAsB,EAClB1iC,EAAO4iC,aAAc/hC,EAAKo4B,iBAAoBjJ,EAAOgH,eAAiB,EAAMxmB,KAAK4/D,IAAMpgD,EAAOgH,eAAiBn2B,EAAK0hC,eAAiBlG,EAAOsG,KAG9ID,IACF11B,EAAE60B,yBAA0B,IAIzB7R,EAAOuK,gBAA4C,SAA1BvK,EAAOmR,gBAA6BtgC,EAAKo4B,iBAAmBp4B,EAAK0hC,iBAC7F1hC,EAAKo4B,iBAAmBp4B,EAAK0hC,iBAE1BvS,EAAOwK,gBAA4C,SAA1BxK,EAAOmR,gBAA6BtgC,EAAKo4B,iBAAmBp4B,EAAK0hC,iBAC7F1hC,EAAKo4B,iBAAmBp4B,EAAK0hC,gBAK3BviC,EAAOw7B,UAAY,EAAG,CACxB,KAAIhrB,KAAK8jB,IAAI+H,GAAQr8B,EAAOw7B,WAAa36B,EAAKugC,oBAW5C,YADAvgC,EAAKo4B,iBAAmBp4B,EAAK0hC,gBAT7B,IAAK1hC,EAAKugC,mBAMR,OALAvgC,EAAKugC,oBAAqB,EAC1B5B,EAAQiB,OAASjB,EAAQY,SACzBZ,EAAQkB,OAASlB,EAAQe,SACzB1/B,EAAKo4B,iBAAmBp4B,EAAK0hC,oBAC7B/C,EAAQnD,KAAOrM,EAAOI,eAAiBoP,EAAQY,SAAWZ,EAAQiB,OAASjB,EAAQe,SAAWf,EAAQkB,OAO5G,CAEK1gC,EAAO6iC,eAAgB7iC,EAAOyxB,WAG/BzxB,EAAO8iC,UAAY9iC,EAAOs1B,qBAAuBt1B,EAAOu1B,yBAC1DvF,EAAOkI,oBACPlI,EAAOqH,uBAELr3B,EAAO8iC,WAEsB,IAA3BjiC,EAAKkiC,WAAW7jC,QAClB2B,EAAKkiC,WAAWt8B,KAAK,CACnBoB,SAAU23B,EAAQxP,EAAOI,eAAiB,SAAW,UACrD4S,KAAMniC,EAAKqgC,iBAGfrgC,EAAKkiC,WAAWt8B,KAAK,CACnBoB,SAAU23B,EAAQxP,EAAOI,eAAiB,WAAa,YACvD4S,KAAMxX,EAAMI,SAIhBoE,EAAO6G,eAAeh2B,EAAKo4B,kBAE3BjJ,EAAOkJ,aAAar4B,EAAKo4B,kBAvGzB,CAnC6D,CAnDF,OALrDp4B,EAAKogC,aAAepgC,EAAKmgC,aAC3BhR,EAAOpB,KAAK,oBAAqB5hB,EAkMvC,CAEA,SAASi2B,GAAYnjC,GACnB,IAAIkwB,EAAS3wB,KACTwB,EAAOmvB,EAAOuP,gBAEdv/B,EAASgwB,EAAOhwB,OAChBw/B,EAAUxP,EAAOwP,QACjB7O,EAAMX,EAAOU,aACbF,EAAaR,EAAOQ,WACpBa,EAAarB,EAAOqB,WACpBD,EAAWpB,EAAOoB,SAClBpkB,EAAIlN,EAMR,GALIkN,EAAEoI,gBAAiBpI,EAAIA,EAAEoI,eACzBvU,EAAKkgC,qBACP/Q,EAAOpB,KAAK,WAAY5hB,GAE1BnM,EAAKkgC,qBAAsB,GACtBlgC,EAAKg/B,UAMR,OALIh/B,EAAKi/B,SAAW9/B,EAAOu8B,YACzBvM,EAAOwM,eAAc,GAEvB37B,EAAKi/B,SAAU,OACfj/B,EAAKogC,aAAc,GAIjBjhC,EAAOu8B,YAAc17B,EAAKi/B,SAAWj/B,EAAKg/B,aAAwC,IAA1B7P,EAAOuK,iBAAqD,IAA1BvK,EAAOwK,iBACnGxK,EAAOwM,eAAc,GAIvB,IA2BI6G,EA3BAH,EAAe1X,EAAMI,MACrBuX,EAAWD,EAAeriC,EAAKqgC,eAgBnC,GAbIlR,EAAOkQ,aACTlQ,EAAO2I,mBAAmB3rB,GAC1BgjB,EAAOpB,KAAK,YAAa5hB,GACrBm2B,EAAW,KAAQD,EAAeriC,EAAKuiC,cAAiB,KAC1DpT,EAAOpB,KAAK,wBAAyB5hB,IAIzCnM,EAAKuiC,cAAgB5X,EAAMI,MAC3BJ,EAAMG,UAAS,WACRqE,EAAOkK,YAAalK,EAAOkQ,YAAa,EAC/C,KAEKr/B,EAAKg/B,YAAch/B,EAAKi/B,UAAY9P,EAAOmR,gBAAmC,IAAjB3B,EAAQnD,MAAcx7B,EAAKo4B,mBAAqBp4B,EAAK0hC,eAIrH,OAHA1hC,EAAKg/B,WAAY,EACjBh/B,EAAKi/B,SAAU,OACfj/B,EAAKogC,aAAc,GAcrB,GAXApgC,EAAKg/B,WAAY,EACjBh/B,EAAKi/B,SAAU,EACfj/B,EAAKogC,aAAc,EAIjBoC,EADErjC,EAAO6iC,aACIlS,EAAMX,EAAOmG,WAAanG,EAAOmG,WAEhCt1B,EAAKo4B,kBAGjBj5B,EAAOyxB,QAIX,GAAIzxB,EAAO8iC,SAAX,CACE,GAAIO,GAAcrT,EAAOwG,eAEvB,YADAxG,EAAOqK,QAAQrK,EAAO8F,aAGxB,GAAIuN,GAAcrT,EAAOgH,eAMvB,YALIhH,EAAOiB,OAAO/xB,OAASkyB,EAASlyB,OAClC8wB,EAAOqK,QAAQjJ,EAASlyB,OAAS,GAEjC8wB,EAAOqK,QAAQrK,EAAOiB,OAAO/xB,OAAS,IAK1C,GAAIc,EAAOsjC,iBAAkB,CAC3B,GAAIziC,EAAKkiC,WAAW7jC,OAAS,EAAG,CAC9B,IAAIqkC,EAAgB1iC,EAAKkiC,WAAWS,MAChCC,EAAgB5iC,EAAKkiC,WAAWS,MAEhCE,EAAWH,EAAc17B,SAAW47B,EAAc57B,SAClDm7B,EAAOO,EAAcP,KAAOS,EAAcT,KAC9ChT,EAAO2T,SAAWD,EAAWV,EAC7BhT,EAAO2T,UAAY,EACfnzB,KAAK8jB,IAAItE,EAAO2T,UAAY3jC,EAAO4jC,0BACrC5T,EAAO2T,SAAW,IAIhBX,EAAO,KAAQxX,EAAMI,MAAQ2X,EAAcP,KAAQ,OACrDhT,EAAO2T,SAAW,EAEtB,MACE3T,EAAO2T,SAAW,EAEpB3T,EAAO2T,UAAY3jC,EAAO6jC,8BAE1BhjC,EAAKkiC,WAAW7jC,OAAS,EACzB,IAAI4kC,EAAmB,IAAO9jC,EAAO+jC,sBACjCC,EAAmBhU,EAAO2T,SAAWG,EAErCG,EAAcjU,EAAOmG,UAAY6N,EACjCrT,IAAOsT,GAAeA,GAE1B,IACIC,EAEAI,EAHAH,GAAW,EAEXC,EAA2C,GAA5B5zB,KAAK8jB,IAAItE,EAAO2T,UAAiB3jC,EAAOqkC,4BAE3D,GAAIJ,EAAcjU,EAAOgH,eACnBh3B,EAAOukC,wBACLN,EAAcjU,EAAOgH,gBAAkBoN,IACzCH,EAAcjU,EAAOgH,eAAiBoN,GAExCF,EAAsBlU,EAAOgH,eAC7BmN,GAAW,EACXtjC,EAAK2hC,qBAAsB,GAE3ByB,EAAcjU,EAAOgH,eAEnBh3B,EAAO83B,MAAQ93B,EAAOq0B,iBAAkBiQ,GAAe,QACtD,GAAIL,EAAcjU,EAAOwG,eAC1Bx2B,EAAOukC,wBACLN,EAAcjU,EAAOwG,eAAiB4N,IACxCH,EAAcjU,EAAOwG,eAAiB4N,GAExCF,EAAsBlU,EAAOwG,eAC7B2N,GAAW,EACXtjC,EAAK2hC,qBAAsB,GAE3ByB,EAAcjU,EAAOwG,eAEnBx2B,EAAO83B,MAAQ93B,EAAOq0B,iBAAkBiQ,GAAe,QACtD,GAAItkC,EAAOwkC,eAAgB,CAEhC,IADA,IAAIxM,EACK/Q,EAAI,EAAGA,EAAImK,EAASlyB,OAAQ+nB,GAAK,EACxC,GAAImK,EAASnK,IAAMgd,EAAa,CAC9BjM,EAAY/Q,EACZ,KACF,CAQFgd,IAJEA,EADEzzB,KAAK8jB,IAAIlD,EAAS4G,GAAaiM,GAAezzB,KAAK8jB,IAAIlD,EAAS4G,EAAY,GAAKiM,IAA0C,SAA1BjU,EAAOmR,eAC5F/P,EAAS4G,GAET5G,EAAS4G,EAAY,GAGvC,CAOA,GANIsM,GACFtU,EAAOxB,KAAK,iBAAiB,WAC3BwB,EAAO+K,SACT,IAGsB,IAApB/K,EAAO2T,UAMT,GAJEG,EADEnT,EACiBngB,KAAK8jB,MAAM2P,EAAcjU,EAAOmG,WAAanG,EAAO2T,UAEpDnzB,KAAK8jB,KAAK2P,EAAcjU,EAAOmG,WAAanG,EAAO2T,UAEpE3jC,EAAOwkC,eAAgB,CAQzB,IAAIC,EAAej0B,KAAK8jB,KAAK3D,GAAOsT,EAAcA,GAAejU,EAAOmG,WACpEuO,EAAmB1U,EAAOsB,gBAAgBtB,EAAO8F,aAEnDgO,EADEW,EAAeC,EACE1kC,EAAOiJ,MACjBw7B,EAAe,EAAIC,EACM,IAAf1kC,EAAOiJ,MAEQ,IAAfjJ,EAAOiJ,KAE9B,OACK,GAAIjJ,EAAOwkC,eAEhB,YADAxU,EAAOuL,iBAILv7B,EAAOukC,wBAA0BJ,GACnCnU,EAAO6G,eAAeqN,GACtBlU,EAAO4F,cAAckO,GACrB9T,EAAOkJ,aAAa+K,GACpBjU,EAAOmK,iBAAgB,EAAMnK,EAAOmR,gBACpCnR,EAAO2J,WAAY,EACnBnJ,EAAWrH,eAAc,WAClB6G,IAAUA,EAAOkK,WAAcr5B,EAAK2hC,sBACzCxS,EAAOpB,KAAK,kBACZoB,EAAO4F,cAAc51B,EAAOiJ,OAC5BY,YAAW,WACTmmB,EAAOkJ,aAAagL,GACpB1T,EAAWrH,eAAc,WAClB6G,IAAUA,EAAOkK,WACtBlK,EAAO7G,eACT,GACF,GAAG,GACL,KACS6G,EAAO2T,UAChB3T,EAAO6G,eAAeoN,GACtBjU,EAAO4F,cAAckO,GACrB9T,EAAOkJ,aAAa+K,GACpBjU,EAAOmK,iBAAgB,EAAMnK,EAAOmR,gBAC/BnR,EAAO2J,YACV3J,EAAO2J,WAAY,EACnBnJ,EAAWrH,eAAc,WAClB6G,IAAUA,EAAOkK,WACtBlK,EAAO7G,eACT,MAGF6G,EAAO6G,eAAeoN,GAGxBjU,EAAOkI,oBACPlI,EAAOqH,qBACT,MAAO,GAAIr3B,EAAOwkC,eAEhB,YADAxU,EAAOuL,mBAIJv7B,EAAOsjC,kBAAoBH,GAAYnjC,EAAO2kC,gBACjD3U,EAAO6G,iBACP7G,EAAOkI,oBACPlI,EAAOqH,sBAGX,KAzKA,CA8KA,IAFA,IAAIuN,EAAY,EACZC,EAAY7U,EAAOsB,gBAAgB,GAC9BjmB,EAAI,EAAGA,EAAIgmB,EAAWnyB,OAAQmM,GAAMA,EAAIrL,EAAOu0B,mBAAqB,EAAIv0B,EAAOqzB,eAAiB,CACvG,IAAIg9C,EAAehlE,EAAIrL,EAAOu0B,mBAAqB,EAAI,EAAIv0B,EAAOqzB,oBACvB,IAAhChC,EAAWhmB,EAAIglE,GACpBhtC,GAAchS,EAAWhmB,IAAMg4B,EAAahS,EAAWhmB,EAAIglE,KAC7DzrC,EAAYv5B,EACZw5B,EAAYxT,EAAWhmB,EAAIglE,GAAeh/C,EAAWhmB,IAE9Cg4B,GAAchS,EAAWhmB,KAClCu5B,EAAYv5B,EACZw5B,EAAYxT,EAAWA,EAAWnyB,OAAS,GAAKmyB,EAAWA,EAAWnyB,OAAS,GAEnF,CAGA,IAAI4lC,GAASzB,EAAahS,EAAWuT,IAAcC,EAC/C/J,EAAa8J,EAAY5kC,EAAOu0B,mBAAqB,EAAI,EAAIv0B,EAAOqzB,eAExE,GAAI8P,EAAWnjC,EAAO2kC,aAAc,CAElC,IAAK3kC,EAAO+kC,WAEV,YADA/U,EAAOqK,QAAQrK,EAAO8F,aAGM,SAA1B9F,EAAOmR,iBACL2D,GAAS9kC,EAAOglC,gBAAmBhV,EAAOqK,QAAQuK,EAAY9J,GAC3D9K,EAAOqK,QAAQuK,IAEM,SAA1B5U,EAAOmR,iBACL2D,EAAS,EAAI9kC,EAAOglC,gBAAoBhV,EAAOqK,QAAQuK,EAAY9J,GAChE9K,EAAOqK,QAAQuK,GAE1B,KAAO,CAEL,IAAK5kC,EAAOilC,YAEV,YADAjV,EAAOqK,QAAQrK,EAAO8F,cAGA9F,EAAOkV,YAAel4B,EAAEvE,SAAWunB,EAAOkV,WAAWC,QAAUn4B,EAAEvE,SAAWunB,EAAOkV,WAAWE,QAEtF,SAA1BpV,EAAOmR,gBACTnR,EAAOqK,QAAQuK,EAAY9J,GAEC,SAA1B9K,EAAOmR,gBACTnR,EAAOqK,QAAQuK,IAER53B,EAAEvE,SAAWunB,EAAOkV,WAAWC,OACxCnV,EAAOqK,QAAQuK,EAAY9J,GAE3B9K,EAAOqK,QAAQuK,EAEnB,CAvDA,CAwDF,CAEA,SAASS,KACP,IAAIrV,EAAS3wB,KAETW,EAASgwB,EAAOhwB,OAChB8K,EAAKklB,EAAOllB,GAEhB,IAAIA,GAAyB,IAAnBA,EAAG0e,YAAb,CAGIxpB,EAAOslC,aACTtV,EAAOuV,gBAIT,IAAIhL,EAAiBvK,EAAOuK,eACxBC,EAAiBxK,EAAOwK,eACxBpJ,EAAWpB,EAAOoB,SAGtBpB,EAAOuK,gBAAiB,EACxBvK,EAAOwK,gBAAiB,EAExBxK,EAAOD,aACPC,EAAOO,eAEPP,EAAOqH,uBACuB,SAAzBr3B,EAAO4yB,eAA4B5yB,EAAO4yB,cAAgB,IAAM5C,EAAOkH,QAAUlH,EAAOiH,cAAgBjH,EAAOhwB,OAAOq0B,eACzHrE,EAAOqK,QAAQrK,EAAOiB,OAAO/xB,OAAS,EAAG,GAAG,GAAO,GAEnD8wB,EAAOqK,QAAQrK,EAAO8F,YAAa,GAAG,GAAO,GAG3C9F,EAAOwV,UAAYxV,EAAOwV,SAASC,SAAWzV,EAAOwV,SAASE,QAChE1V,EAAOwV,SAASG,MAGlB3V,EAAOwK,eAAiBA,EACxBxK,EAAOuK,eAAiBA,EAEpBvK,EAAOhwB,OAAOo1B,eAAiBhE,IAAapB,EAAOoB,UACrDpB,EAAOqF,eAlCiC,CAoC5C,CAEA,SAASuQ,GAAS54B,GAChB,IAAIgjB,EAAS3wB,KACR2wB,EAAOkQ,aACNlQ,EAAOhwB,OAAO6lC,eAAiB74B,EAAEjN,iBACjCiwB,EAAOhwB,OAAO8lC,0BAA4B9V,EAAO2J,YACnD3sB,EAAEmI,kBACFnI,EAAE+4B,4BAGR,CAEA,SAASC,KACP,IAAIhW,EAAS3wB,KACT+5B,EAAYpJ,EAAOoJ,UACnB1I,EAAeV,EAAOU,aAC1BV,EAAOsJ,kBAAoBtJ,EAAOmG,UAC9BnG,EAAOI,eAEPJ,EAAOmG,UADLzF,EACmB0I,EAAU7nB,YAAc6nB,EAAU5P,YAAe4P,EAAUzc,YAE5Dyc,EAAUzc,WAGhCqT,EAAOmG,WAAaiD,EAAUlxB,WAGN,IAAtB8nB,EAAOmG,YAAoBnG,EAAOmG,UAAY,GAElDnG,EAAOkI,oBACPlI,EAAOqH,sBAGP,IAAIN,EAAiB/G,EAAOgH,eAAiBhH,EAAOwG,gBAC7B,IAAnBO,EACY,GAEC/G,EAAOmG,UAAYnG,EAAOwG,gBAAkB,KAEzCxG,EAAO4G,UACzB5G,EAAO6G,eAAenG,GAAgBV,EAAOmG,UAAYnG,EAAOmG,WAGlEnG,EAAOpB,KAAK,eAAgBoB,EAAOmG,WAAW,EAChD,CAEA,IAAI8P,IAAqB,EACzB,SAASC,KAAsB,CAE/B,SAASC,KACP,IAAInW,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAChBomC,EAAcpW,EAAOoW,YACrBt7B,EAAKklB,EAAOllB,GACZsuB,EAAYpJ,EAAOoJ,UAEvBpJ,EAAOsP,aAAeA,GAAa1uB,KAAKof,GACxCA,EAAO0R,YAAcA,GAAY9wB,KAAKof,GACtCA,EAAOiT,WAAaA,GAAWryB,KAAKof,GAChChwB,EAAOyxB,UACTzB,EAAOgW,SAAWA,GAASp1B,KAAKof,IAGlCA,EAAO4V,QAAUA,GAAQh1B,KAAKof,GAE9B,IAAIjI,IAAY/nB,EAAOsiC,OAGvB,IAAK/U,EAAQC,OAASD,EAAQG,cAC5B5iB,EAAGyZ,iBAAiB6hB,EAAYC,MAAOrW,EAAOsP,cAAc,GAC5Djb,EAAIE,iBAAiB6hB,EAAYE,KAAMtW,EAAO0R,YAAa3Z,GAC3D1D,EAAIE,iBAAiB6hB,EAAY7nC,IAAKyxB,EAAOiT,YAAY,OACpD,CACL,GAAI1V,EAAQC,MAAO,CACjB,IAAIM,IAAwC,eAAtBsY,EAAYC,QAA0B9Y,EAAQO,kBAAmB9tB,EAAOumC,mBAAmB,CAAEC,SAAS,EAAMze,SAAS,GAC3Ijd,EAAGyZ,iBAAiB6hB,EAAYC,MAAOrW,EAAOsP,aAAcxR,GAC5DhjB,EAAGyZ,iBAAiB6hB,EAAYE,KAAMtW,EAAO0R,YAAanU,EAAQO,gBAAkB,CAAE0Y,SAAS,EAAOze,QAASA,GAAYA,GAC3Hjd,EAAGyZ,iBAAiB6hB,EAAY7nC,IAAKyxB,EAAOiT,WAAYnV,GACpDsY,EAAYK,QACd37B,EAAGyZ,iBAAiB6hB,EAAYK,OAAQzW,EAAOiT,WAAYnV,GAExDmY,KACH5hB,EAAIE,iBAAiB,aAAc2hB,IACnCD,IAAqB,EAEzB,EACKjmC,EAAO08B,gBAAkBgB,GAAOI,MAAQJ,GAAOK,SAAa/9B,EAAO08B,gBAAkBnP,EAAQC,OAASkQ,GAAOI,OAChHhzB,EAAGyZ,iBAAiB,YAAayL,EAAOsP,cAAc,GACtDjb,EAAIE,iBAAiB,YAAayL,EAAO0R,YAAa3Z,GACtD1D,EAAIE,iBAAiB,UAAWyL,EAAOiT,YAAY,GAEvD,EAEIjjC,EAAO6lC,eAAiB7lC,EAAO8lC,2BACjCh7B,EAAGyZ,iBAAiB,QAASyL,EAAO4V,SAAS,GAE3C5lC,EAAOyxB,SACT2H,EAAU7U,iBAAiB,SAAUyL,EAAOgW,UAI1ChmC,EAAO0mC,qBACT1W,EAAO5wB,GAAIs+B,GAAOI,KAAOJ,GAAOK,QAAU,0CAA4C,wBAA0BsH,IAAU,GAE1HrV,EAAO5wB,GAAG,iBAAkBimC,IAAU,EAE1C,CAEA,SAASsB,KACP,IAAI3W,EAAS3wB,KAETW,EAASgwB,EAAOhwB,OAChBomC,EAAcpW,EAAOoW,YACrBt7B,EAAKklB,EAAOllB,GACZsuB,EAAYpJ,EAAOoJ,UAEnBrR,IAAY/nB,EAAOsiC,OAGvB,IAAK/U,EAAQC,OAASD,EAAQG,cAC5B5iB,EAAG0Z,oBAAoB4hB,EAAYC,MAAOrW,EAAOsP,cAAc,GAC/Djb,EAAIG,oBAAoB4hB,EAAYE,KAAMtW,EAAO0R,YAAa3Z,GAC9D1D,EAAIG,oBAAoB4hB,EAAY7nC,IAAKyxB,EAAOiT,YAAY,OACvD,CACL,GAAI1V,EAAQC,MAAO,CACjB,IAAIM,IAAwC,iBAAtBsY,EAAYC,QAA4B9Y,EAAQO,kBAAmB9tB,EAAOumC,mBAAmB,CAAEC,SAAS,EAAMze,SAAS,GAC7Ijd,EAAG0Z,oBAAoB4hB,EAAYC,MAAOrW,EAAOsP,aAAcxR,GAC/DhjB,EAAG0Z,oBAAoB4hB,EAAYE,KAAMtW,EAAO0R,YAAa3Z,GAC7Djd,EAAG0Z,oBAAoB4hB,EAAY7nC,IAAKyxB,EAAOiT,WAAYnV,GACvDsY,EAAYK,QACd37B,EAAG0Z,oBAAoB4hB,EAAYK,OAAQzW,EAAOiT,WAAYnV,EAElE,EACK9tB,EAAO08B,gBAAkBgB,GAAOI,MAAQJ,GAAOK,SAAa/9B,EAAO08B,gBAAkBnP,EAAQC,OAASkQ,GAAOI,OAChHhzB,EAAG0Z,oBAAoB,YAAawL,EAAOsP,cAAc,GACzDjb,EAAIG,oBAAoB,YAAawL,EAAO0R,YAAa3Z,GACzD1D,EAAIG,oBAAoB,UAAWwL,EAAOiT,YAAY,GAE1D,EAEIjjC,EAAO6lC,eAAiB7lC,EAAO8lC,2BACjCh7B,EAAG0Z,oBAAoB,QAASwL,EAAO4V,SAAS,GAG9C5lC,EAAOyxB,SACT2H,EAAU5U,oBAAoB,SAAUwL,EAAOgW,UAIjDhW,EAAO9Y,IAAKwmB,GAAOI,KAAOJ,GAAOK,QAAU,0CAA4C,wBAA0BsH,GACnH,CAOA,SAASE,KACP,IAAIvV,EAAS3wB,KACTy2B,EAAc9F,EAAO8F,YACrB2C,EAAczI,EAAOyI,YACrBmC,EAAe5K,EAAO4K,kBAAoC,IAAjBA,IAA0BA,EAAe,GACtF,IAAI56B,EAASgwB,EAAOhwB,OAChBiwB,EAAMD,EAAOC,IACbqV,EAActlC,EAAOslC,YACzB,GAAKA,KAAgBA,GAAmD,IAApCrlC,OAAOkkB,KAAKmhB,GAAapmC,QAA7D,CAGA,IAAI0nC,EAAa5W,EAAO6W,cAAcvB,GAEtC,GAAIsB,GAAc5W,EAAO8W,oBAAsBF,EAAY,CACzD,IAAIG,EAAuBH,KAActB,EAAcA,EAAYsB,QAAcve,EAC7E0e,GACF,CAAC,gBAAiB,eAAgB,iBAAkB,qBAAsB,mBAAmB3iB,SAAQ,SAAUuI,GAC7G,IAAIqa,EAAaD,EAAqBpa,QACZ,IAAfqa,IAITD,EAAqBpa,GAHT,kBAAVA,GAA6C,SAAfqa,GAAwC,SAAfA,EAEtC,kBAAVra,EACqBlD,WAAWud,GAEXljC,SAASkjC,EAAY,IAJrB,OAMlC,IAGF,IAAIC,EAAmBF,GAAwB/W,EAAOkX,eAClDC,EAAcnnC,EAAO0yB,gBAAkB,EACvC0U,EAAaH,EAAiBvU,gBAAkB,EAChDyU,IAAgBC,EAClBnX,EAAIzxB,YAAcwB,EAA6B,uBAAI,YAAeA,EAA6B,uBAAI,oBACzFmnC,GAAeC,IACzBnX,EAAIxxB,SAAWuB,EAA6B,uBAAI,YACH,WAAzCinC,EAAiBpU,qBACnB5C,EAAIxxB,SAAWuB,EAA6B,uBAAI,oBAIpD,IAAIsnC,EAAmBL,EAAiB7M,WAAa6M,EAAiB7M,YAAcp6B,EAAOo6B,UACvFmN,EAAcvnC,EAAO83B,OAASmP,EAAiBrU,gBAAkB5yB,EAAO4yB,eAAiB0U,GAEzFA,GAAoB7O,GACtBzI,EAAOwX,kBAGThc,EAAMpnB,OAAO4rB,EAAOhwB,OAAQinC,GAE5Bzb,EAAMpnB,OAAO4rB,EAAQ,CACnBuR,eAAgBvR,EAAOhwB,OAAOuhC,eAC9BhH,eAAgBvK,EAAOhwB,OAAOu6B,eAC9BC,eAAgBxK,EAAOhwB,OAAOw6B,iBAGhCxK,EAAO8W,kBAAoBF,EAEvBW,GAAe9O,IACjBzI,EAAOsM,cACPtM,EAAO4L,aACP5L,EAAOO,eACPP,EAAOqK,QAASvE,EAAc8E,EAAgB5K,EAAO4K,aAAc,GAAG,IAGxE5K,EAAOpB,KAAK,aAAcqY,EAC5B,CA1DsF,CA2DxF,CAEA,SAASJ,GAAevB,GAEtB,GAAKA,EAAL,CACA,IAAIsB,GAAa,EAEba,EAASxnC,OAAOkkB,KAAKmhB,GAAa3xB,KAAI,SAAU+zB,GAClD,GAAqB,iBAAVA,GAA6C,IAAvBA,EAAMt1B,QAAQ,KAAY,CACzD,IAAIu1B,EAAWle,WAAWie,EAAM9sB,OAAO,IAEvC,MAAO,CAAEjc,MADG6mB,EAAIpU,YAAcu2B,EACPD,MAAOA,EAChC,CACA,MAAO,CAAE/oC,MAAO+oC,EAAOA,MAAOA,EAChC,IAEAD,EAAOr0B,MAAK,SAAUzF,EAAGsB,GAAK,OAAOnL,SAAS6J,EAAEhP,MAAO,IAAMmF,SAASmL,EAAEtQ,MAAO,GAAK,IACpF,IAAK,IAAI0M,EAAI,EAAGA,EAAIo8B,EAAOvoC,OAAQmM,GAAK,EAAG,CACzC,IAAIilE,EAAM7oC,EAAOp8B,GACbq8B,EAAQ4oC,EAAI5oC,MACJ4oC,EAAI3xE,OACH6mB,EAAIlU,aACfs1B,EAAac,EAEjB,CACA,OAAOd,GAAc,KArBiB,CAsBxC,CAIA,SAASoC,KACP,IAAIhZ,EAAS3wB,KACT4pC,EAAajZ,EAAOiZ,WACpBjpC,EAASgwB,EAAOhwB,OAChB2wB,EAAMX,EAAOW,IACbV,EAAMD,EAAOC,IACbiZ,EAAW,GAEfA,EAASziC,KAAK,eACdyiC,EAASziC,KAAKzG,EAAOo6B,WAEjBp6B,EAAO8iC,UACToG,EAASziC,KAAK,aAEZzG,EAAOy2B,YACTyS,EAASziC,KAAK,cAEZkqB,GACFuY,EAASziC,KAAK,OAEZzG,EAAO0yB,gBAAkB,IAC3BwW,EAASziC,KAAK,YACqB,WAA/BzG,EAAO6yB,qBACTqW,EAASziC,KAAK,oBAGdi3B,GAAOK,SACTmL,EAASziC,KAAK,WAEZi3B,GAAOI,KACToL,EAASziC,KAAK,OAGZzG,EAAOyxB,SACTyX,EAASziC,KAAK,YAGhByiC,EAAS9kB,SAAQ,SAAU+kB,GACzBF,EAAWxiC,KAAKzG,EAAOqnC,uBAAyB8B,EAClD,IAEAlZ,EAAIxxB,SAASwqC,EAAW32B,KAAK,KAC/B,CAEA,SAAS82B,KACP,IAAIpZ,EAAS3wB,KACT4wB,EAAMD,EAAOC,IACbgZ,EAAajZ,EAAOiZ,WAExBhZ,EAAIzxB,YAAYyqC,EAAW32B,KAAK,KAClC,CAIA,SAASs1B,GAAWC,EAASx7B,EAAKy7B,EAAQC,EAAOC,EAAkBz4B,GACjE,IAAI04B,EACJ,SAASthC,IACH4I,GAAYA,GAClB,CACgBvR,EAAE6pC,GAAStlC,OAAO,WAAW,IAEzBslC,EAAQK,UAAaF,EAmBvCrhC,IAlBI0F,IACF47B,EAAQ,IAAIziB,EAAIpZ,OACVG,OAAS5F,EACfshC,EAAME,QAAUxhC,EACZohC,IACFE,EAAMF,MAAQA,GAEZD,IACFG,EAAMH,OAASA,GAEbz7B,IACF47B,EAAM57B,IAAMA,IAGd1F,GAMN,CAEA,SAASyhC,KACP,IAAIpY,EAAS3wB,KAEb,SAASsH,IACH,MAAOqpB,GAA8CA,IAAUA,EAAOkK,iBAC9C7R,IAAxB2H,EAAOqY,eAA8BrY,EAAOqY,cAAgB,GAC5DrY,EAAOqY,eAAiBrY,EAAOsY,aAAappC,SAC1C8wB,EAAOhwB,OAAOuoC,qBAAuBvY,EAAOnZ,SAChDmZ,EAAOpB,KAAK,gBAEhB,CARAoB,EAAOsY,aAAetY,EAAOC,IAAI5xB,KAAK,OAStC,IAAK,IAAIgN,EAAI,EAAGA,EAAI2kB,EAAOsY,aAAappC,OAAQmM,GAAK,EAAG,CACtD,IAAIw8B,EAAU7X,EAAOsY,aAAaj9B,GAClC2kB,EAAO4X,UACLC,EACAA,EAAQW,YAAcX,EAAQj2B,aAAa,OAC3Ci2B,EAAQC,QAAUD,EAAQj2B,aAAa,UACvCi2B,EAAQE,OAASF,EAAQj2B,aAAa,UACtC,EACAjL,EAEJ,CACF,CAOA,SAAS0uB,KACP,IAAIrF,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAChB0oC,EAAY1Y,EAAO2M,SACnBgM,EAAoB3Y,EAAOiB,OAAO/xB,OAAS,GAAMc,EAAO2xB,mBAAsB3xB,EAAOkyB,cAAgBlC,EAAOiB,OAAO/xB,OAAS,GAAQ8wB,EAAOiB,OAAO,GAAe,YAAIjB,EAAOiB,OAAO/xB,OAEnLc,EAAO2xB,oBAAsB3xB,EAAO6xB,mBAAqB8W,EAC3D3Y,EAAO2M,SAAWgM,GAAqB3Y,EAAOM,KAE9CN,EAAO2M,SAAsC,IAA3B3M,EAAOoB,SAASlyB,OAGpC8wB,EAAOuK,gBAAkBvK,EAAO2M,SAChC3M,EAAOwK,gBAAkBxK,EAAO2M,SAG5B+L,IAAc1Y,EAAO2M,UAAY3M,EAAOpB,KAAKoB,EAAO2M,SAAW,OAAS,UAExE+L,GAAaA,IAAc1Y,EAAO2M,WACpC3M,EAAOkH,OAAQ,EACXlH,EAAOkV,YAAclV,EAAOkV,WAAWruB,SAE/C,CAEA,IAEI+H,GAAW,CACbgqB,MAAM,EACNxO,UAAW,aACXsF,kBAAmB,YACnBpF,aAAc,EACdrxB,MAAO,IACPwoB,SAAS,EACTiV,sBAAsB,EAEtB9M,gCAAgC,EAGhC+G,oBAAoB,EACpBE,mBAAoB,GAGpBiC,UAAU,EACVQ,kBAAkB,EAClBS,sBAAuB,EACvBQ,wBAAwB,EACxBF,4BAA6B,EAC7BR,8BAA+B,EAC/BW,gBAAgB,EAChBZ,wBAAyB,IAGzBnN,YAAY,EAGZ/B,gBAAgB,EAGhBsE,kBAAkB,EAGlBvE,OAAQ,QAGR6Q,iBAAajd,EAGb6J,aAAc,EACdU,cAAe,EACfF,gBAAiB,EACjBG,oBAAqB,SACrBQ,eAAgB,EAChBkB,mBAAoB,EACpBF,gBAAgB,EAChBO,sBAAsB,EACtBjD,mBAAoB,EACpBE,kBAAmB,EACnB0G,qBAAqB,EACrBtD,0BAA0B,EAG1BG,eAAe,EAGftB,cAAc,EAGd2O,WAAY,EACZP,WAAY,GACZxF,eAAe,EACfuI,aAAa,EACbF,YAAY,EACZC,gBAAiB,GACjBL,aAAc,IACd9B,cAAc,EACdtB,gBAAgB,EAChB/F,UAAW,EACX6G,0BAA0B,EAC1Bb,0BAA0B,EAC1BC,+BAA+B,EAC/BK,qBAAqB,EAGrB+G,mBAAmB,EAGnBjG,YAAY,EACZD,gBAAiB,IAGjBrN,qBAAqB,EACrBC,uBAAuB,EAGvBgH,YAAY,EAGZsJ,eAAe,EACfC,0BAA0B,EAC1B/M,qBAAqB,EAGrBqP,eAAe,EACfG,qBAAqB,EAGrBzQ,MAAM,EACNmE,qBAAsB,EACtBrB,aAAc,KACdiB,wBAAwB,EAGxBrB,gBAAgB,EAChBD,gBAAgB,EAChB4F,aAAc,KACdJ,WAAW,EACXE,eAAgB,oBAChBD,kBAAmB,KAGnBuG,kBAAkB,EAGlBc,uBAAwB,oBACxBnW,WAAY,eACZ8K,gBAAiB,+BACjBxE,iBAAkB,sBAClBG,0BAA2B,gCAC3BtB,kBAAmB,uBACnB0B,oBAAqB,yBACrBN,eAAgB,oBAChBG,wBAAyB,8BACzBF,eAAgB,oBAChBG,wBAAyB,8BACzBiR,aAAc,iBAGdpQ,oBAAoB,GAKlBqQ,GAAa,CACflyB,OAAQA,GACRsf,UAAWA,GACX1uB,WAAY0oE,GACZl9C,MAAOA,GACP6E,KAAMA,GACNyE,WAAYA,GACZO,aAAcA,GACdxU,OAjYW,CACX6d,aAAcA,GACdQ,aAAcA,IAgYdrB,YA9RgB,CAAEC,cAAeA,GAAesB,cAAeA,IA+R/DxR,cApJoB,CAAEA,cAAeA,IAqJrCrO,QA1OY,CAAEgiB,WAAYA,GAAYI,cAAeA,IA2OrDC,OAnLW,CACXzB,UAAWA,GACXQ,cAAeA,KAoLbkB,GAAmB,CAAC,EAEpBC,GAAuB,SAAUpb,GACnC,SAASob,IAIP,IAHA,IAAIgmC,EAIAzkE,EACA9K,EAHAgT,EAAO,GAAItO,EAAMwL,UAAUhR,OACvBwF,KAAQsO,EAAMtO,GAAQwL,UAAWxL,GAGrB,IAAhBsO,EAAK9T,QAAgB8T,EAAK,GAAGpD,aAAeoD,EAAK,GAAGpD,cAAgB3P,OACtED,EAASgT,EAAK,IAEElI,GAAfykE,EAASv8D,GAAkB,GAAIhT,EAASuvE,EAAO,IAE7CvvE,IAAUA,EAAS,CAAC,GAEzBA,EAASwrB,EAAMpnB,OAAO,CAAC,EAAGpE,GACtB8K,IAAO9K,EAAO8K,KAAM9K,EAAO8K,GAAKA,GAEpCqjB,EAAYte,KAAKxQ,KAAMW,GAEvBC,OAAOkkB,KAAK4kB,IAAY3kB,SAAQ,SAAUqlB,GACxCxpC,OAAOkkB,KAAK4kB,GAAWU,IAAiBrlB,SAAQ,SAAUslB,GACnDH,EAAOr7B,UAAUw7B,KACpBH,EAAOr7B,UAAUw7B,GAAeX,GAAWU,GAAgBC,GAE/D,GACF,IAGA,IAAI1Z,EAAS3wB,UACiB,IAAnB2wB,EAAOhB,UAChBgB,EAAOhB,QAAU,CAAC,GAEpB/uB,OAAOkkB,KAAK6L,EAAOhB,SAAS5K,SAAQ,SAAU6K,GAC5C,IAAIrgB,EAASohB,EAAOhB,QAAQC,GAC5B,GAAIrgB,EAAO5O,OAAQ,CACjB,IAAI2pC,EAAkB1pC,OAAOkkB,KAAKvV,EAAO5O,QAAQ,GAC7CovB,EAAexgB,EAAO5O,OAAO2pC,GACjC,GAA4B,iBAAjBva,GAA8C,OAAjBA,EAAyB,OACjE,KAAMua,KAAmB3pC,MAAU,YAAaovB,GAAiB,QACjC,IAA5BpvB,EAAO2pC,KACT3pC,EAAO2pC,GAAmB,CAAE5Y,SAAS,IAGF,iBAA5B/wB,EAAO2pC,IACT,YAAa3pC,EAAO2pC,KAEzB3pC,EAAO2pC,GAAiB5Y,SAAU,GAE/B/wB,EAAO2pC,KAAoB3pC,EAAO2pC,GAAmB,CAAE5Y,SAAS,GACvE,CACF,IAGA,IAAI6Y,EAAepe,EAAMpnB,OAAO,CAAC,EAAGwa,IACpCoR,EAAOnB,iBAAiB+a,GAGxB5Z,EAAOhwB,OAASwrB,EAAMpnB,OAAO,CAAC,EAAGwlC,EAAcN,GAAkBtpC,GACjEgwB,EAAOkX,eAAiB1b,EAAMpnB,OAAO,CAAC,EAAG4rB,EAAOhwB,QAChDgwB,EAAO6Z,aAAere,EAAMpnB,OAAO,CAAC,EAAGpE,GAGvCgwB,EAAOhyB,EAAIA,EAGX,IAAIiyB,EAAMjyB,EAAEgyB,EAAOhwB,OAAO8K,IAG1B,GAFAA,EAAKmlB,EAAI,GAET,CAIA,GAAIA,EAAI/wB,OAAS,EAAG,CAClB,IAAI4qC,EAAU,GAKd,OAJA7Z,EAAIltB,MAAK,SAAU8H,EAAOk/B,GACxB,IAAIC,EAAYxe,EAAMpnB,OAAO,CAAC,EAAGpE,EAAQ,CAAE8K,GAAIi/B,IAC/CD,EAAQrjC,KAAK,IAAI8iC,EAAOS,GAC1B,IACOF,CACT,CAMA,IAAItZ,EAyDIhD,EACAyQ,EAmER,OAjIAnzB,EAAGklB,OAASA,EACZC,EAAIpvB,KAAK,SAAUmvB,GAIfllB,GAAMA,EAAGm/B,YAAcn/B,EAAGm/B,WAAWtlB,eACvC6L,EAAaxyB,EAAE8M,EAAGm/B,WAAWtlB,cAAe,IAAOqL,EAAOhwB,OAAmB,gBAElEyF,SAAW,SAAU+M,GAAW,OAAOyd,EAAIxqB,SAAS+M,EAAU,EAEzEge,EAAaP,EAAIxqB,SAAU,IAAOuqB,EAAOhwB,OAAmB,cAG9DwrB,EAAMpnB,OAAO4rB,EAAQ,CACnBC,IAAKA,EACLnlB,GAAIA,EACJ0lB,WAAYA,EACZ4I,UAAW5I,EAAW,GAGtByY,WAAY,GAGZhY,OAAQjzB,IACRqzB,WAAY,GACZD,SAAU,GACVE,gBAAiB,GAGjBlB,aAAc,WACZ,MAAmC,eAA5BJ,EAAOhwB,OAAOo6B,SACvB,EACA/J,WAAY,WACV,MAAmC,aAA5BL,EAAOhwB,OAAOo6B,SACvB,EAEAzJ,IAA+B,QAAzB7lB,EAAGgW,IAAI/P,eAAoD,QAAzBkf,EAAI3X,IAAI,aAChDoY,aAA0C,eAA5BV,EAAOhwB,OAAOo6B,YAAwD,QAAzBtvB,EAAGgW,IAAI/P,eAAoD,QAAzBkf,EAAI3X,IAAI,cACrGsY,SAAwC,gBAA9BJ,EAAWlY,IAAI,WAGzBwd,YAAa,EACbwB,UAAW,EAGXL,aAAa,EACbC,OAAO,EAGPf,UAAW,EACXmD,kBAAmB,EACnB1C,SAAU,EACV+M,SAAU,EACVhK,WAAW,EAGXY,eAAgBvK,EAAOhwB,OAAOu6B,eAC9BC,eAAgBxK,EAAOhwB,OAAOw6B,eAG9B4L,aACM5Y,EAAQ,CAAC,aAAc,YAAa,WAAY,eAChDyQ,EAAU,CAAC,YAAa,YAAa,WACrC1Q,EAAQG,gBACVuQ,EAAU,CAAC,cAAe,cAAe,cAE3CjO,EAAOka,iBAAmB,CACxB7D,MAAO7Y,EAAM,GACb8Y,KAAM9Y,EAAM,GACZjvB,IAAKivB,EAAM,GACXiZ,OAAQjZ,EAAM,IAEhBwC,EAAOma,mBAAqB,CAC1B9D,MAAOpI,EAAQ,GACfqI,KAAMrI,EAAQ,GACd1/B,IAAK0/B,EAAQ,IAER1Q,EAAQC,QAAUwC,EAAOhwB,OAAO08B,cAAgB1M,EAAOka,iBAAmBla,EAAOma,oBAE1F5K,gBAAiB,CACfM,eAAWxX,EACXyX,aAASzX,EACT0Y,yBAAqB1Y,EACrB6Y,oBAAgB7Y,EAChB2Y,iBAAa3Y,EACb4Q,sBAAkB5Q,EAClBka,oBAAgBla,EAChB+Y,wBAAoB/Y,EAEpBgZ,aAAc,wDAEd+B,cAAe5X,EAAMI,MACrBwe,kBAAc/hB,EAEd0a,WAAY,GACZP,yBAAqBna,EACrBsX,kBAActX,EACd4Y,iBAAa5Y,GAIf6X,YAAY,EAGZqB,eAAgBvR,EAAOhwB,OAAOuhC,eAE9B/B,QAAS,CACPiB,OAAQ,EACRC,OAAQ,EACRN,SAAU,EACVG,SAAU,EACVlE,KAAM,GAIRiM,aAAc,GACdD,aAAc,IAKhBrY,EAAOd,aAGHc,EAAOhwB,OAAO4oC,MAChB5Y,EAAO4Y,OAIF5Y,CA5IP,CA6IF,CAEK7B,IAAcob,EAAOgnC,UAAYpiD,GACtCob,EAAOr7B,UAAYjO,OAAOuvB,OAAQrB,GAAeA,EAAYjgB,WAC7Dq7B,EAAOr7B,UAAU0B,YAAc25B,EAE/B,IAAImmC,EAAkB,CAAEpmC,iBAAkB,CAAEulB,cAAc,GAAOjwC,SAAU,CAAEiwC,cAAc,GAAO/nC,MAAO,CAAE+nC,cAAc,GAAO7wD,EAAG,CAAE6wD,cAAc,IA2PnJ,OAzPAtlB,EAAOr7B,UAAUwtB,qBAAuB,WACtC,IAAI1L,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAChBixB,EAASjB,EAAOiB,OAChBI,EAAarB,EAAOqB,WACpBZ,EAAaT,EAAOM,KACpBwF,EAAc9F,EAAO8F,YACrBuU,EAAM,EACV,GAAIrqC,EAAOq0B,eAAgB,CAGzB,IAFA,IACIiW,EADArY,EAAYhB,EAAO6E,GAAa1B,gBAE3B/oB,EAAIyqB,EAAc,EAAGzqB,EAAI4lB,EAAO/xB,OAAQmM,GAAK,EAChD4lB,EAAO5lB,KAAOi/B,IAEhBD,GAAO,GADPpY,GAAahB,EAAO5lB,GAAG+oB,iBAEP3D,IAAc6Z,GAAY,IAG9C,IAAK,IAAIslC,EAAM95C,EAAc,EAAG85C,GAAO,EAAGA,GAAO,EAC3C3+C,EAAO2+C,KAAStlC,IAElBD,GAAO,GADPpY,GAAahB,EAAO2+C,GAAKx7C,iBAET3D,IAAc6Z,GAAY,GAGhD,MACE,IAAK,IAAIulC,EAAM/5C,EAAc,EAAG+5C,EAAM5+C,EAAO/xB,OAAQ2wE,GAAO,EACtDx+C,EAAWw+C,GAAOx+C,EAAWyE,GAAerF,IAC9C4Z,GAAO,GAIb,OAAOA,CACT,EAEAd,EAAOr7B,UAAU2I,OAAS,WACxB,IAAImZ,EAAS3wB,KACb,GAAK2wB,IAAUA,EAAOkK,UAAtB,CACA,IAAI9I,EAAWpB,EAAOoB,SAClBpxB,EAASgwB,EAAOhwB,OAEhBA,EAAOslC,aACTtV,EAAOuV,gBAETvV,EAAOD,aACPC,EAAOO,eACPP,EAAO6G,iBACP7G,EAAOqH,sBAUHrH,EAAOhwB,OAAO8iC,UAChB5J,IACIlJ,EAAOhwB,OAAOy2B,YAChBzG,EAAOyF,sBAG4B,SAAhCzF,EAAOhwB,OAAO4yB,eAA4B5C,EAAOhwB,OAAO4yB,cAAgB,IAAM5C,EAAOkH,QAAUlH,EAAOhwB,OAAOq0B,eACnGrE,EAAOqK,QAAQrK,EAAOiB,OAAO/xB,OAAS,EAAG,GAAG,GAAO,GAEnD8wB,EAAOqK,QAAQrK,EAAO8F,YAAa,GAAG,GAAO,KAG1DoD,IAGAl5B,EAAOo1B,eAAiBhE,IAAapB,EAAOoB,UAC9CpB,EAAOqF,gBAETrF,EAAOpB,KAAK,SAtC+B,CAY3C,SAASsK,IACP,IAAIqR,EAAiBva,EAAOU,cAAmC,EAApBV,EAAOmG,UAAiBnG,EAAOmG,UACtE0D,EAAerpB,KAAKijB,IAAIjjB,KAAKsiB,IAAIyX,EAAgBva,EAAOgH,gBAAiBhH,EAAOwG,gBACpFxG,EAAOkJ,aAAaW,GACpB7J,EAAOkI,oBACPlI,EAAOqH,qBACT,CAqBF,EAEAkS,EAAOr7B,UAAUs5B,gBAAkB,SAA0BiD,EAAcC,QACrD,IAAfA,IAAwBA,GAAa,GAE1C,IAAI1a,EAAS3wB,KACTsrC,EAAmB3a,EAAOhwB,OAAOo6B,UAKrC,OAJKqQ,IAEHA,EAAoC,eAArBE,EAAoC,WAAa,cAE7DF,IAAiBE,GAAuC,eAAjBF,GAAkD,aAAjBA,IAI7Eza,EAAOC,IACJzxB,YAAa,GAAMwxB,EAAOhwB,OAA6B,uBAAI2qC,GAC3DlsC,SAAU,GAAMuxB,EAAOhwB,OAA6B,uBAAIyqC,GAE3Dza,EAAOhwB,OAAOo6B,UAAYqQ,EAE1Bza,EAAOiB,OAAOluB,MAAK,SAAUyuB,EAAYoZ,GAClB,aAAjBH,EACFG,EAAQ35B,MAAM3I,MAAQ,GAEtBsiC,EAAQ35B,MAAM5G,OAAS,EAE3B,IAEA2lB,EAAOpB,KAAK,mBACR8b,GAAc1a,EAAOnZ,UAlBhBmZ,CAqBX,EAEAuZ,EAAOr7B,UAAU06B,KAAO,WACtB,IAAI5Y,EAAS3wB,KACT2wB,EAAOyI,cAEXzI,EAAOpB,KAAK,cAGRoB,EAAOhwB,OAAOslC,aAChBtV,EAAOuV,gBAITvV,EAAOgZ,aAGHhZ,EAAOhwB,OAAO83B,MAChB9H,EAAO4L,aAIT5L,EAAOD,aAGPC,EAAOO,eAEHP,EAAOhwB,OAAOo1B,eAChBpF,EAAOqF,gBAILrF,EAAOhwB,OAAOu8B,YAChBvM,EAAOwM,gBAGLxM,EAAOhwB,OAAOooC,eAChBpY,EAAOoY,gBAILpY,EAAOhwB,OAAO83B,KAChB9H,EAAOqK,QAAQrK,EAAOhwB,OAAOs6B,aAAetK,EAAO4K,aAAc,EAAG5K,EAAOhwB,OAAO04B,oBAElF1I,EAAOqK,QAAQrK,EAAOhwB,OAAOs6B,aAAc,EAAGtK,EAAOhwB,OAAO04B,oBAI9D1I,EAAOmW,eAGPnW,EAAOyI,aAAc,EAGrBzI,EAAOpB,KAAK,QACd,EAEA2a,EAAOr7B,UAAUmH,QAAU,SAAkBw1B,EAAgBC,QACnC,IAAnBD,IAA4BA,GAAiB,QAC7B,IAAhBC,IAAyBA,GAAc,GAE5C,IAAI9a,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAChBiwB,EAAMD,EAAOC,IACbO,EAAaR,EAAOQ,WACpBS,EAASjB,EAAOiB,OAEpB,YAA6B,IAAlBjB,EAAOhwB,QAA0BgwB,EAAOkK,YAInDlK,EAAOpB,KAAK,iBAGZoB,EAAOyI,aAAc,EAGrBzI,EAAO2W,eAGH3mC,EAAO83B,MACT9H,EAAOsM,cAILwO,IACF9a,EAAOoZ,gBACPnZ,EAAInb,WAAW,SACf0b,EAAW1b,WAAW,SAClBmc,GAAUA,EAAO/xB,QACnB+xB,EACGzyB,YAAY,CACXwB,EAAOq2B,kBACPr2B,EAAOw3B,iBACPx3B,EAAOy3B,eACPz3B,EAAO03B,gBAAiBplB,KAAK,MAC9BwC,WAAW,SACXA,WAAW,4BAIlBkb,EAAOpB,KAAK,WAGZ3uB,OAAOkkB,KAAK6L,EAAO5B,iBAAiBhK,SAAQ,SAAUiK,GACpD2B,EAAO9Y,IAAImX,EACb,KAEuB,IAAnBwc,IACF7a,EAAOC,IAAI,GAAGD,OAAS,KACvBA,EAAOC,IAAIpvB,KAAK,SAAU,MAC1B2qB,EAAMC,YAAYuE,IAEpBA,EAAOkK,WAAY,GA7CV,IAgDX,EAEAqP,EAAOwB,eAAiB,SAAyBC,GAC/Cxf,EAAMpnB,OAAOklC,GAAkB0B,EACjC,EAEA0kC,EAAgBpmC,iBAAiB/lC,IAAM,WACrC,OAAO+lC,EACT,EAEAomC,EAAgB9wD,SAASrb,IAAM,WAC7B,OAAOqb,EACT,EAEA8wD,EAAgB5oD,MAAMvjB,IAAM,WAC1B,OAAO4qB,CACT,EAEAuhD,EAAgB1xE,EAAEuF,IAAM,WACtB,OAAOvF,CACT,EAEAiC,OAAO+vE,iBAAkBzmC,EAAQmmC,GAE1BnmC,CACT,CAtd0B,CAsdxBpb,GAEE8c,GAAW,CACbjoC,KAAM,SACN4sB,MAAO,CACLiO,OAAQH,IAEV7N,OAAQ,CACNgO,OAAQH,KAIRwN,GAAY,CACdloC,KAAM,UACN4sB,MAAO,CACLub,QAAS5d,GAEXsC,OAAQ,CACNsb,QAAS5d,IAIT6d,GAAW,WACb,SAASE,IACP,IAAI1N,EAAKpY,EAAIjC,UAAUkC,UAAU1U,cACjC,OAAQ6sB,EAAGxrB,QAAQ,WAAa,GAAKwrB,EAAGxrB,QAAQ,UAAY,GAAKwrB,EAAGxrB,QAAQ,WAAa,CAC3F,CACA,MAAO,CACLi5B,SAAU7lB,EAAIjC,UAAUkC,UAAUtmB,MAAM,SACxCmsC,SAAUA,IACVC,UAAW,+CAA+C/mC,KAAKghB,EAAIjC,UAAUkC,WAEjF,CAVc,GAYV+lB,GAAY,CACdxoC,KAAM,UACN4sB,MAAO,CACL6b,QAASL,IAEXvb,OAAQ,CACN4b,QAASL,KAITM,GAAS,CACX1oC,KAAM,SACNwsB,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnB2b,OAAQ,CACNC,cAAe,WACR5b,IAAUA,EAAOkK,WAAclK,EAAOyI,cAC3CzI,EAAOpB,KAAK,gBACZoB,EAAOpB,KAAK,UACd,EACAid,yBAA0B,WACnB7b,IAAUA,EAAOkK,WAAclK,EAAOyI,aAC3CzI,EAAOpB,KAAK,oBACd,IAGN,EACAxvB,GAAI,CACFwpC,KAAM,WACJ,IAAI5Y,EAAS3wB,KAEbmmB,EAAIjB,iBAAiB,SAAUyL,EAAO2b,OAAOC,eAG7CpmB,EAAIjB,iBAAiB,oBAAqByL,EAAO2b,OAAOE,yBAC1D,EACAx2B,QAAS,WACP,IAAI2a,EAAS3wB,KACbmmB,EAAIhB,oBAAoB,SAAUwL,EAAO2b,OAAOC,eAChDpmB,EAAIhB,oBAAoB,oBAAqBwL,EAAO2b,OAAOE,yBAC7D,IAIAC,GAAW,CACbC,KAAMvmB,EAAIrD,kBAAoBqD,EAAIwmB,uBAClCC,OAAQ,SAAgBxjC,EAAQ+J,QACb,IAAZA,IAAqBA,EAAU,CAAC,GAErC,IAAIwd,EAAS3wB,KAGTwuB,EAAW,IAAIqe,EADAJ,GAASC,OACI,SAAUI,GAIxC,GAAyB,IAArBA,EAAUjtC,OAAd,CAIA,IAAIktC,EAAiB,WACnBpc,EAAOpB,KAAK,iBAAkBud,EAAU,GAC1C,EAEI3mB,EAAI6mB,sBACN7mB,EAAI6mB,sBAAsBD,GAE1B5mB,EAAI3b,WAAWuiC,EAAgB,EARjC,MAFEpc,EAAOpB,KAAK,iBAAkBud,EAAU,GAY5C,IAEAte,EAASzL,QAAQ3Z,EAAQ,CACvBsY,gBAA0C,IAAvBvO,EAAQuO,YAAoCvO,EAAQuO,WACvEsB,eAAwC,IAAtB7P,EAAQ6P,WAAmC7P,EAAQ6P,UACrEiqB,mBAAgD,IAA1B95B,EAAQ85B,eAAuC95B,EAAQ85B,gBAG/Etc,EAAOnC,SAAS0e,UAAU9lC,KAAKonB,EACjC,EACA+a,KAAM,WACJ,IAAI5Y,EAAS3wB,KACb,GAAKkuB,EAAQM,UAAamC,EAAOhwB,OAAO6tB,SAAxC,CACA,GAAImC,EAAOhwB,OAAOwsC,eAEhB,IADA,IAAIC,EAAmBzc,EAAOC,IAAIvnB,UACzB2C,EAAI,EAAGA,EAAIohC,EAAiBvtC,OAAQmM,GAAK,EAChD2kB,EAAOnC,SAASoe,OAAOQ,EAAiBphC,IAI5C2kB,EAAOnC,SAASoe,OAAOjc,EAAOC,IAAI,GAAI,CAAE5N,UAAW2N,EAAOhwB,OAAO0sC,uBAGjE1c,EAAOnC,SAASoe,OAAOjc,EAAOQ,WAAW,GAAI,CAAEzP,YAAY,GAXC,CAY9D,EACA1L,QAAS,WACP,IAAI2a,EAAS3wB,KACb2wB,EAAOnC,SAAS0e,UAAUnoB,SAAQ,SAAUyJ,GAC1CA,EAAS5K,YACX,IACA+M,EAAOnC,SAAS0e,UAAY,EAC9B,GAGEI,GAAa,CACf3pC,KAAM,WACNhD,OAAQ,CACN6tB,UAAU,EACV2e,gBAAgB,EAChBE,sBAAsB,GAExBld,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnBnC,SAAU,CACR+a,KAAMkD,GAASlD,KAAKh4B,KAAKof,GACzBic,OAAQH,GAASG,OAAOr7B,KAAKof,GAC7B3a,QAASy2B,GAASz2B,QAAQzE,KAAKof,GAC/Buc,UAAW,KAGjB,EACAntC,GAAI,CACFwpC,KAAM,WACSvpC,KACNwuB,SAAS+a,MAClB,EACAvzB,QAAS,WACMhW,KACNwuB,SAASxY,SAClB,IAIAm7D,GAAU,CACZ35D,OAAQ,SAAgB45D,GACtB,IAAIzgD,EAAS3wB,KACTixE,EAAMtgD,EAAOhwB,OACb4yB,EAAgB09C,EAAI19C,cACpBS,EAAiBi9C,EAAIj9C,eACrBgB,EAAiBi8C,EAAIj8C,eACrBq8C,EAAQ1gD,EAAOhwB,OAAO8wB,QACtB6/C,EAAkBD,EAAMC,gBACxBC,EAAiBF,EAAME,eACvBC,EAAQ7gD,EAAOc,QACfggD,EAAeD,EAAME,KACrBC,EAAaH,EAAM9jD,GACnBkE,EAAS4/C,EAAM5/C,OACfggD,EAAqBJ,EAAMx/C,WAC3B6/C,EAAcL,EAAMK,YACpBC,EAAiBN,EAAM9oE,OAC3BioB,EAAOkI,oBACP,IAEIklC,EAIAgU,EACAC,EAPAv7C,EAAc9F,EAAO8F,aAAe,EAGbsnC,EAAvBptC,EAAOU,aAA6B,QACpBV,EAAOI,eAAiB,OAAS,MAIjDiE,GACF+8C,EAAc5gE,KAAKC,MAAMmiB,EAAgB,GAAKS,EAAiBs9C,EAC/DU,EAAe7gE,KAAKC,MAAMmiB,EAAgB,GAAKS,EAAiBu9C,IAEhEQ,EAAcx+C,GAAiBS,EAAiB,GAAKs9C,EACrDU,EAAeh+C,EAAiBu9C,GAElC,IAAIG,EAAOvgE,KAAKsiB,KAAKgD,GAAe,GAAKu7C,EAAc,GACnDtkD,EAAKvc,KAAKijB,KAAKqC,GAAe,GAAKs7C,EAAangD,EAAO/xB,OAAS,GAChE6I,GAAUioB,EAAOqB,WAAW0/C,IAAS,IAAM/gD,EAAOqB,WAAW,IAAM,GASvE,SAASigD,IACPthD,EAAOO,eACPP,EAAO6G,iBACP7G,EAAOqH,sBACHrH,EAAOuhD,MAAQvhD,EAAOhwB,OAAOuxE,KAAKxgD,SACpCf,EAAOuhD,KAAKpiE,MAEhB,CAEA,GAhBAqc,EAAMpnB,OAAO4rB,EAAOc,QAAS,CAC3BigD,KAAMA,EACNhkD,GAAIA,EACJhlB,OAAQA,EACRspB,WAAYrB,EAAOqB,aAYjBy/C,IAAiBC,GAAQC,IAAejkD,IAAO0jD,EAKjD,OAJIzgD,EAAOqB,aAAe4/C,GAAsBlpE,IAAWopE,GACzDnhD,EAAOiB,OAAO3Y,IAAI8kD,EAAar1D,EAAS,WAE1CioB,EAAO6G,iBAGT,GAAI7G,EAAOhwB,OAAO8wB,QAAQ0gD,eAcxB,OAbAxhD,EAAOhwB,OAAO8wB,QAAQ0gD,eAAe3hE,KAAKmgB,EAAQ,CAChDjoB,OAAQA,EACRgpE,KAAMA,EACNhkD,GAAIA,EACJkE,OAAS,WAEP,IADA,IAAIwgD,EAAiB,GACZpmE,EAAI0lE,EAAM1lE,GAAK0hB,EAAI1hB,GAAK,EAC/BomE,EAAehrE,KAAKwqB,EAAO5lB,IAE7B,OAAOomE,CACT,CANQ,UAQVH,IAGF,IAAII,EAAiB,GACjBC,EAAgB,GACpB,GAAIlB,EACFzgD,EAAOQ,WAAWnyB,KAAM,IAAO2xB,EAAOhwB,OAAiB,YAAI8E,cAE3D,IAAK,IAAIuG,EAAIylE,EAAczlE,GAAK2lE,EAAY3lE,GAAK,GAC3CA,EAAI0lE,GAAQ1lE,EAAI0hB,IAClBiD,EAAOQ,WAAWnyB,KAAM,IAAO2xB,EAAOhwB,OAAiB,WAAI,6BAAgCqL,EAAI,MAAQvG,SAI7G,IAAK,IAAI8qE,EAAM,EAAGA,EAAM3+C,EAAO/xB,OAAQ0wE,GAAO,EACxCA,GAAOmB,GAAQnB,GAAO7iD,SACE,IAAfikD,GAA8BP,EACvCkB,EAAclrE,KAAKmpE,IAEfA,EAAMoB,GAAcW,EAAclrE,KAAKmpE,GACvCA,EAAMkB,GAAgBY,EAAejrE,KAAKmpE,KAIpD+B,EAAcvtD,SAAQ,SAAUvZ,GAC9BmlB,EAAOQ,WAAW9qB,OAAOwrE,EAAYjgD,EAAOpmB,GAAQA,GACtD,IACA6mE,EAAet+D,MAAK,SAAUzF,EAAGsB,GAAK,OAAOA,EAAItB,CAAG,IAAGyW,SAAQ,SAAUvZ,GACvEmlB,EAAOQ,WAAWtc,QAAQg9D,EAAYjgD,EAAOpmB,GAAQA,GACvD,IACAmlB,EAAOQ,WAAW/qB,SAAS,iBAAiB6S,IAAI8kD,EAAar1D,EAAS,MACtEupE,GACF,EACAJ,YAAa,SAAqBj+C,EAAOpoB,GACvC,IAAImlB,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAAO8wB,QAC3B,GAAI9wB,EAAO+gD,OAAS/wB,EAAOc,QAAQiwB,MAAMl2C,GACvC,OAAOmlB,EAAOc,QAAQiwB,MAAMl2C,GAE9B,IAAI+mE,EAAW5xE,EAAOkxE,YAClBlzE,EAAEgC,EAAOkxE,YAAYrhE,KAAKmgB,EAAQiD,EAAOpoB,IACzC7M,EAAG,eAAmBgyB,EAAOhwB,OAAiB,WAAI,8BAAkC6K,EAAQ,KAAQooB,EAAQ,UAGhH,OAFK2+C,EAASxzE,KAAK,4BAA8BwzE,EAASxzE,KAAK,0BAA2ByM,GACtF7K,EAAO+gD,QAAS/wB,EAAOc,QAAQiwB,MAAMl2C,GAAS+mE,GAC3CA,CACT,EACA70C,YAAa,SAAqB9L,GAChC,IAAIjB,EAAS3wB,KACb,GAAsB,iBAAX4xB,GAAuB,WAAYA,EAC5C,IAAK,IAAI5lB,EAAI,EAAGA,EAAI4lB,EAAO/xB,OAAQmM,GAAK,EAClC4lB,EAAO5lB,IAAM2kB,EAAOc,QAAQG,OAAOxqB,KAAKwqB,EAAO5lB,SAGrD2kB,EAAOc,QAAQG,OAAOxqB,KAAKwqB,GAE7BjB,EAAOc,QAAQja,QAAO,EACxB,EACAmmB,aAAc,SAAsB/L,GAClC,IAAIjB,EAAS3wB,KACTy2B,EAAc9F,EAAO8F,YACrBqC,EAAiBrC,EAAc,EAC/B+7C,EAAoB,EAExB,GAAI7hE,MAAMiK,QAAQgX,GAAS,CACzB,IAAK,IAAI5lB,EAAI,EAAGA,EAAI4lB,EAAO/xB,OAAQmM,GAAK,EAClC4lB,EAAO5lB,IAAM2kB,EAAOc,QAAQG,OAAOhhB,QAAQghB,EAAO5lB,IAExD8sB,EAAiBrC,EAAc7E,EAAO/xB,OACtC2yE,EAAoB5gD,EAAO/xB,MAC7B,MACE8wB,EAAOc,QAAQG,OAAOhhB,QAAQghB,GAEhC,GAAIjB,EAAOhwB,OAAO8wB,QAAQiwB,MAAO,CAC/B,IAAIA,EAAQ/wB,EAAOc,QAAQiwB,MACvBkF,EAAW,CAAC,EAChBhmD,OAAOkkB,KAAK48B,GAAO38B,SAAQ,SAAU0tD,GACnC,IAAIC,EAAYhxB,EAAM+wB,GAClBE,EAAgBD,EAAU3zE,KAAK,2BAC/B4zE,GACFD,EAAU3zE,KAAK,0BAA2B0F,SAASkuE,EAAe,IAAM,GAE1E/rB,EAASniD,SAASguE,EAAa,IAAMD,GAAqBE,CAC5D,IACA/hD,EAAOc,QAAQiwB,MAAQkF,CACzB,CACAj2B,EAAOc,QAAQja,QAAO,GACtBmZ,EAAOqK,QAAQlC,EAAgB,EACjC,EACAmF,YAAa,SAAqBC,GAChC,IAAIvN,EAAS3wB,KACb,GAAI,MAAOk+B,EAAX,CACA,IAAIzH,EAAc9F,EAAO8F,YACzB,GAAI9lB,MAAMiK,QAAQsjB,GAChB,IAAK,IAAIlyB,EAAIkyB,EAAcr+B,OAAS,EAAGmM,GAAK,EAAGA,GAAK,EAClD2kB,EAAOc,QAAQG,OAAO5hB,OAAOkuB,EAAclyB,GAAI,GAC3C2kB,EAAOhwB,OAAO8wB,QAAQiwB,cACjB/wB,EAAOc,QAAQiwB,MAAMxjB,EAAclyB,IAExCkyB,EAAclyB,GAAKyqB,IAAeA,GAAe,GACrDA,EAActlB,KAAKsiB,IAAIgD,EAAa,QAGtC9F,EAAOc,QAAQG,OAAO5hB,OAAOkuB,EAAe,GACxCvN,EAAOhwB,OAAO8wB,QAAQiwB,cACjB/wB,EAAOc,QAAQiwB,MAAMxjB,GAE1BA,EAAgBzH,IAAeA,GAAe,GAClDA,EAActlB,KAAKsiB,IAAIgD,EAAa,GAEtC9F,EAAOc,QAAQja,QAAO,GACtBmZ,EAAOqK,QAAQvE,EAAa,EApBkD,CAqBhF,EACA2H,gBAAiB,WACf,IAAIzN,EAAS3wB,KACb2wB,EAAOc,QAAQG,OAAS,GACpBjB,EAAOhwB,OAAO8wB,QAAQiwB,QACxB/wB,EAAOc,QAAQiwB,MAAQ,CAAC,GAE1B/wB,EAAOc,QAAQja,QAAO,GACtBmZ,EAAOqK,QAAQ,EAAG,EACpB,GAGE43C,GAAY,CACdjvE,KAAM,UACNhD,OAAQ,CACN8wB,QAAS,CACPC,SAAS,EACTE,OAAQ,GACR8vB,OAAO,EACPmwB,YAAa,KACbM,eAAgB,KAChBb,gBAAiB,EACjBC,eAAgB,IAGpBphD,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnBc,QAAS,CACPja,OAAQ25D,GAAQ35D,OAAOjG,KAAKof,GAC5B+M,YAAayzC,GAAQzzC,YAAYnsB,KAAKof,GACtCgN,aAAcwzC,GAAQxzC,aAAapsB,KAAKof,GACxCsN,YAAakzC,GAAQlzC,YAAY1sB,KAAKof,GACtCyN,gBAAiB+yC,GAAQ/yC,gBAAgB7sB,KAAKof,GAC9CkhD,YAAaV,GAAQU,YAAYtgE,KAAKof,GACtCiB,OAAQjB,EAAOhwB,OAAO8wB,QAAQG,OAC9B8vB,MAAO,CAAC,IAGd,EACA3hD,GAAI,CACF8yE,WAAY,WACV,IAAIliD,EAAS3wB,KACb,GAAK2wB,EAAOhwB,OAAO8wB,QAAQC,QAA3B,CACAf,EAAOiZ,WAAWxiC,KAAOupB,EAAOhwB,OAA6B,uBAAI,WACjE,IAAImyE,EAAkB,CACpB78C,qBAAqB,GAEvB9J,EAAMpnB,OAAO4rB,EAAOhwB,OAAQmyE,GAC5B3mD,EAAMpnB,OAAO4rB,EAAOkX,eAAgBirC,GAE/BniD,EAAOhwB,OAAOs6B,cACjBtK,EAAOc,QAAQja,QAT6B,CAWhD,EACAqiB,aAAc,WACZ,IAAIlJ,EAAS3wB,KACR2wB,EAAOhwB,OAAO8wB,QAAQC,SAC3Bf,EAAOc,QAAQja,QACjB,IAIAu7D,GAAW,CACb9jC,OAAQ,SAAgBxuC,GACtB,IAAIkwB,EAAS3wB,KACTsxB,EAAMX,EAAOU,aACb1jB,EAAIlN,EACJkN,EAAEoI,gBAAiBpI,EAAIA,EAAEoI,eAC7B,IAAIi9D,EAAKrlE,EAAEopD,SAAWppD,EAAEmpD,SACpBmc,EAAatiD,EAAOhwB,OAAO60C,SAASy9B,WACpCC,EAAWD,GAAqB,KAAPD,EACzBG,EAAaF,GAAqB,KAAPD,EAC3BI,EAAqB,KAAPJ,EACdK,EAAsB,KAAPL,EACfM,EAAmB,KAAPN,EACZO,EAAqB,KAAPP,EAElB,IAAKriD,EAAOuK,iBAAoBvK,EAAOI,gBAAkBsiD,GAAkB1iD,EAAOK,cAAgBuiD,GAAgBJ,GAChH,OAAO,EAET,IAAKxiD,EAAOwK,iBAAoBxK,EAAOI,gBAAkBqiD,GAAiBziD,EAAOK,cAAgBsiD,GAAcJ,GAC7G,OAAO,EAET,KAAIvlE,EAAE6gC,UAAY7gC,EAAEwV,QAAUxV,EAAEuQ,SAAWvQ,EAAEwQ,SAGzC6G,EAAIrN,eAAiBqN,EAAIrN,cAAc0N,WAA0D,UAA7CL,EAAIrN,cAAc0N,SAAS3T,eAA0E,aAA7CsT,EAAIrN,cAAc0N,SAAS3T,gBAA3I,CAGA,GAAIif,EAAOhwB,OAAO60C,SAASg+B,iBAAmBN,GAAYC,GAAcC,GAAeC,GAAgBC,GAAaC,GAAc,CAChI,IAAIE,GAAS,EAEb,GAAI9iD,EAAOC,IAAIvnB,QAAS,IAAOsnB,EAAOhwB,OAAiB,YAAId,OAAS,GAA6E,IAAxE8wB,EAAOC,IAAIvnB,QAAS,IAAOsnB,EAAOhwB,OAAuB,kBAAId,OACpI,OAEF,IAAI6zE,EAAcvtD,EAAIlU,WAClB0hE,EAAextD,EAAIpU,YACnB6hE,EAAejjD,EAAOC,IAAIloB,SAC1B4oB,IAAOsiD,EAAap2D,MAAQmT,EAAOC,IAAI,GAAGtT,YAM9C,IALA,IAAIu2D,EAAc,CAChB,CAACD,EAAap2D,KAAMo2D,EAAajrE,KACjC,CAACirE,EAAap2D,KAAOmT,EAAO1nB,MAAO2qE,EAAajrE,KAChD,CAACirE,EAAap2D,KAAMo2D,EAAajrE,IAAMgoB,EAAO3lB,QAC9C,CAAC4oE,EAAap2D,KAAOmT,EAAO1nB,MAAO2qE,EAAajrE,IAAMgoB,EAAO3lB,SACtDgB,EAAI,EAAGA,EAAI6nE,EAAYh0E,OAAQmM,GAAK,EAAG,CAC9C,IAAIq8B,EAAQwrC,EAAY7nE,GAEtBq8B,EAAM,IAAM,GAAKA,EAAM,IAAMqrC,GAC1BrrC,EAAM,IAAM,GAAKA,EAAM,IAAMsrC,IAEhCF,GAAS,EAEb,CACA,IAAKA,EAAU,MACjB,CACI9iD,EAAOI,iBACLmiD,GAAYC,GAAcC,GAAeC,KACvC1lE,EAAEjN,eAAkBiN,EAAEjN,iBACnBiN,EAAE2iC,aAAc,KAEnB6iC,GAAcE,KAAkB/hD,IAAU4hD,GAAYE,IAAgB9hD,IAAQX,EAAO6K,cACrF03C,GAAYE,KAAiB9hD,IAAU6hD,GAAcE,IAAiB/hD,IAAQX,EAAOiL,eAEvFs3C,GAAYC,GAAcG,GAAaC,KACrC5lE,EAAEjN,eAAkBiN,EAAEjN,iBACnBiN,EAAE2iC,aAAc,IAErB6iC,GAAcI,IAAe5iD,EAAO6K,aACpC03C,GAAYI,IAAa3iD,EAAOiL,aAEtCjL,EAAOpB,KAAK,WAAYyjD,EA1CxB,CA4CF,EACArvD,OAAQ,WACN,IAAIgN,EAAS3wB,KACT2wB,EAAO6kB,SAAS9jB,UACpB/yB,EAAEqmB,GAAKjlB,GAAG,UAAW4wB,EAAO6kB,SAASvG,QACrCte,EAAO6kB,SAAS9jB,SAAU,EAC5B,EACA8e,QAAS,WACP,IAAI7f,EAAS3wB,KACR2wB,EAAO6kB,SAAS9jB,UACrB/yB,EAAEqmB,GAAKnN,IAAI,UAAW8Y,EAAO6kB,SAASvG,QACtCte,EAAO6kB,SAAS9jB,SAAU,EAC5B,GAGEoiD,GAAa,CACfnwE,KAAM,WACNhD,OAAQ,CACN60C,SAAU,CACR9jB,SAAS,EACT8hD,gBAAgB,EAChBP,YAAY,IAGhB9iD,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnB6kB,SAAU,CACR9jB,SAAS,EACT/N,OAAQovD,GAASpvD,OAAOpS,KAAKof,GAC7B6f,QAASuiC,GAASviC,QAAQj/B,KAAKof,GAC/Bse,OAAQ8jC,GAAS9jC,OAAO19B,KAAKof,KAGnC,EACA5wB,GAAI,CACFwpC,KAAM,WACJ,IAAI5Y,EAAS3wB,KACT2wB,EAAOhwB,OAAO60C,SAAS9jB,SACzBf,EAAO6kB,SAAS7xB,QAEpB,EACA3N,QAAS,WACP,IAAI2a,EAAS3wB,KACT2wB,EAAO6kB,SAAS9jB,SAClBf,EAAO6kB,SAAShF,SAEpB,IAIJ,SAAS1C,KACP,IAAI9e,EAAY,UACZ2e,EAAc3e,KAAahK,EAE/B,IAAK2oB,EAAa,CAChB,IAAIp5B,EAAUyQ,EAAIlQ,cAAc,OAChCP,EAAQ/B,aAAawc,EAAW,WAChC2e,EAA4C,mBAAvBp5B,EAAQya,EAC/B,CAaA,OAXK2e,GACA3oB,EAAI4oB,gBACJ5oB,EAAI4oB,eAAeC,aAGuB,IAA1C7oB,EAAI4oB,eAAeC,WAAW,GAAI,MAGrCF,EAAc3oB,EAAI4oB,eAAeC,WAAW,eAAgB,QAGvDF,CACT,CACA,IAAIJ,GAAa,CACfC,eAAgBrhB,EAAMI,MACtBkhB,yBAAqBzkB,EACrB0kB,kBAAmB,GACnBjtC,MAAO,WACL,OAAI0lB,EAAIjC,UAAUkC,UAAUrT,QAAQ,YAAc,EAAY,iBACvD+6B,KAAqB,QAAU,YACxC,EACA5+B,UAAW,SAAmBvB,GAE5B,IAAIomE,EAAa,GACbC,EAAc,GACdC,EAAc,IAEdlmC,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EAuDT,MApDI,WAAYvgC,IACdqgC,EAAKrgC,EAAE8b,QAEL,eAAgB9b,IAClBqgC,GAAMrgC,EAAEwgC,WAAa,KAEnB,gBAAiBxgC,IACnBqgC,GAAMrgC,EAAEygC,YAAc,KAEpB,gBAAiBzgC,IACnBogC,GAAMpgC,EAAE0gC,YAAc,KAIpB,SAAU1gC,GAAKA,EAAE8e,OAAS9e,EAAE2gC,kBAC9BP,EAAKC,EACLA,EAAK,GAGPC,EAAKF,EAAKgmC,EACV7lC,EAAKF,EAAK+lC,EAEN,WAAYpmE,IACdugC,EAAKvgC,EAAEkI,QAEL,WAAYlI,IACdsgC,EAAKtgC,EAAE4gC,QAGL5gC,EAAE6gC,WAAaP,IACjBA,EAAKC,EACLA,EAAK,IAGFD,GAAMC,IAAOvgC,EAAE8gC,YACE,IAAhB9gC,EAAE8gC,WACJR,GAAM+lC,EACN9lC,GAAM8lC,IAEN/lC,GAAMgmC,EACN/lC,GAAM+lC,IAKNhmC,IAAOF,IACTA,EAAME,EAAK,GAAM,EAAI,GAEnBC,IAAOF,IACTA,EAAME,EAAK,GAAM,EAAI,GAGhB,CACLQ,MAAOX,EACPY,MAAOX,EACPY,OAAQX,EACRY,OAAQX,EAEZ,EACAY,iBAAkB,WACH9uC,KACN+uC,cAAe,CACxB,EACAC,iBAAkB,WACHhvC,KACN+uC,cAAe,CACxB,EACAE,OAAQ,SAAgBxuC,GACtB,IAAIkN,EAAIlN,EACJkwB,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAAOiV,WAEvB+a,EAAOhwB,OAAOyxB,SAChBzkB,EAAEjN,iBAGJ,IAAI0I,EAASunB,EAAOC,IAIpB,GAH8C,cAA1CD,EAAOhwB,OAAOiV,WAAWs5B,eAC3B9lC,EAASzK,EAAEgyB,EAAOhwB,OAAOiV,WAAWs5B,gBAEjCve,EAAOoe,eAAiB3lC,EAAO,GAAGG,SAASoE,EAAEvE,UAAYzI,EAAOwuC,eAAkB,OAAO,EAE1FxhC,EAAEoI,gBAAiBpI,EAAIA,EAAEoI,eAC7B,IAAIq5B,EAAQ,EACRC,EAAY1e,EAAOU,cAAgB,EAAI,EAEvC7vB,EAAO+rC,GAAWr+B,UAAUvB,GAEhC,GAAIhN,EAAO2uC,YACT,GAAI3e,EAAOI,eAAgB,CACzB,KAAI5f,KAAK8jB,IAAIzzB,EAAKotC,QAAUz9B,KAAK8jB,IAAIzzB,EAAKqtC,SACnC,OAAO,EADuCO,GAAS5tC,EAAKotC,OAASS,CAE9E,KAAO,MAAIl+B,KAAK8jB,IAAIzzB,EAAKqtC,QAAU19B,KAAK8jB,IAAIzzB,EAAKotC,SAC1C,OAAO,EAD8CQ,GAAS5tC,EAAKqtC,MACtD,MAEpBO,EAAQj+B,KAAK8jB,IAAIzzB,EAAKotC,QAAUz9B,KAAK8jB,IAAIzzB,EAAKqtC,SAAWrtC,EAAKotC,OAASS,GAAa7tC,EAAKqtC,OAG3F,GAAc,IAAVO,EAAe,OAAO,EAI1B,GAFIzuC,EAAO4uC,SAAUH,GAASA,GAEzBze,EAAOhwB,OAAO8iC,SAoCZ,CAOL,IAAIywC,EAAa,CAAEvwC,KAAMxX,EAAMI,MAAO6iB,MAAOj+B,KAAK8jB,IAAIma,GAAQrU,UAAW5pB,KAAKs+B,KAAKL,IAE/E3B,EADM9c,EAAO/a,WACa63B,oBAC1BiC,EAAoBjC,GACnBymC,EAAWvwC,KAAO8J,EAAoB9J,KAAO,KAC7CuwC,EAAW9kC,OAAS3B,EAAoB2B,OACxC8kC,EAAWn5C,YAAc0S,EAAoB1S,UAClD,IAAK2U,EAAmB,CACtB/e,EAAO/a,WAAW63B,yBAAsBzkB,EAEpC2H,EAAOhwB,OAAO83B,MAChB9H,EAAO+K,UAET,IAAIlzB,EAAWmoB,EAAOnE,eAAkB4iB,EAAQzuC,EAAOgvC,YACnD7X,EAAenH,EAAOiH,YACtBG,EAASpH,EAAOkH,MAepB,GAbIrvB,GAAYmoB,EAAOwG,iBAAkB3uB,EAAWmoB,EAAOwG,gBACvD3uB,GAAYmoB,EAAOgH,iBAAkBnvB,EAAWmoB,EAAOgH,gBAE3DhH,EAAO4F,cAAc,GACrB5F,EAAOkJ,aAAarxB,GACpBmoB,EAAO6G,iBACP7G,EAAOkI,oBACPlI,EAAOqH,wBAEDF,GAAgBnH,EAAOiH,cAAkBG,GAAUpH,EAAOkH,QAC9DlH,EAAOqH,sBAGLrH,EAAOhwB,OAAOwkC,eAAgB,CAYhCpqB,aAAa4V,EAAO/a,WAAWg6B,SAC/Bjf,EAAO/a,WAAWg6B,aAAU5mB,EAC5B,IAAImrD,EAAsBxjD,EAAO/a,WAAW83B,kBACxCymC,EAAoBt0E,QAAU,IAChCs0E,EAAoBtkC,QAEtB,IAAIukC,EAAcD,EAAoBt0E,OAASs0E,EAAoBA,EAAoBt0E,OAAS,QAAKmpB,EACjG+mB,EAAaokC,EAAoB,GAErC,GADAA,EAAoB/sE,KAAK8sE,GACrBE,IAAgBF,EAAW9kC,MAAQglC,EAAYhlC,OAAS8kC,EAAWn5C,YAAcq5C,EAAYr5C,WAE/Fo5C,EAAoBnkE,OAAO,QACtB,GAAImkE,EAAoBt0E,QAAU,IAClCq0E,EAAWvwC,KAAOoM,EAAWpM,KAAO,KACpCoM,EAAWX,MAAQ8kC,EAAW9kC,OAAS,GACvC8kC,EAAW9kC,OAAS,EACzB,CAOA,IAAIY,EAAkBZ,EAAQ,EAAI,GAAM,GACxCze,EAAO/a,WAAW63B,oBAAsBymC,EACxCC,EAAoBnkE,OAAO,GAC3B2gB,EAAO/a,WAAWg6B,QAAUzjB,EAAMG,UAAS,WACzCqE,EAAOuL,eAAevL,EAAOhwB,OAAOiJ,OAAO,OAAMof,EAAWgnB,EAC9D,GAAG,EACL,CACKrf,EAAO/a,WAAWg6B,UAIrBjf,EAAO/a,WAAWg6B,QAAUzjB,EAAMG,UAAS,WACzC,IAAI0jB,EAAkB,GACtBrf,EAAO/a,WAAW63B,oBAAsBymC,EACxCC,EAAoBnkE,OAAO,GAC3B2gB,EAAOuL,eAAevL,EAAOhwB,OAAOiJ,OAAO,OAAMof,EAAWgnB,EAC9D,GAAG,KAEP,CAQA,GALKN,GAAqB/e,EAAOpB,KAAK,SAAU5hB,GAG5CgjB,EAAOhwB,OAAOwlC,UAAYxV,EAAOhwB,OAAOsvC,8BAAgCtf,EAAOwV,SAAS+J,OAExF1nC,IAAamoB,EAAOwG,gBAAkB3uB,IAAamoB,EAAOgH,eAAkB,OAAO,CACzF,CACF,KAxI6B,CAE3B,IAAI6X,EAAW,CACb7L,KAAMxX,EAAMI,MACZ6iB,MAAOj+B,KAAK8jB,IAAIma,GAChBrU,UAAW5pB,KAAKs+B,KAAKL,GACrBe,IAAK1vC,GAIHitC,EAAoB/c,EAAO/a,WAAW83B,kBACtCA,EAAkB7tC,QAAU,GAC9B6tC,EAAkBmC,QAEpB,IAAIC,EAAYpC,EAAkB7tC,OAAS6tC,EAAkBA,EAAkB7tC,OAAS,QAAKmpB,EAmB7F,GAlBA0kB,EAAkBtmC,KAAKooC,GAQnBM,GACEN,EAASzU,YAAc+U,EAAU/U,WAAayU,EAASJ,MAAQU,EAAUV,OAASI,EAAS7L,KAAOmM,EAAUnM,KAAO,MACrHhT,EAAO/a,WAAWw6B,cAAcZ,GAGlC7e,EAAO/a,WAAWw6B,cAAcZ,GAK9B7e,EAAO/a,WAAWy6B,cAAcb,GAClC,OAAO,CAEX,CAwGA,OAFI7hC,EAAEjN,eAAkBiN,EAAEjN,iBACnBiN,EAAE2iC,aAAc,GAChB,CACT,EACAF,cAAe,SAAuBZ,GACpC,IAAI7e,EAAS3wB,KAIb,OAAIwvC,EAASJ,OAAS,GAAKjjB,EAAMI,MAAQoE,EAAO/a,WAAW43B,eAAiB,KAgBxEgC,EAASzU,UAAY,EACjBpK,EAAOkH,QAASlH,EAAOhwB,OAAO83B,MAAU9H,EAAO2J,YACnD3J,EAAO6K,YACP7K,EAAOpB,KAAK,SAAUigB,EAASW,MAEtBxf,EAAOiH,cAAejH,EAAOhwB,OAAO83B,MAAU9H,EAAO2J,YAChE3J,EAAOiL,YACPjL,EAAOpB,KAAK,SAAUigB,EAASW,MAGjCxf,EAAO/a,WAAW43B,gBAAiB,IAAKrnB,EAAIS,MAAQ2pB,WAE7C,EACT,EACAF,cAAe,SAAuBb,GACpC,IAAI7e,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAAOiV,WAC3B,GAAI45B,EAASzU,UAAY,GACvB,GAAIpK,EAAOkH,QAAUlH,EAAOhwB,OAAO83B,MAAQ93B,EAAOwuC,eAEhD,OAAO,OAEJ,GAAIxe,EAAOiH,cAAgBjH,EAAOhwB,OAAO83B,MAAQ93B,EAAOwuC,eAE7D,OAAO,EAET,OAAO,CACT,EACAxrB,OAAQ,WACN,IAAIgN,EAAS3wB,KACTS,EAAQ8sC,GAAW9sC,QACvB,GAAIkwB,EAAOhwB,OAAOyxB,QAEhB,OADAzB,EAAOoJ,UAAU5U,oBAAoB1kB,EAAOkwB,EAAO/a,WAAWq5B,SACvD,EAET,IAAKxuC,EAAS,OAAO,EACrB,GAAIkwB,EAAO/a,WAAW8b,QAAW,OAAO,EACxC,IAAItoB,EAASunB,EAAOC,IAQpB,MAP8C,cAA1CD,EAAOhwB,OAAOiV,WAAWs5B,eAC3B9lC,EAASzK,EAAEgyB,EAAOhwB,OAAOiV,WAAWs5B,eAEtC9lC,EAAOrJ,GAAG,aAAc4wB,EAAO/a,WAAWk5B,kBAC1C1lC,EAAOrJ,GAAG,aAAc4wB,EAAO/a,WAAWo5B,kBAC1C5lC,EAAOrJ,GAAGU,EAAOkwB,EAAO/a,WAAWq5B,QACnCte,EAAO/a,WAAW8b,SAAU,GACrB,CACT,EACA8e,QAAS,WACP,IAAI7f,EAAS3wB,KACTS,EAAQ8sC,GAAW9sC,QACvB,GAAIkwB,EAAOhwB,OAAOyxB,QAEhB,OADAzB,EAAOoJ,UAAU7U,iBAAiBzkB,EAAOkwB,EAAO/a,WAAWq5B,SACpD,EAET,IAAKxuC,EAAS,OAAO,EACrB,IAAKkwB,EAAO/a,WAAW8b,QAAW,OAAO,EACzC,IAAItoB,EAASunB,EAAOC,IAMpB,MAL8C,cAA1CD,EAAOhwB,OAAOiV,WAAWs5B,eAC3B9lC,EAASzK,EAAEgyB,EAAOhwB,OAAOiV,WAAWs5B,eAEtC9lC,EAAOyO,IAAIpX,EAAOkwB,EAAO/a,WAAWq5B,QACpCte,EAAO/a,WAAW8b,SAAU,GACrB,CACT,GAmDE2iD,GAAa,CACf78D,OAAQ,WAEN,IAAImZ,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAAOklC,WAE3B,IAAIlV,EAAOhwB,OAAO83B,KAAlB,CACA,IAAIw4C,EAAMtgD,EAAOkV,WACbyuC,EAAUrD,EAAIqD,QACdC,EAAUtD,EAAIsD,QAEdA,GAAWA,EAAQ10E,OAAS,IAC1B8wB,EAAOiH,YACT28C,EAAQn1E,SAASuB,EAAO6zE,eAExBD,EAAQp1E,YAAYwB,EAAO6zE,eAE7BD,EAAQ5jD,EAAOhwB,OAAOo1B,eAAiBpF,EAAO2M,SAAW,WAAa,eAAe38B,EAAO8zE,YAE1FH,GAAWA,EAAQz0E,OAAS,IAC1B8wB,EAAOkH,MACTy8C,EAAQl1E,SAASuB,EAAO6zE,eAExBF,EAAQn1E,YAAYwB,EAAO6zE,eAE7BF,EAAQ3jD,EAAOhwB,OAAOo1B,eAAiBpF,EAAO2M,SAAW,WAAa,eAAe38B,EAAO8zE,WAnB5D,CAqBpC,EACAC,YAAa,SAAqB/mE,GAChC,IAAIgjB,EAAS3wB,KACb2N,EAAEjN,iBACEiwB,EAAOiH,cAAgBjH,EAAOhwB,OAAO83B,MACzC9H,EAAOiL,WACT,EACA+4C,YAAa,SAAqBhnE,GAChC,IAAIgjB,EAAS3wB,KACb2N,EAAEjN,iBACEiwB,EAAOkH,QAAUlH,EAAOhwB,OAAO83B,MACnC9H,EAAO6K,WACT,EACA+N,KAAM,WACJ,IAII+qC,EACAC,EALA5jD,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAAOklC,YACrBllC,EAAOmlC,QAAUnlC,EAAOolC,UAI1BplC,EAAOmlC,SACTwuC,EAAU31E,EAAEgC,EAAOmlC,QAEjBnV,EAAOhwB,OAAO6oC,mBACc,iBAAlB7oC,EAAOmlC,QACdwuC,EAAQz0E,OAAS,GACyB,IAA1C8wB,EAAOC,IAAI5xB,KAAK2B,EAAOmlC,QAAQjmC,SAElCy0E,EAAU3jD,EAAOC,IAAI5xB,KAAK2B,EAAOmlC,UAGjCnlC,EAAOolC,SACTwuC,EAAU51E,EAAEgC,EAAOolC,QAEjBpV,EAAOhwB,OAAO6oC,mBACc,iBAAlB7oC,EAAOolC,QACdwuC,EAAQ10E,OAAS,GACyB,IAA1C8wB,EAAOC,IAAI5xB,KAAK2B,EAAOolC,QAAQlmC,SAElC00E,EAAU5jD,EAAOC,IAAI5xB,KAAK2B,EAAOolC,UAIjCuuC,GAAWA,EAAQz0E,OAAS,GAC9By0E,EAAQv0E,GAAG,QAAS4wB,EAAOkV,WAAW8uC,aAEpCJ,GAAWA,EAAQ10E,OAAS,GAC9B00E,EAAQx0E,GAAG,QAAS4wB,EAAOkV,WAAW6uC,aAGxCvoD,EAAMpnB,OAAO4rB,EAAOkV,WAAY,CAC9ByuC,QAASA,EACTxuC,OAAQwuC,GAAWA,EAAQ,GAC3BC,QAASA,EACTxuC,OAAQwuC,GAAWA,EAAQ,KAE/B,EACAv+D,QAAS,WACP,IAAI2a,EAAS3wB,KACTixE,EAAMtgD,EAAOkV,WACbyuC,EAAUrD,EAAIqD,QACdC,EAAUtD,EAAIsD,QACdD,GAAWA,EAAQz0E,SACrBy0E,EAAQz8D,IAAI,QAAS8Y,EAAOkV,WAAW8uC,aACvCL,EAAQn1E,YAAYwxB,EAAOhwB,OAAOklC,WAAW2uC,gBAE3CD,GAAWA,EAAQ10E,SACrB00E,EAAQ18D,IAAI,QAAS8Y,EAAOkV,WAAW6uC,aACvCH,EAAQp1E,YAAYwxB,EAAOhwB,OAAOklC,WAAW2uC,eAEjD,GA8EEI,GAAa,CACfp9D,OAAQ,WAEN,IAAImZ,EAAS3wB,KACTsxB,EAAMX,EAAOW,IACb3wB,EAASgwB,EAAOhwB,OAAO6b,WAC3B,GAAK7b,EAAO8K,IAAOklB,EAAOnU,WAAW/Q,IAAOklB,EAAOnU,WAAWoU,KAAwC,IAAjCD,EAAOnU,WAAWoU,IAAI/wB,OAA3F,CACA,IAGIwU,EAHAyd,EAAenB,EAAOc,SAAWd,EAAOhwB,OAAO8wB,QAAQC,QAAUf,EAAOc,QAAQG,OAAO/xB,OAAS8wB,EAAOiB,OAAO/xB,OAC9G+wB,EAAMD,EAAOnU,WAAWoU,IAGxBikD,EAAQlkD,EAAOhwB,OAAO83B,KAAOtnB,KAAKmiB,MAAMxB,EAAsC,EAAtBnB,EAAO4K,cAAqB5K,EAAOhwB,OAAOqzB,gBAAkBrD,EAAOoB,SAASlyB,OAcxI,GAbI8wB,EAAOhwB,OAAO83B,OAChBpkB,EAAUlD,KAAKmiB,MAAM3C,EAAO8F,YAAc9F,EAAO4K,cAAgB5K,EAAOhwB,OAAOqzB,iBACjElC,EAAe,EAA2B,EAAtBnB,EAAO4K,eACvClnB,GAAYyd,EAAsC,EAAtBnB,EAAO4K,cAEjClnB,EAAUwgE,EAAQ,IAAKxgE,GAAWwgE,GAClCxgE,EAAU,GAAsC,YAAjCsc,EAAOhwB,OAAOm0E,iBAAgCzgE,EAAUwgE,EAAQxgE,IAEnFA,OADqC,IAArBsc,EAAOmF,UACbnF,EAAOmF,UAEPnF,EAAO8F,aAAe,EAGd,YAAhB91B,EAAOM,MAAsB0vB,EAAOnU,WAAWu4D,SAAWpkD,EAAOnU,WAAWu4D,QAAQl1E,OAAS,EAAG,CAClG,IACIm1E,EACAC,EACAC,EAHAH,EAAUpkD,EAAOnU,WAAWu4D,QAoBhC,GAhBIp0E,EAAOw0E,iBACTxkD,EAAOnU,WAAW44D,WAAaL,EAAQp/D,GAAG,GAAGgb,EAAOI,eAAiB,aAAe,gBAAe,GACnGH,EAAI3X,IAAI0X,EAAOI,eAAiB,QAAU,SAAYJ,EAAOnU,WAAW44D,YAAcz0E,EAAO00E,mBAAqB,GAAM,MACpH10E,EAAO00E,mBAAqB,QAA8BrsD,IAAzB2H,EAAOoI,gBAC1CpI,EAAOnU,WAAW84D,oBAAuBjhE,EAAUsc,EAAOoI,cACtDpI,EAAOnU,WAAW84D,mBAAsB30E,EAAO00E,mBAAqB,EACtE1kD,EAAOnU,WAAW84D,mBAAqB30E,EAAO00E,mBAAqB,EAC1D1kD,EAAOnU,WAAW84D,mBAAqB,IAChD3kD,EAAOnU,WAAW84D,mBAAqB,IAG3CN,EAAa3gE,EAAUsc,EAAOnU,WAAW84D,mBAEzCJ,IADAD,EAAYD,GAAc7jE,KAAKijB,IAAI2gD,EAAQl1E,OAAQc,EAAO00E,oBAAsB,IACxDL,GAAc,GAExCD,EAAQ51E,YAAcwB,EAAwB,kBAAI,IAAOA,EAAwB,kBAAI,SAAYA,EAAwB,kBAAI,cAAiBA,EAAwB,kBAAI,SAAYA,EAAwB,kBAAI,cAAiBA,EAAwB,kBAAI,SAC3PiwB,EAAI/wB,OAAS,EACfk1E,EAAQrxE,MAAK,SAAU8H,EAAO+pE,GAC5B,IAAIC,EAAU72E,EAAE42E,GACZE,EAAcD,EAAQhqE,QACtBiqE,IAAgBphE,GAClBmhE,EAAQp2E,SAASuB,EAAO+0E,mBAEtB/0E,EAAOw0E,iBACLM,GAAeT,GAAcS,GAAeR,GAC9CO,EAAQp2E,SAAWuB,EAAwB,kBAAI,SAE7C80E,IAAgBT,GAClBQ,EACG/pD,OACArsB,SAAWuB,EAAwB,kBAAI,SACvC8qB,OACArsB,SAAWuB,EAAwB,kBAAI,cAExC80E,IAAgBR,GAClBO,EACGnqD,OACAjsB,SAAWuB,EAAwB,kBAAI,SACvC0qB,OACAjsB,SAAWuB,EAAwB,kBAAI,cAGhD,QACK,CACL,IAAI60E,EAAUT,EAAQp/D,GAAGtB,GACrBohE,EAAcD,EAAQhqE,QAE1B,GADAgqE,EAAQp2E,SAASuB,EAAO+0E,mBACpB/0E,EAAOw0E,eAAgB,CAGzB,IAFA,IAAIQ,EAAwBZ,EAAQp/D,GAAGq/D,GACnCY,EAAuBb,EAAQp/D,GAAGs/D,GAC7BjpE,EAAIgpE,EAAYhpE,GAAKipE,EAAWjpE,GAAK,EAC5C+oE,EAAQp/D,GAAG3J,GAAG5M,SAAWuB,EAAwB,kBAAI,SAEvD,GAAIgwB,EAAOhwB,OAAO83B,KAChB,GAAIg9C,GAAeV,EAAQl1E,OAASc,EAAO00E,mBAAoB,CAC7D,IAAK,IAAI9E,EAAM5vE,EAAO00E,mBAAoB9E,GAAO,EAAGA,GAAO,EACzDwE,EAAQp/D,GAAGo/D,EAAQl1E,OAAS0wE,GAAKnxE,SAAWuB,EAAwB,kBAAI,SAE1Eo0E,EAAQp/D,GAAGo/D,EAAQl1E,OAASc,EAAO00E,mBAAqB,GAAGj2E,SAAWuB,EAAwB,kBAAI,QACpG,MACEg1E,EACGlqD,OACArsB,SAAWuB,EAAwB,kBAAI,SACvC8qB,OACArsB,SAAWuB,EAAwB,kBAAI,cAC1Ci1E,EACGvqD,OACAjsB,SAAWuB,EAAwB,kBAAI,SACvC0qB,OACAjsB,SAAWuB,EAAwB,kBAAI,mBAG5Cg1E,EACGlqD,OACArsB,SAAWuB,EAAwB,kBAAI,SACvC8qB,OACArsB,SAAWuB,EAAwB,kBAAI,cAC1Ci1E,EACGvqD,OACAjsB,SAAWuB,EAAwB,kBAAI,SACvC0qB,OACAjsB,SAAWuB,EAAwB,kBAAI,aAE9C,CACF,CACA,GAAIA,EAAOw0E,eAAgB,CACzB,IAAIU,EAAuB1kE,KAAKijB,IAAI2gD,EAAQl1E,OAAQc,EAAO00E,mBAAqB,GAC5ES,GAAmBnlD,EAAOnU,WAAW44D,WAAaS,EAAyBllD,EAAOnU,WAAqB,YAAK,EAAM04D,EAAWvkD,EAAOnU,WAAW44D,WAC/IrX,EAAazsC,EAAM,QAAU,OACjCyjD,EAAQ97D,IAAI0X,EAAOI,eAAiBgtC,EAAa,MAAQ+X,EAAgB,KAC3E,CACF,CAKA,GAJoB,aAAhBn1E,EAAOM,OACT2vB,EAAI5xB,KAAM,IAAO2B,EAAmB,cAAI1B,KAAK0B,EAAOo1E,sBAAsB1hE,EAAU,IACpFuc,EAAI5xB,KAAM,IAAO2B,EAAiB,YAAI1B,KAAK0B,EAAOq1E,oBAAoBnB,KAEpD,gBAAhBl0E,EAAOM,KAAwB,CACjC,IAAIg1E,EAEFA,EADEt1E,EAAOu1E,oBACcvlD,EAAOI,eAAiB,WAAa,aAErCJ,EAAOI,eAAiB,aAAe,WAEhE,IAAIogB,GAAS98B,EAAU,GAAKwgE,EACxBsB,EAAS,EACTC,EAAS,EACgB,eAAzBH,EACFE,EAAShlC,EAETilC,EAASjlC,EAEXvgB,EAAI5xB,KAAM,IAAO2B,EAA2B,sBAAIsnB,UAAW,6BAA+BkuD,EAAS,YAAcC,EAAS,KAAMhuE,WAAWuoB,EAAOhwB,OAAOiJ,MAC3J,CACoB,WAAhBjJ,EAAOM,MAAqBN,EAAO01E,cACrCzlD,EAAIxtB,KAAKzC,EAAO01E,aAAa1lD,EAAQtc,EAAU,EAAGwgE,IAClDlkD,EAAOpB,KAAK,mBAAoBoB,EAAQC,EAAI,KAE5CD,EAAOpB,KAAK,mBAAoBoB,EAAQC,EAAI,IAE9CA,EAAID,EAAOhwB,OAAOo1B,eAAiBpF,EAAO2M,SAAW,WAAa,eAAe38B,EAAO8zE,UA/I2B,CAgJrH,EACArhE,OAAQ,WAEN,IAAIud,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAAO6b,WAC3B,GAAK7b,EAAO8K,IAAOklB,EAAOnU,WAAW/Q,IAAOklB,EAAOnU,WAAWoU,KAAwC,IAAjCD,EAAOnU,WAAWoU,IAAI/wB,OAA3F,CACA,IAAIiyB,EAAenB,EAAOc,SAAWd,EAAOhwB,OAAO8wB,QAAQC,QAAUf,EAAOc,QAAQG,OAAO/xB,OAAS8wB,EAAOiB,OAAO/xB,OAE9G+wB,EAAMD,EAAOnU,WAAWoU,IACxB0lD,EAAiB,GACrB,GAAoB,YAAhB31E,EAAOM,KAAoB,CAE7B,IADA,IAAIs1E,EAAkB5lD,EAAOhwB,OAAO83B,KAAOtnB,KAAKmiB,MAAMxB,EAAsC,EAAtBnB,EAAO4K,cAAqB5K,EAAOhwB,OAAOqzB,gBAAkBrD,EAAOoB,SAASlyB,OACzImM,EAAI,EAAGA,EAAIuqE,EAAiBvqE,GAAK,EACpCrL,EAAO61E,aACTF,GAAkB31E,EAAO61E,aAAahmE,KAAKmgB,EAAQ3kB,EAAGrL,EAAO81E,aAE7DH,GAAkB,IAAO31E,EAAoB,cAAI,WAAeA,EAAkB,YAAI,OAAWA,EAAoB,cAAI,IAG7HiwB,EAAIxtB,KAAKkzE,GACT3lD,EAAOnU,WAAWu4D,QAAUnkD,EAAI5xB,KAAM,IAAO2B,EAAkB,YACjE,CACoB,aAAhBA,EAAOM,OAEPq1E,EADE31E,EAAO+1E,eACQ/1E,EAAO+1E,eAAelmE,KAAKmgB,EAAQhwB,EAAOg2E,aAAch2E,EAAOi2E,YAE/D,gBAAoBj2E,EAAmB,aAAvC,4BAEKA,EAAiB,WAAI,YAE7CiwB,EAAIxtB,KAAKkzE,IAES,gBAAhB31E,EAAOM,OAEPq1E,EADE31E,EAAOk2E,kBACQl2E,EAAOk2E,kBAAkBrmE,KAAKmgB,EAAQhwB,EAAOm2E,sBAE7C,gBAAoBn2E,EAA2B,qBAAI,YAEtEiwB,EAAIxtB,KAAKkzE,IAES,WAAhB31E,EAAOM,MACT0vB,EAAOpB,KAAK,mBAAoBoB,EAAOnU,WAAWoU,IAAI,GApC2D,CAsCrH,EACA2Y,KAAM,WACJ,IAAI5Y,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAAO6b,WAC3B,GAAK7b,EAAO8K,GAAZ,CAEA,IAAImlB,EAAMjyB,EAAEgC,EAAO8K,IACA,IAAfmlB,EAAI/wB,SAGN8wB,EAAOhwB,OAAO6oC,mBACU,iBAAd7oC,EAAO8K,IACdmlB,EAAI/wB,OAAS,IAEhB+wB,EAAMD,EAAOC,IAAI5xB,KAAK2B,EAAO8K,KAGX,YAAhB9K,EAAOM,MAAsBN,EAAOywC,WACtCxgB,EAAIxxB,SAASuB,EAAOo2E,gBAGtBnmD,EAAIxxB,SAASuB,EAAOq2E,cAAgBr2E,EAAOM,MAEvB,YAAhBN,EAAOM,MAAsBN,EAAOw0E,iBACtCvkD,EAAIxxB,SAAU,GAAMuB,EAAoB,cAAKA,EAAW,KAAI,YAC5DgwB,EAAOnU,WAAW84D,mBAAqB,EACnC30E,EAAO00E,mBAAqB,IAC9B10E,EAAO00E,mBAAqB,IAGZ,gBAAhB10E,EAAOM,MAA0BN,EAAOu1E,qBAC1CtlD,EAAIxxB,SAASuB,EAAOs2E,0BAGlBt2E,EAAOywC,WACTxgB,EAAI7wB,GAAG,QAAU,IAAOY,EAAkB,aAAI,SAAiBgN,GAC7DA,EAAEjN,iBACF,IAAI8K,EAAQ7M,EAAEqB,MAAMwL,QAAUmlB,EAAOhwB,OAAOqzB,eACxCrD,EAAOhwB,OAAO83B,OAAQjtB,GAASmlB,EAAO4K,cAC1C5K,EAAOqK,QAAQxvB,EACjB,IAGF2gB,EAAMpnB,OAAO4rB,EAAOnU,WAAY,CAC9BoU,IAAKA,EACLnlB,GAAImlB,EAAI,KAzCgB,CA2C5B,EACA5a,QAAS,WACP,IAAI2a,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAAO6b,WAC3B,GAAK7b,EAAO8K,IAAOklB,EAAOnU,WAAW/Q,IAAOklB,EAAOnU,WAAWoU,KAAwC,IAAjCD,EAAOnU,WAAWoU,IAAI/wB,OAA3F,CACA,IAAI+wB,EAAMD,EAAOnU,WAAWoU,IAE5BA,EAAIzxB,YAAYwB,EAAOu2E,aACvBtmD,EAAIzxB,YAAYwB,EAAOq2E,cAAgBr2E,EAAOM,MAC1C0vB,EAAOnU,WAAWu4D,SAAWpkD,EAAOnU,WAAWu4D,QAAQ51E,YAAYwB,EAAO+0E,mBAC1E/0E,EAAOywC,WACTxgB,EAAI/Y,IAAI,QAAU,IAAOlX,EAAkB,YAPsE,CASrH,GAwGEw2E,GAAY,CACdt9C,aAAc,WACZ,IAAIlJ,EAAS3wB,KACb,GAAK2wB,EAAOhwB,OAAOy2E,UAAU3rE,IAAOklB,EAAOymD,UAAU3rE,GAArD,CACA,IAAI2rE,EAAYzmD,EAAOymD,UACnB9lD,EAAMX,EAAOU,aACbkG,EAAW5G,EAAO4G,SAClB8/C,EAAWD,EAAUC,SACrBC,EAAYF,EAAUE,UACtBC,EAAUH,EAAUG,QACpB3mD,EAAMwmD,EAAUxmD,IAChBjwB,EAASgwB,EAAOhwB,OAAOy2E,UAEvBI,EAAUH,EACVI,GAAUH,EAAYD,GAAY9/C,EAClCjG,GACFmmD,GAAUA,GACG,GACXD,EAAUH,EAAWI,EACrBA,EAAS,IACCA,EAASJ,EAAWC,IAC9BE,EAAUF,EAAYG,GAEfA,EAAS,GAClBD,EAAUH,EAAWI,EACrBA,EAAS,GACAA,EAASJ,EAAWC,IAC7BE,EAAUF,EAAYG,GAEpB9mD,EAAOI,gBACTwmD,EAAQtvD,UAAW,eAAiBwvD,EAAS,aAC7CF,EAAQ,GAAG3lE,MAAM3I,MAAQuuE,EAAU,OAEnCD,EAAQtvD,UAAW,oBAAsBwvD,EAAS,UAClDF,EAAQ,GAAG3lE,MAAM5G,OAASwsE,EAAU,MAElC72E,EAAOJ,OACTwa,aAAa4V,EAAOymD,UAAUxnC,SAC9Bhf,EAAI,GAAGhf,MAAMwsD,QAAU,EACvBztC,EAAOymD,UAAUxnC,QAAUplC,YAAW,WACpComB,EAAI,GAAGhf,MAAMwsD,QAAU,EACvBxtC,EAAIxoB,WAAW,IACjB,GAAG,KAvC8D,CAyCrE,EACAmuB,cAAe,SAAuBnO,GACpC,IAAIuI,EAAS3wB,KACR2wB,EAAOhwB,OAAOy2E,UAAU3rE,IAAOklB,EAAOymD,UAAU3rE,IACrDklB,EAAOymD,UAAUG,QAAQnvE,WAAWggB,EACtC,EACAsI,WAAY,WACV,IAAIC,EAAS3wB,KACb,GAAK2wB,EAAOhwB,OAAOy2E,UAAU3rE,IAAOklB,EAAOymD,UAAU3rE,GAArD,CAEA,IAAI2rE,EAAYzmD,EAAOymD,UACnBG,EAAUH,EAAUG,QACpB3mD,EAAMwmD,EAAUxmD,IAEpB2mD,EAAQ,GAAG3lE,MAAM3I,MAAQ,GACzBsuE,EAAQ,GAAG3lE,MAAM5G,OAAS,GAC1B,IAIIqsE,EAJAC,EAAY3mD,EAAOI,eAAiBH,EAAI,GAAGzG,YAAcyG,EAAI,GAAGvG,aAEhEqtD,EAAU/mD,EAAOM,KAAON,EAAOqC,YAC/B2kD,EAAcD,GAAWJ,EAAY3mD,EAAOM,MAG9ComD,EADuC,SAArC1mD,EAAOhwB,OAAOy2E,UAAUC,SACfC,EAAYI,EAEZjzE,SAASksB,EAAOhwB,OAAOy2E,UAAUC,SAAU,IAGpD1mD,EAAOI,eACTwmD,EAAQ,GAAG3lE,MAAM3I,MAAQouE,EAAW,KAEpCE,EAAQ,GAAG3lE,MAAM5G,OAASqsE,EAAW,KAIrCzmD,EAAI,GAAGhf,MAAMqE,QADXyhE,GAAW,EACU,OAEA,GAErB/mD,EAAOhwB,OAAOy2E,UAAU72E,OAC1BqwB,EAAI,GAAGhf,MAAMwsD,QAAU,GAEzBjyC,EAAMpnB,OAAOqyE,EAAW,CACtBE,UAAWA,EACXI,QAASA,EACTC,YAAaA,EACbN,SAAUA,IAEZD,EAAUxmD,IAAID,EAAOhwB,OAAOo1B,eAAiBpF,EAAO2M,SAAW,WAAa,eAAe3M,EAAOhwB,OAAOy2E,UAAU3C,UAvChD,CAwCrE,EACAmD,mBAAoB,SAA4BjqE,GAE9C,OADa3N,KACF+wB,eACW,eAAXpjB,EAAE1M,MAAoC,cAAX0M,EAAE1M,KAAwB0M,EAAEqzB,cAAc,GAAGi2B,QAAUtpD,EAAEspD,QAE3E,eAAXtpD,EAAE1M,MAAoC,cAAX0M,EAAE1M,KAAwB0M,EAAEqzB,cAAc,GAAGk2B,QAAUvpD,EAAEupD,OAC/F,EACA2gB,gBAAiB,SAAyBlqE,GACxC,IAQImqE,EARAnnD,EAAS3wB,KACTo3E,EAAYzmD,EAAOymD,UACnB9lD,EAAMX,EAAOU,aACbT,EAAMwmD,EAAUxmD,IAChBymD,EAAWD,EAAUC,SACrBC,EAAYF,EAAUE,UACtBS,EAAeX,EAAUW,aAG7BD,GAAkBV,EAAUQ,mBAAmBjqE,GAAMijB,EAAIloB,SAASioB,EAAOI,eAAiB,OAAS,QAC7E,OAAjBgnD,EAAwBA,EAAeV,EAAW,KAAOC,EAAYD,GAC1ES,EAAgB3mE,KAAKsiB,IAAItiB,KAAKijB,IAAI0jD,EAAe,GAAI,GACjDxmD,IACFwmD,EAAgB,EAAIA,GAGtB,IAAItvE,EAAWmoB,EAAOwG,gBAAmBxG,EAAOgH,eAAiBhH,EAAOwG,gBAAkB2gD,EAE1FnnD,EAAO6G,eAAehvB,GACtBmoB,EAAOkJ,aAAarxB,GACpBmoB,EAAOkI,oBACPlI,EAAOqH,qBACT,EACAggD,YAAa,SAAqBrqE,GAChC,IAAIgjB,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAAOy2E,UACvBA,EAAYzmD,EAAOymD,UACnBjmD,EAAaR,EAAOQ,WACpBP,EAAMwmD,EAAUxmD,IAChB2mD,EAAUH,EAAUG,QACxB5mD,EAAOymD,UAAU52C,WAAY,EAC7B7P,EAAOymD,UAAUW,aAAgBpqE,EAAEvE,SAAWmuE,EAAQ,IAAM5pE,EAAEvE,SAAWmuE,EACrEH,EAAUQ,mBAAmBjqE,GAAKA,EAAEvE,OAAOmhB,wBAAwBoG,EAAOI,eAAiB,OAAS,OAAS,KACjHpjB,EAAEjN,iBACFiN,EAAEmI,kBAEFqb,EAAW/oB,WAAW,KACtBmvE,EAAQnvE,WAAW,KACnBgvE,EAAUS,gBAAgBlqE,GAE1BoN,aAAa4V,EAAOymD,UAAUa,aAE9BrnD,EAAIxoB,WAAW,GACXzH,EAAOJ,MACTqwB,EAAI3X,IAAI,UAAW,GAEjB0X,EAAOhwB,OAAOyxB,SAChBzB,EAAOQ,WAAWlY,IAAI,mBAAoB,QAE5C0X,EAAOpB,KAAK,qBAAsB5hB,EACpC,EACAuqE,WAAY,SAAoBvqE,GAC9B,IAAIgjB,EAAS3wB,KACTo3E,EAAYzmD,EAAOymD,UACnBjmD,EAAaR,EAAOQ,WACpBP,EAAMwmD,EAAUxmD,IAChB2mD,EAAUH,EAAUG,QAEnB5mD,EAAOymD,UAAU52C,YAClB7yB,EAAEjN,eAAkBiN,EAAEjN,iBACnBiN,EAAE2iC,aAAc,EACvB8mC,EAAUS,gBAAgBlqE,GAC1BwjB,EAAW/oB,WAAW,GACtBwoB,EAAIxoB,WAAW,GACfmvE,EAAQnvE,WAAW,GACnBuoB,EAAOpB,KAAK,oBAAqB5hB,GACnC,EACAwqE,UAAW,SAAmBxqE,GAC5B,IAAIgjB,EAAS3wB,KAETW,EAASgwB,EAAOhwB,OAAOy2E,UACvBA,EAAYzmD,EAAOymD,UACnBjmD,EAAaR,EAAOQ,WACpBP,EAAMwmD,EAAUxmD,IAEfD,EAAOymD,UAAU52C,YACtB7P,EAAOymD,UAAU52C,WAAY,EACzB7P,EAAOhwB,OAAOyxB,UAChBzB,EAAOQ,WAAWlY,IAAI,mBAAoB,IAC1CkY,EAAW/oB,WAAW,KAEpBzH,EAAOJ,OACTwa,aAAa4V,EAAOymD,UAAUa,aAC9BtnD,EAAOymD,UAAUa,YAAc9rD,EAAMG,UAAS,WAC5CsE,EAAI3X,IAAI,UAAW,GACnB2X,EAAIxoB,WAAW,IACjB,GAAG,MAELuoB,EAAOpB,KAAK,mBAAoB5hB,GAC5BhN,EAAOy3E,eACTznD,EAAOuL,iBAEX,EACAm8C,gBAAiB,WACf,IAAI1nD,EAAS3wB,KACb,GAAK2wB,EAAOhwB,OAAOy2E,UAAU3rE,GAA7B,CACA,IAAI2rE,EAAYzmD,EAAOymD,UACnBvsC,EAAmBla,EAAOka,iBAC1BC,EAAqBna,EAAOma,mBAC5BnqC,EAASgwB,EAAOhwB,OAEhByI,EADMguE,EAAUxmD,IACH,GACb0nD,KAAiBpqD,EAAQO,kBAAmB9tB,EAAOumC,mBAAmB,CAAEC,SAAS,EAAOze,SAAS,GACjG+F,KAAkBP,EAAQO,kBAAmB9tB,EAAOumC,mBAAmB,CAAEC,SAAS,EAAMze,SAAS,GAChGwF,EAAQC,OAKX/kB,EAAO8b,iBAAiB2lB,EAAiB7D,MAAOrW,EAAOymD,UAAUY,YAAaM,GAC9ElvE,EAAO8b,iBAAiB2lB,EAAiB5D,KAAMtW,EAAOymD,UAAUc,WAAYI,GAC5ElvE,EAAO8b,iBAAiB2lB,EAAiB3rC,IAAKyxB,EAAOymD,UAAUe,UAAW1pD,KAN1ErlB,EAAO8b,iBAAiB4lB,EAAmB9D,MAAOrW,EAAOymD,UAAUY,YAAaM,GAChFtzD,EAAIE,iBAAiB4lB,EAAmB7D,KAAMtW,EAAOymD,UAAUc,WAAYI,GAC3EtzD,EAAIE,iBAAiB4lB,EAAmB5rC,IAAKyxB,EAAOymD,UAAUe,UAAW1pD,GAZhC,CAkB7C,EACA8pD,iBAAkB,WAChB,IAAI5nD,EAAS3wB,KACb,GAAK2wB,EAAOhwB,OAAOy2E,UAAU3rE,GAA7B,CACA,IAAI2rE,EAAYzmD,EAAOymD,UACnBvsC,EAAmBla,EAAOka,iBAC1BC,EAAqBna,EAAOma,mBAC5BnqC,EAASgwB,EAAOhwB,OAEhByI,EADMguE,EAAUxmD,IACH,GACb0nD,KAAiBpqD,EAAQO,kBAAmB9tB,EAAOumC,mBAAmB,CAAEC,SAAS,EAAOze,SAAS,GACjG+F,KAAkBP,EAAQO,kBAAmB9tB,EAAOumC,mBAAmB,CAAEC,SAAS,EAAMze,SAAS,GAChGwF,EAAQC,OAKX/kB,EAAO+b,oBAAoB0lB,EAAiB7D,MAAOrW,EAAOymD,UAAUY,YAAaM,GACjFlvE,EAAO+b,oBAAoB0lB,EAAiB5D,KAAMtW,EAAOymD,UAAUc,WAAYI,GAC/ElvE,EAAO+b,oBAAoB0lB,EAAiB3rC,IAAKyxB,EAAOymD,UAAUe,UAAW1pD,KAN7ErlB,EAAO+b,oBAAoB2lB,EAAmB9D,MAAOrW,EAAOymD,UAAUY,YAAaM,GACnFtzD,EAAIG,oBAAoB2lB,EAAmB7D,KAAMtW,EAAOymD,UAAUc,WAAYI,GAC9EtzD,EAAIG,oBAAoB2lB,EAAmB5rC,IAAKyxB,EAAOymD,UAAUe,UAAW1pD,GAZnC,CAkB7C,EACA8a,KAAM,WACJ,IAAI5Y,EAAS3wB,KACb,GAAK2wB,EAAOhwB,OAAOy2E,UAAU3rE,GAA7B,CACA,IAAI2rE,EAAYzmD,EAAOymD,UACnBoB,EAAY7nD,EAAOC,IACnBjwB,EAASgwB,EAAOhwB,OAAOy2E,UAEvBxmD,EAAMjyB,EAAEgC,EAAO8K,IACfklB,EAAOhwB,OAAO6oC,mBAA0C,iBAAd7oC,EAAO8K,IAAmBmlB,EAAI/wB,OAAS,GAA0C,IAArC24E,EAAUx5E,KAAK2B,EAAO8K,IAAI5L,SAClH+wB,EAAM4nD,EAAUx5E,KAAK2B,EAAO8K,KAG9B,IAAI8rE,EAAU3mD,EAAI5xB,KAAM,IAAO2xB,EAAOhwB,OAAOy2E,UAAmB,WACzC,IAAnBG,EAAQ13E,SACV03E,EAAU54E,EAAG,eAAmBgyB,EAAOhwB,OAAOy2E,UAAmB,UAAI,YACrExmD,EAAIvqB,OAAOkxE,IAGbprD,EAAMpnB,OAAOqyE,EAAW,CACtBxmD,IAAKA,EACLnlB,GAAImlB,EAAI,GACR2mD,QAASA,EACTkB,OAAQlB,EAAQ,KAGd52E,EAAO0wC,WACT+lC,EAAUiB,iBAxB+B,CA0B7C,EACAriE,QAAS,WACMhW,KACNo3E,UAAUmB,kBACnB,GAwEEG,GAAW,CACbC,aAAc,SAAsBltE,EAAI8rB,GACtC,IAAI5G,EAAS3wB,KACTsxB,EAAMX,EAAOW,IAEbV,EAAMjyB,EAAE8M,GACR4jC,EAAY/d,GAAO,EAAI,EAEvBzjB,EAAI+iB,EAAI7xB,KAAK,yBAA2B,IACxCiQ,EAAI4hB,EAAI7xB,KAAK,0BACbqP,EAAIwiB,EAAI7xB,KAAK,0BACboyC,EAAQvgB,EAAI7xB,KAAK,8BACjBq/D,EAAUxtC,EAAI7xB,KAAK,gCAwBvB,GAtBIiQ,GAAKZ,GACPY,EAAIA,GAAK,IACTZ,EAAIA,GAAK,KACAuiB,EAAOI,gBAChB/hB,EAAInB,EACJO,EAAI,MAEJA,EAAIP,EACJmB,EAAI,KAIJA,EADE,EAAI+D,QAAQ,MAAQ,EACjBtO,SAASuK,EAAG,IAAMuoB,EAAW8X,EAAa,IAE1CrgC,EAAIuoB,EAAW8X,EAAa,KAGjCjhC,EADE,EAAI2E,QAAQ,MAAQ,EACjBtO,SAAS2J,EAAG,IAAMmpB,EAAY,IAE9BnpB,EAAImpB,EAAY,KAGnB,MAAO6mC,EAA6C,CACtD,IAAIwa,EAAiBxa,GAAYA,EAAU,IAAM,EAAIjtD,KAAK8jB,IAAIsC,IAC9D3G,EAAI,GAAGhf,MAAMwsD,QAAUwa,CACzB,CACA,GAAI,MAAOznC,EACTvgB,EAAI3I,UAAW,eAAiBjZ,EAAI,KAAOZ,EAAI,cAC1C,CACL,IAAIyqE,EAAe1nC,GAAUA,EAAQ,IAAM,EAAIhgC,KAAK8jB,IAAIsC,IACxD3G,EAAI3I,UAAW,eAAiBjZ,EAAI,KAAOZ,EAAI,gBAAkByqE,EAAe,IAClF,CACF,EACAh/C,aAAc,WACZ,IAAIlJ,EAAS3wB,KACT4wB,EAAMD,EAAOC,IACbgB,EAASjB,EAAOiB,OAChB2F,EAAW5G,EAAO4G,SAClBxF,EAAWpB,EAAOoB,SACtBnB,EAAIxqB,SAAS,4IACV1C,MAAK,SAAU8H,EAAOC,GACrBklB,EAAOmoD,SAASH,aAAaltE,EAAI8rB,EACnC,IACF3F,EAAOluB,MAAK,SAAUyuB,EAAYoZ,GAChC,IAAIrU,EAAgBqU,EAAQhU,SACxB5G,EAAOhwB,OAAOqzB,eAAiB,GAAqC,SAAhCrD,EAAOhwB,OAAO4yB,gBACpD2D,GAAiB/lB,KAAKmiB,KAAKnB,EAAa,GAAMoF,GAAYxF,EAASlyB,OAAS,IAE9Eq3B,EAAgB/lB,KAAKijB,IAAIjjB,KAAKsiB,IAAIyD,GAAgB,GAAI,GACtDv4B,EAAE4sC,GAASvsC,KAAK,4IACb0E,MAAK,SAAU8H,EAAOC,GACrBklB,EAAOmoD,SAASH,aAAaltE,EAAIyrB,EACnC,GACJ,GACF,EACAX,cAAe,SAAuBnO,QAClB,IAAbA,IAAsBA,EAAWpoB,KAAKW,OAAOiJ,OAErC5J,KACI4wB,IACb5xB,KAAK,4IACN0E,MAAK,SAAU8H,EAAOutE,GACrB,IAAIC,EAAcr6E,EAAEo6E,GAChBE,EAAmBx0E,SAASu0E,EAAYj6E,KAAK,iCAAkC,KAAOqpB,EACzE,IAAbA,IAAkB6wD,EAAmB,GACzCD,EAAY5wE,WAAW6wE,EACzB,GACJ,GA6CEC,GAAO,CAETC,0BAA2B,SAAmCxrE,GAC5D,GAAIA,EAAEqzB,cAAcnhC,OAAS,EAAK,OAAO,EACzC,IAAIu5E,EAAKzrE,EAAEqzB,cAAc,GAAGC,MACxBo4C,EAAK1rE,EAAEqzB,cAAc,GAAGG,MACxBm4C,EAAK3rE,EAAEqzB,cAAc,GAAGC,MACxBs4C,EAAK5rE,EAAEqzB,cAAc,GAAGG,MAE5B,OADehwB,KAAKyxB,KAAMzxB,KAAK4/D,IAAMuI,EAAKF,EAAK,GAAQjoE,KAAK4/D,IAAMwI,EAAKF,EAAK,GAE9E,EAEAG,eAAgB,SAAwB7rE,GACtC,IAAIgjB,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAAO2+D,KACvBA,EAAO3uC,EAAO2uC,KACdma,EAAUna,EAAKma,QAGnB,GAFAna,EAAKoa,oBAAqB,EAC1Bpa,EAAKqa,kBAAmB,GACnBzrD,EAAQW,SAAU,CACrB,GAAe,eAAXlhB,EAAE1M,MAAqC,eAAX0M,EAAE1M,MAAyB0M,EAAEqzB,cAAcnhC,OAAS,EAClF,OAEFy/D,EAAKoa,oBAAqB,EAC1BD,EAAQG,WAAaV,GAAKC,0BAA0BxrE,EACtD,CACK8rE,EAAQlH,UAAakH,EAAQlH,SAAS1yE,SACzC45E,EAAQlH,SAAW5zE,EAAEgP,EAAEvE,QAAQjJ,QAAS,IAAOwwB,EAAOhwB,OAAiB,YACvC,IAA5B84E,EAAQlH,SAAS1yE,SAAgB45E,EAAQlH,SAAW5hD,EAAOiB,OAAOjc,GAAGgb,EAAO8F,cAChFgjD,EAAQI,SAAWJ,EAAQlH,SAASvzE,KAAK,kDACzCy6E,EAAQK,aAAeL,EAAQI,SAAS32E,OAAQ,IAAOvC,EAAqB,gBAC5E84E,EAAQM,SAAWN,EAAQK,aAAa/6E,KAAK,qBAAuB4B,EAAOo5E,SACvC,IAAhCN,EAAQK,aAAaj6E,SAKvB45E,EAAQI,UACVJ,EAAQI,SAASzxE,WAAW,GAE9BuoB,EAAO2uC,KAAK0a,WAAY,GAPpBP,EAAQI,cAAW7wD,CAQzB,EACAixD,gBAAiB,SAAyBtsE,GACxC,IAAIgjB,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAAO2+D,KACvBA,EAAO3uC,EAAO2uC,KACdma,EAAUna,EAAKma,QACnB,IAAKvrD,EAAQW,SAAU,CACrB,GAAe,cAAXlhB,EAAE1M,MAAoC,cAAX0M,EAAE1M,MAAwB0M,EAAEqzB,cAAcnhC,OAAS,EAChF,OAEFy/D,EAAKqa,kBAAmB,EACxBF,EAAQS,UAAYhB,GAAKC,0BAA0BxrE,EACrD,CACK8rE,EAAQI,UAAwC,IAA5BJ,EAAQI,SAASh6E,SACtCquB,EAAQW,SACVywC,EAAKnuB,MAAQxjC,EAAEwjC,MAAQmuB,EAAKuZ,aAE5BvZ,EAAKnuB,MAASsoC,EAAQS,UAAYT,EAAQG,WAActa,EAAKuZ,aAE3DvZ,EAAKnuB,MAAQsoC,EAAQM,WACvBza,EAAKnuB,MAASsoC,EAAQM,SAAW,EAAM5oE,KAAK4/D,IAAOzR,EAAKnuB,MAAQsoC,EAAQM,SAAY,EAAI,KAEtFza,EAAKnuB,MAAQxwC,EAAO2nC,WACtBg3B,EAAKnuB,MAASxwC,EAAO2nC,SAAW,EAAMn3B,KAAK4/D,IAAOpwE,EAAO2nC,SAAWg3B,EAAKnuB,MAAS,EAAI,KAExFsoC,EAAQI,SAAS5xD,UAAW,4BAA+Bq3C,EAAU,MAAI,KAC3E,EACA6a,aAAc,SAAsBxsE,GAClC,IAAIgjB,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAAO2+D,KACvBA,EAAO3uC,EAAO2uC,KACdma,EAAUna,EAAKma,QACnB,IAAKvrD,EAAQW,SAAU,CACrB,IAAKywC,EAAKoa,qBAAuBpa,EAAKqa,iBACpC,OAEF,GAAe,aAAXhsE,EAAE1M,MAAmC,aAAX0M,EAAE1M,MAAuB0M,EAAE40B,eAAe1iC,OAAS,IAAMw+B,GAAOK,QAC5F,OAEF4gC,EAAKoa,oBAAqB,EAC1Bpa,EAAKqa,kBAAmB,CAC1B,CACKF,EAAQI,UAAwC,IAA5BJ,EAAQI,SAASh6E,SAC1Cy/D,EAAKnuB,MAAQhgC,KAAKsiB,IAAItiB,KAAKijB,IAAIkrC,EAAKnuB,MAAOsoC,EAAQM,UAAWp5E,EAAO2nC,UACrEmxC,EAAQI,SAASzxE,WAAWuoB,EAAOhwB,OAAOiJ,OAAOqe,UAAW,4BAA+Bq3C,EAAU,MAAI,KACzGA,EAAKuZ,aAAevZ,EAAKnuB,MACzBmuB,EAAK0a,WAAY,EACE,IAAf1a,EAAKnuB,QAAesoC,EAAQlH,cAAWvpD,GAC7C,EACAiX,aAAc,SAAsBtyB,GAClC,IACI2xD,EADSt/D,KACKs/D,KACdma,EAAUna,EAAKma,QACf7wC,EAAQ02B,EAAK12B,MACZ6wC,EAAQI,UAAwC,IAA5BJ,EAAQI,SAASh6E,SACtC+oC,EAAMpI,YACNnC,GAAOK,SAAW/wB,EAAEgc,YAAchc,EAAEjN,iBACxCkoC,EAAMpI,WAAY,EAClBoI,EAAMwxC,aAAaprE,EAAe,eAAXrB,EAAE1M,KAAwB0M,EAAEqzB,cAAc,GAAGC,MAAQtzB,EAAEszB,MAC9E2H,EAAMwxC,aAAahsE,EAAe,eAAXT,EAAE1M,KAAwB0M,EAAEqzB,cAAc,GAAGG,MAAQxzB,EAAEwzB,OAChF,EACAkB,YAAa,SAAqB10B,GAChC,IAAIgjB,EAAS3wB,KACTs/D,EAAO3uC,EAAO2uC,KACdma,EAAUna,EAAKma,QACf7wC,EAAQ02B,EAAK12B,MACbtE,EAAWg7B,EAAKh7B,SACpB,GAAKm1C,EAAQI,UAAwC,IAA5BJ,EAAQI,SAASh6E,SAC1C8wB,EAAOkQ,YAAa,EACf+H,EAAMpI,WAAci5C,EAAQlH,UAAjC,CAEK3pC,EAAMnI,UACTmI,EAAM3/B,MAAQwwE,EAAQI,SAAS,GAAG1vD,YAClCye,EAAM59B,OAASyuE,EAAQI,SAAS,GAAGxvD,aACnCue,EAAMxH,OAASjV,EAAMK,aAAaitD,EAAQK,aAAa,GAAI,MAAQ,EACnElxC,EAAMvH,OAASlV,EAAMK,aAAaitD,EAAQK,aAAa,GAAI,MAAQ,EACnEL,EAAQY,WAAaZ,EAAQlH,SAAS,GAAGpoD,YACzCsvD,EAAQa,YAAcb,EAAQlH,SAAS,GAAGloD,aAC1CovD,EAAQK,aAAa1xE,WAAW,GAC5BuoB,EAAOW,MACTsX,EAAMxH,QAAUwH,EAAMxH,OACtBwH,EAAMvH,QAAUuH,EAAMvH,SAI1B,IAAIk5C,EAAc3xC,EAAM3/B,MAAQq2D,EAAKnuB,MACjCqpC,EAAe5xC,EAAM59B,OAASs0D,EAAKnuB,MAEvC,KAAIopC,EAAcd,EAAQY,YAAcG,EAAef,EAAQa,aAA/D,CAUA,GARA1xC,EAAM6xC,KAAOtpE,KAAKijB,IAAMqlD,EAAQY,WAAa,EAAME,EAAc,EAAK,GACtE3xC,EAAM8xC,MAAQ9xC,EAAM6xC,KACpB7xC,EAAM+xC,KAAOxpE,KAAKijB,IAAMqlD,EAAQa,YAAc,EAAME,EAAe,EAAK,GACxE5xC,EAAMgyC,MAAQhyC,EAAM+xC,KAEpB/xC,EAAMiyC,eAAe7rE,EAAe,cAAXrB,EAAE1M,KAAuB0M,EAAEqzB,cAAc,GAAGC,MAAQtzB,EAAEszB,MAC/E2H,EAAMiyC,eAAezsE,EAAe,cAAXT,EAAE1M,KAAuB0M,EAAEqzB,cAAc,GAAGG,MAAQxzB,EAAEwzB,OAE1EyH,EAAMnI,UAAY6+B,EAAK0a,UAAW,CACrC,GACErpD,EAAOI,iBAEJ5f,KAAKC,MAAMw3B,EAAM6xC,QAAUtpE,KAAKC,MAAMw3B,EAAMxH,SAAWwH,EAAMiyC,eAAe7rE,EAAI45B,EAAMwxC,aAAaprE,GAChGmC,KAAKC,MAAMw3B,EAAM8xC,QAAUvpE,KAAKC,MAAMw3B,EAAMxH,SAAWwH,EAAMiyC,eAAe7rE,EAAI45B,EAAMwxC,aAAaprE,GAIzG,YADA45B,EAAMpI,WAAY,GAElB,IACC7P,EAAOI,iBAEL5f,KAAKC,MAAMw3B,EAAM+xC,QAAUxpE,KAAKC,MAAMw3B,EAAMvH,SAAWuH,EAAMiyC,eAAezsE,EAAIw6B,EAAMwxC,aAAahsE,GAChG+C,KAAKC,MAAMw3B,EAAMgyC,QAAUzpE,KAAKC,MAAMw3B,EAAMvH,SAAWuH,EAAMiyC,eAAezsE,EAAIw6B,EAAMwxC,aAAahsE,GAIzG,YADAw6B,EAAMpI,WAAY,EAGtB,CACI7yB,EAAEgc,YACJhc,EAAEjN,iBAEJiN,EAAEmI,kBAEF8yB,EAAMnI,SAAU,EAChBmI,EAAM7H,SAAY6H,EAAMiyC,eAAe7rE,EAAI45B,EAAMwxC,aAAaprE,EAAK45B,EAAMxH,OACzEwH,EAAM1H,SAAY0H,EAAMiyC,eAAezsE,EAAIw6B,EAAMwxC,aAAahsE,EAAKw6B,EAAMvH,OAErEuH,EAAM7H,SAAW6H,EAAM6xC,OACzB7xC,EAAM7H,SAAY6H,EAAM6xC,KAAO,EAAMtpE,KAAK4/D,IAAOnoC,EAAM6xC,KAAO7xC,EAAM7H,SAAY,EAAI,KAElF6H,EAAM7H,SAAW6H,EAAM8xC,OACzB9xC,EAAM7H,SAAY6H,EAAM8xC,KAAO,EAAMvpE,KAAK4/D,IAAOnoC,EAAM7H,SAAW6H,EAAM8xC,KAAQ,EAAI,KAGlF9xC,EAAM1H,SAAW0H,EAAM+xC,OACzB/xC,EAAM1H,SAAY0H,EAAM+xC,KAAO,EAAMxpE,KAAK4/D,IAAOnoC,EAAM+xC,KAAO/xC,EAAM1H,SAAY,EAAI,KAElF0H,EAAM1H,SAAW0H,EAAMgyC,OACzBhyC,EAAM1H,SAAY0H,EAAMgyC,KAAO,EAAMzpE,KAAK4/D,IAAOnoC,EAAM1H,SAAW0H,EAAMgyC,KAAQ,EAAI,KAIjFt2C,EAASw2C,gBAAiBx2C,EAASw2C,cAAgBlyC,EAAMiyC,eAAe7rE,GACxEs1B,EAASy2C,gBAAiBz2C,EAASy2C,cAAgBnyC,EAAMiyC,eAAezsE,GACxEk2B,EAAS02C,WAAY12C,EAAS02C,SAAWp0D,KAAK2F,OACnD+X,EAASt1B,GAAK45B,EAAMiyC,eAAe7rE,EAAIs1B,EAASw2C,gBAAkBl0D,KAAK2F,MAAQ+X,EAAS02C,UAAY,EACpG12C,EAASl2B,GAAKw6B,EAAMiyC,eAAezsE,EAAIk2B,EAASy2C,gBAAkBn0D,KAAK2F,MAAQ+X,EAAS02C,UAAY,EAChG7pE,KAAK8jB,IAAI2T,EAAMiyC,eAAe7rE,EAAIs1B,EAASw2C,eAAiB,IAAKx2C,EAASt1B,EAAI,GAC9EmC,KAAK8jB,IAAI2T,EAAMiyC,eAAezsE,EAAIk2B,EAASy2C,eAAiB,IAAKz2C,EAASl2B,EAAI,GAClFk2B,EAASw2C,cAAgBlyC,EAAMiyC,eAAe7rE,EAC9Cs1B,EAASy2C,cAAgBnyC,EAAMiyC,eAAezsE,EAC9Ck2B,EAAS02C,SAAWp0D,KAAK2F,MAEzBktD,EAAQK,aAAa7xD,UAAW,eAAkB2gB,EAAc,SAAI,OAAUA,EAAc,SAAI,QAlEV,CAnBjC,CAsFvD,EACAhF,WAAY,WACV,IACI07B,EADSt/D,KACKs/D,KACdma,EAAUna,EAAKma,QACf7wC,EAAQ02B,EAAK12B,MACbtE,EAAWg7B,EAAKh7B,SACpB,GAAKm1C,EAAQI,UAAwC,IAA5BJ,EAAQI,SAASh6E,OAA1C,CACA,IAAK+oC,EAAMpI,YAAcoI,EAAMnI,QAG7B,OAFAmI,EAAMpI,WAAY,OAClBoI,EAAMnI,SAAU,GAGlBmI,EAAMpI,WAAY,EAClBoI,EAAMnI,SAAU,EAChB,IAAIw6C,EAAoB,IACpBC,EAAoB,IACpBC,EAAoB72C,EAASt1B,EAAIisE,EACjCG,EAAexyC,EAAM7H,SAAWo6C,EAChCE,EAAoB/2C,EAASl2B,EAAI8sE,EACjCI,EAAe1yC,EAAM1H,SAAWm6C,EAGjB,IAAf/2C,EAASt1B,IAAWisE,EAAoB9pE,KAAK8jB,KAAKmmD,EAAexyC,EAAM7H,UAAYuD,EAASt1B,IAC7E,IAAfs1B,EAASl2B,IAAW8sE,EAAoB/pE,KAAK8jB,KAAKqmD,EAAe1yC,EAAM1H,UAAYoD,EAASl2B,IAChG,IAAIq2B,EAAmBtzB,KAAKsiB,IAAIwnD,EAAmBC,GAEnDtyC,EAAM7H,SAAWq6C,EACjBxyC,EAAM1H,SAAWo6C,EAGjB,IAAIf,EAAc3xC,EAAM3/B,MAAQq2D,EAAKnuB,MACjCqpC,EAAe5xC,EAAM59B,OAASs0D,EAAKnuB,MACvCvI,EAAM6xC,KAAOtpE,KAAKijB,IAAMqlD,EAAQY,WAAa,EAAME,EAAc,EAAK,GACtE3xC,EAAM8xC,MAAQ9xC,EAAM6xC,KACpB7xC,EAAM+xC,KAAOxpE,KAAKijB,IAAMqlD,EAAQa,YAAc,EAAME,EAAe,EAAK,GACxE5xC,EAAMgyC,MAAQhyC,EAAM+xC,KACpB/xC,EAAM7H,SAAW5vB,KAAKsiB,IAAItiB,KAAKijB,IAAIwU,EAAM7H,SAAU6H,EAAM8xC,MAAO9xC,EAAM6xC,MACtE7xC,EAAM1H,SAAW/vB,KAAKsiB,IAAItiB,KAAKijB,IAAIwU,EAAM1H,SAAU0H,EAAMgyC,MAAOhyC,EAAM+xC,MAEtElB,EAAQK,aAAa1xE,WAAWq8B,GAAkBxc,UAAW,eAAkB2gB,EAAc,SAAI,OAAUA,EAAc,SAAI,QAjC3D,CAkCpE,EACA2yC,gBAAiB,WACf,IAAI5qD,EAAS3wB,KACTs/D,EAAO3uC,EAAO2uC,KACdma,EAAUna,EAAKma,QACfA,EAAQlH,UAAY5hD,EAAOoI,gBAAkBpI,EAAO8F,cAClDgjD,EAAQI,UACVJ,EAAQI,SAAS5xD,UAAU,+BAEzBwxD,EAAQK,cACVL,EAAQK,aAAa7xD,UAAU,sBAGjCq3C,EAAKnuB,MAAQ,EACbmuB,EAAKuZ,aAAe,EAEpBY,EAAQlH,cAAWvpD,EACnBywD,EAAQI,cAAW7wD,EACnBywD,EAAQK,kBAAe9wD,EAE3B,EAEAhiB,OAAQ,SAAgB2G,GACtB,IACI2xD,EADSt/D,KACKs/D,KAEdA,EAAKnuB,OAAwB,IAAfmuB,EAAKnuB,MAErBmuB,EAAKkc,MAGLlc,EAAKmc,GAAG9tE,EAEZ,EACA8tE,GAAI,SAAc9tE,GAChB,IAoBI+tE,EACAC,EAGAj5C,EACAC,EACAi5C,EACAC,EACAC,EACAC,EACAxB,EACAC,EACAwB,EACAC,EACAC,EACAC,EACA9B,EACAC,EArCA3pD,EAAS3wB,KAETs/D,EAAO3uC,EAAO2uC,KACd3+D,EAASgwB,EAAOhwB,OAAO2+D,KACvBma,EAAUna,EAAKma,QACf7wC,EAAQ02B,EAAK12B,MAEZ6wC,EAAQlH,WACP5hD,EAAOhwB,OAAO8wB,SAAWd,EAAOhwB,OAAO8wB,QAAQC,SAAWf,EAAOc,QACnEgoD,EAAQlH,SAAW5hD,EAAOQ,WAAW/qB,SAAU,IAAOuqB,EAAOhwB,OAAuB,kBAEpF84E,EAAQlH,SAAW5hD,EAAOiB,OAAOjc,GAAGgb,EAAO8F,aAE7CgjD,EAAQI,SAAWJ,EAAQlH,SAASvzE,KAAK,kDACzCy6E,EAAQK,aAAeL,EAAQI,SAAS32E,OAAQ,IAAOvC,EAAqB,iBAEzE84E,EAAQI,UAAwC,IAA5BJ,EAAQI,SAASh6E,SAE1C45E,EAAQlH,SAASnzE,SAAU,GAAMuB,EAAuB,uBAqBpB,IAAzBioC,EAAMwxC,aAAaprE,GAAqBrB,GACjD+tE,EAAoB,aAAX/tE,EAAE1M,KAAsB0M,EAAE40B,eAAe,GAAGtB,MAAQtzB,EAAEszB,MAC/D06C,EAAoB,aAAXhuE,EAAE1M,KAAsB0M,EAAE40B,eAAe,GAAGpB,MAAQxzB,EAAEwzB,QAE/Du6C,EAAS9yC,EAAMwxC,aAAaprE,EAC5B2sE,EAAS/yC,EAAMwxC,aAAahsE,GAG9BkxD,EAAKnuB,MAAQsoC,EAAQK,aAAa/6E,KAAK,qBAAuB4B,EAAOo5E,SACrEza,EAAKuZ,aAAeY,EAAQK,aAAa/6E,KAAK,qBAAuB4B,EAAOo5E,SACxEpsE,GACF0sE,EAAaZ,EAAQlH,SAAS,GAAGpoD,YACjCmwD,EAAcb,EAAQlH,SAAS,GAAGloD,aAGlCqY,EAFU+2C,EAAQlH,SAAS7pE,SAAS8U,KAEhB68D,EAAa,EAAMqB,EACvC/4C,EAFU82C,EAAQlH,SAAS7pE,SAASC,IAEhB2xE,EAAc,EAAMqB,EAExCG,EAAarC,EAAQI,SAAS,GAAG1vD,YACjC4xD,EAActC,EAAQI,SAAS,GAAGxvD,aAClCkwD,EAAcuB,EAAaxc,EAAKnuB,MAChCqpC,EAAeuB,EAAczc,EAAKnuB,MAIlC+qC,IAFAF,EAAgB7qE,KAAKijB,IAAMimD,EAAa,EAAME,EAAc,EAAK,IAGjE4B,IAFAF,EAAgB9qE,KAAKijB,IAAMkmD,EAAc,EAAME,EAAe,EAAK,KAInEoB,EAAal5C,EAAQ48B,EAAKnuB,OAGT6qC,IACfJ,EAAaI,GAEXJ,EAAaM,IACfN,EAAaM,IANfL,EAAal5C,EAAQ28B,EAAKnuB,OAST8qC,IACfJ,EAAaI,GAEXJ,EAAaM,IACfN,EAAaM,KAGfP,EAAa,EACbC,EAAa,GAEfpC,EAAQK,aAAa1xE,WAAW,KAAK6f,UAAW,eAAiB2zD,EAAa,OAASC,EAAa,SACpGpC,EAAQI,SAASzxE,WAAW,KAAK6f,UAAW,4BAA+Bq3C,EAAU,MAAI,KAC3F,EACAkc,IAAK,WACH,IAAI7qD,EAAS3wB,KAETs/D,EAAO3uC,EAAO2uC,KACd3+D,EAASgwB,EAAOhwB,OAAO2+D,KACvBma,EAAUna,EAAKma,QAEdA,EAAQlH,WACP5hD,EAAOhwB,OAAO8wB,SAAWd,EAAOhwB,OAAO8wB,QAAQC,SAAWf,EAAOc,QACnEgoD,EAAQlH,SAAW5hD,EAAOQ,WAAW/qB,SAAU,IAAOuqB,EAAOhwB,OAAuB,kBAEpF84E,EAAQlH,SAAW5hD,EAAOiB,OAAOjc,GAAGgb,EAAO8F,aAE7CgjD,EAAQI,SAAWJ,EAAQlH,SAASvzE,KAAK,kDACzCy6E,EAAQK,aAAeL,EAAQI,SAAS32E,OAAQ,IAAOvC,EAAqB,iBAEzE84E,EAAQI,UAAwC,IAA5BJ,EAAQI,SAASh6E,SAE1Cy/D,EAAKnuB,MAAQ,EACbmuB,EAAKuZ,aAAe,EACpBY,EAAQK,aAAa1xE,WAAW,KAAK6f,UAAU,sBAC/CwxD,EAAQI,SAASzxE,WAAW,KAAK6f,UAAU,+BAC3CwxD,EAAQlH,SAASpzE,YAAa,GAAMwB,EAAuB,kBAC3D84E,EAAQlH,cAAWvpD,EACrB,EAEArF,OAAQ,WACN,IAAIgN,EAAS3wB,KACTs/D,EAAO3uC,EAAO2uC,KAClB,IAAIA,EAAK5tC,QAAT,CACA4tC,EAAK5tC,SAAU,EAEf,IAAIjD,IAA+C,eAA7BkC,EAAOoW,YAAYC,QAA0B9Y,EAAQO,kBAAmBkC,EAAOhwB,OAAOumC,mBAAmB,CAAEC,SAAS,EAAMze,SAAS,GACrJ0zD,GAA4BluD,EAAQO,iBAAkB,CAAE0Y,SAAS,EAAOze,SAAS,GAEjF2zD,EAAgB,IAAO1rD,EAAOhwB,OAAiB,WAG/CutB,EAAQW,UACV8B,EAAOQ,WAAWpxB,GAAG,eAAgBs8E,EAAe/c,EAAKka,eAAgB/qD,GACzEkC,EAAOQ,WAAWpxB,GAAG,gBAAiBs8E,EAAe/c,EAAK2a,gBAAiBxrD,GAC3EkC,EAAOQ,WAAWpxB,GAAG,aAAcs8E,EAAe/c,EAAK6a,aAAc1rD,IAC/B,eAA7BkC,EAAOoW,YAAYC,QAC5BrW,EAAOQ,WAAWpxB,GAAG4wB,EAAOoW,YAAYC,MAAOq1C,EAAe/c,EAAKka,eAAgB/qD,GACnFkC,EAAOQ,WAAWpxB,GAAG4wB,EAAOoW,YAAYE,KAAMo1C,EAAe/c,EAAK2a,gBAAiBmC,GACnFzrD,EAAOQ,WAAWpxB,GAAG4wB,EAAOoW,YAAY7nC,IAAKm9E,EAAe/c,EAAK6a,aAAc1rD,GAC3EkC,EAAOoW,YAAYK,QACrBzW,EAAOQ,WAAWpxB,GAAG4wB,EAAOoW,YAAYK,OAAQi1C,EAAe/c,EAAK6a,aAAc1rD,IAKtFkC,EAAOQ,WAAWpxB,GAAG4wB,EAAOoW,YAAYE,KAAO,IAAOtW,EAAOhwB,OAAO2+D,KAAmB,eAAIA,EAAKj9B,YAAa+5C,EAvBjF,CAwB9B,EACA5rC,QAAS,WACP,IAAI7f,EAAS3wB,KACTs/D,EAAO3uC,EAAO2uC,KAClB,GAAKA,EAAK5tC,QAAV,CAEAf,EAAO2uC,KAAK5tC,SAAU,EAEtB,IAAIjD,IAA+C,eAA7BkC,EAAOoW,YAAYC,QAA0B9Y,EAAQO,kBAAmBkC,EAAOhwB,OAAOumC,mBAAmB,CAAEC,SAAS,EAAMze,SAAS,GACrJ0zD,GAA4BluD,EAAQO,iBAAkB,CAAE0Y,SAAS,EAAOze,SAAS,GAEjF2zD,EAAgB,IAAO1rD,EAAOhwB,OAAiB,WAG/CutB,EAAQW,UACV8B,EAAOQ,WAAWtZ,IAAI,eAAgBwkE,EAAe/c,EAAKka,eAAgB/qD,GAC1EkC,EAAOQ,WAAWtZ,IAAI,gBAAiBwkE,EAAe/c,EAAK2a,gBAAiBxrD,GAC5EkC,EAAOQ,WAAWtZ,IAAI,aAAcwkE,EAAe/c,EAAK6a,aAAc1rD,IAChC,eAA7BkC,EAAOoW,YAAYC,QAC5BrW,EAAOQ,WAAWtZ,IAAI8Y,EAAOoW,YAAYC,MAAOq1C,EAAe/c,EAAKka,eAAgB/qD,GACpFkC,EAAOQ,WAAWtZ,IAAI8Y,EAAOoW,YAAYE,KAAMo1C,EAAe/c,EAAK2a,gBAAiBmC,GACpFzrD,EAAOQ,WAAWtZ,IAAI8Y,EAAOoW,YAAY7nC,IAAKm9E,EAAe/c,EAAK6a,aAAc1rD,GAC5EkC,EAAOoW,YAAYK,QACrBzW,EAAOQ,WAAWtZ,IAAI8Y,EAAOoW,YAAYK,OAAQi1C,EAAe/c,EAAK6a,aAAc1rD,IAKvFkC,EAAOQ,WAAWtZ,IAAI8Y,EAAOoW,YAAYE,KAAO,IAAOtW,EAAOhwB,OAAO2+D,KAAmB,eAAIA,EAAKj9B,YAAa+5C,EAxBjF,CAyB/B,GAuHEE,GAAO,CACTC,YAAa,SAAqB/wE,EAAOgxE,QACd,IAApBA,IAA6BA,GAAkB,GAEpD,IAAI7rD,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAAOuxE,KAC3B,QAAqB,IAAV1mE,GACkB,IAAzBmlB,EAAOiB,OAAO/xB,OAAlB,CACA,IAEI0yE,EAFY5hD,EAAOc,SAAWd,EAAOhwB,OAAO8wB,QAAQC,QAGpDf,EAAOQ,WAAW/qB,SAAU,IAAOuqB,EAAOhwB,OAAiB,WAAI,6BAAgC6K,EAAQ,MACvGmlB,EAAOiB,OAAOjc,GAAGnK,GAEjBixE,EAAUlK,EAASvzE,KAAM,IAAO2B,EAAmB,aAAI,SAAYA,EAAkB,YAAI,UAAaA,EAAmB,aAAI,MAC7H4xE,EAASlyE,SAASM,EAAO+7E,eAAkBnK,EAASlyE,SAASM,EAAOg8E,cAAiBpK,EAASlyE,SAASM,EAAOi8E,gBAChHH,EAAUA,EAAQhoE,IAAI89D,EAAS,KAEV,IAAnBkK,EAAQ58E,QAEZ48E,EAAQ/4E,MAAK,SAAUm5E,EAAYr0C,GACjC,IAAIqxC,EAAWl7E,EAAE6pC,GACjBqxC,EAASz6E,SAASuB,EAAOi8E,cAEzB,IAAIE,EAAajD,EAAS96E,KAAK,mBAC3BiO,EAAM6sE,EAAS96E,KAAK,YACpB0pC,EAASoxC,EAAS96E,KAAK,eACvB2pC,EAAQmxC,EAAS96E,KAAK,cACtBg+E,EAAalD,EAAS32E,OAAO,WAEjCytB,EAAO4X,UAAUsxC,EAAS,GAAK7sE,GAAO8vE,EAAar0C,EAAQC,GAAO,GAAO,WACvE,GAAI,MAAO/X,GAA8CA,KAAWA,GAAWA,EAAOhwB,UAAWgwB,EAAOkK,UAAxG,CA+BA,GA9BIiiD,GACFjD,EAAS5gE,IAAI,mBAAqB,QAAW6jE,EAAa,MAC1DjD,EAASpkE,WAAW,qBAEhBgzB,IACFoxC,EAAS96E,KAAK,SAAU0pC,GACxBoxC,EAASpkE,WAAW,gBAElBizB,IACFmxC,EAAS96E,KAAK,QAAS2pC,GACvBmxC,EAASpkE,WAAW,eAElBsnE,EAAWl9E,QACbk9E,EAAW32E,SAAS,UAAU1C,MAAK,SAAUs5E,EAAaC,GACxD,IAAIC,EAAUv+E,EAAEs+E,GAEZC,EAAQn+E,KAAK,iBACfm+E,EAAQn+E,KAAK,SAAUm+E,EAAQn+E,KAAK,gBACpCm+E,EAAQznE,WAAW,eAEvB,IAEEzI,IACF6sE,EAAS96E,KAAK,MAAOiO,GACrB6sE,EAASpkE,WAAW,cAIxBokE,EAASz6E,SAASuB,EAAOg8E,aAAax9E,YAAYwB,EAAOi8E,cACzDrK,EAASvzE,KAAM,IAAO2B,EAAqB,gBAAI8E,SAC3CkrB,EAAOhwB,OAAO83B,MAAQ+jD,EAAiB,CACzC,IAAIW,EAAqB5K,EAASxzE,KAAK,2BACvC,GAAIwzE,EAASlyE,SAASswB,EAAOhwB,OAAO+3B,qBAAsB,CACxD,IAAI0kD,EAAgBzsD,EAAOQ,WAAW/qB,SAAU,6BAAgC+2E,EAAqB,WAAexsD,EAAOhwB,OAA0B,oBAAI,KACzJgwB,EAAOuhD,KAAKqK,YAAYa,EAAc5xE,SAAS,EACjD,KAAO,CACL,IAAI6xE,EAAkB1sD,EAAOQ,WAAW/qB,SAAU,IAAOuqB,EAAOhwB,OAA0B,oBAAI,6BAAgCw8E,EAAqB,MACnJxsD,EAAOuhD,KAAKqK,YAAYc,EAAgB7xE,SAAS,EACnD,CACF,CACAmlB,EAAOpB,KAAK,iBAAkBgjD,EAAS,GAAIsH,EAAS,IAChDlpD,EAAOhwB,OAAOy2B,YAChBzG,EAAOyF,kBA3CoH,CA6C/H,IAEAzF,EAAOpB,KAAK,gBAAiBgjD,EAAS,GAAIsH,EAAS,GACrD,GAxE0C,CAyE5C,EACA/pE,KAAM,WACJ,IAAI6gB,EAAS3wB,KACTmxB,EAAaR,EAAOQ,WACpBoZ,EAAe5Z,EAAOhwB,OACtBixB,EAASjB,EAAOiB,OAChB6E,EAAc9F,EAAO8F,YACrBjF,EAAYb,EAAOc,SAAW8Y,EAAa9Y,QAAQC,QACnD/wB,EAAS4pC,EAAa2nC,KAEtB3+C,EAAgBgX,EAAahX,cAKjC,SAAS+pD,EAAW9xE,GAClB,GAAIgmB,GACF,GAAIL,EAAW/qB,SAAU,IAAOmkC,EAAuB,WAAI,6BAAgC/+B,EAAQ,MAAQ3L,OACzG,OAAO,OAEJ,GAAI+xB,EAAOpmB,GAAU,OAAO,EACnC,OAAO,CACT,CAEA,SAAS2mB,EAAWoZ,GAClB,OAAI/Z,EACK7yB,EAAE4sC,GAASxsC,KAAK,2BAElBJ,EAAE4sC,GAAS//B,OACpB,CAGA,GArBsB,SAAlB+nB,IACFA,EAAgB,GAmBb5C,EAAOuhD,KAAKqL,qBAAsB5sD,EAAOuhD,KAAKqL,oBAAqB,GACpE5sD,EAAOhwB,OAAOu1B,sBAChB/E,EAAW/qB,SAAU,IAAOmkC,EAA8B,mBAAI7mC,MAAK,SAAU85E,EAASjyC,GACpF,IAAI//B,EAAQgmB,EAAY7yB,EAAE4sC,GAASxsC,KAAK,2BAA6BJ,EAAE4sC,GAAS//B,QAChFmlB,EAAOuhD,KAAKqK,YAAY/wE,EAC1B,SACK,GAAI+nB,EAAgB,EACzB,IAAK,IAAIvnB,EAAIyqB,EAAazqB,EAAIyqB,EAAclD,EAAevnB,GAAK,EAC1DsxE,EAAWtxE,IAAM2kB,EAAOuhD,KAAKqK,YAAYvwE,QAG/C2kB,EAAOuhD,KAAKqK,YAAY9lD,GAE1B,GAAI91B,EAAO88E,aACT,GAAIlqD,EAAgB,GAAM5yB,EAAO+8E,oBAAsB/8E,EAAO+8E,mBAAqB,EAAI,CAMrF,IALA,IAAIC,EAASh9E,EAAO+8E,mBAChB1yC,EAAMzX,EACNqqD,EAAWzsE,KAAKijB,IAAIqC,EAAcuU,EAAM75B,KAAKsiB,IAAIkqD,EAAQ3yC,GAAMpZ,EAAO/xB,QACtEg+E,EAAW1sE,KAAKsiB,IAAIgD,EAActlB,KAAKsiB,IAAIuX,EAAK2yC,GAAS,GAEpDpN,EAAM95C,EAAclD,EAAeg9C,EAAMqN,EAAUrN,GAAO,EAC7D+M,EAAW/M,IAAQ5/C,EAAOuhD,KAAKqK,YAAYhM,GAGjD,IAAK,IAAIC,EAAMqN,EAAUrN,EAAM/5C,EAAa+5C,GAAO,EAC7C8M,EAAW9M,IAAQ7/C,EAAOuhD,KAAKqK,YAAY/L,EAEnD,KAAO,CACL,IAAI73C,EAAYxH,EAAW/qB,SAAU,IAAOmkC,EAA2B,gBACnE5R,EAAU94B,OAAS,GAAK8wB,EAAOuhD,KAAKqK,YAAYpqD,EAAWwG,IAE/D,IAAIC,EAAYzH,EAAW/qB,SAAU,IAAOmkC,EAA2B,gBACnE3R,EAAU/4B,OAAS,GAAK8wB,EAAOuhD,KAAKqK,YAAYpqD,EAAWyG,GACjE,CAEJ,GAoFEklD,GAAa,CACfC,aAAc,SAAsB/uE,EAAGZ,GACrC,IACMwvE,EACAC,EACAG,EAqBFC,EACAC,EAzBAC,EAIK,SAAUtkC,EAAO55C,GAGtB,IAFA49E,GAAY,EACZD,EAAW/jC,EAAMh6C,OACV+9E,EAAWC,EAAW,GAEvBhkC,EADJmkC,EAAQJ,EAAWC,GAAY,IACX59E,EAClB49E,EAAWG,EAEXJ,EAAWI,EAGf,OAAOJ,CACT,EAsBF,OApBA59E,KAAKgP,EAAIA,EACThP,KAAKoO,EAAIA,EACTpO,KAAKi1E,UAAYjmE,EAAEnP,OAAS,EAO5BG,KAAKo+E,YAAc,SAAqB9E,GACtC,OAAKA,GAGL4E,EAAKC,EAAan+E,KAAKgP,EAAGsqE,GAC1B2E,EAAKC,EAAK,GAIA5E,EAAKt5E,KAAKgP,EAAEivE,KAAQj+E,KAAKoO,EAAE8vE,GAAMl+E,KAAKoO,EAAE6vE,KAASj+E,KAAKgP,EAAEkvE,GAAMl+E,KAAKgP,EAAEivE,IAAQj+E,KAAKoO,EAAE6vE,IAR5E,CASpB,EACOj+E,IACT,EAEAq+E,uBAAwB,SAAgCtvE,GACtD,IAAI4hB,EAAS3wB,KACR2wB,EAAO2tD,WAAWC,SACrB5tD,EAAO2tD,WAAWC,OAAS5tD,EAAOhwB,OAAO83B,KACrC,IAAIqlD,GAAWC,aAAaptD,EAAOqB,WAAYjjB,EAAEijB,YACjD,IAAI8rD,GAAWC,aAAaptD,EAAOoB,SAAUhjB,EAAEgjB,UAEvD,EACA8H,aAAc,SAAsB2kD,EAAgB1kD,GAClD,IAEIrC,EACAgnD,EAHA9tD,EAAS3wB,KACT0+E,EAAa/tD,EAAO2tD,WAAWK,QAGnC,SAASC,EAAuB7vE,GAK9B,IAAI+nB,EAAYnG,EAAOU,cAAgBV,EAAOmG,UAAYnG,EAAOmG,UAC7B,UAAhCnG,EAAOhwB,OAAO29E,WAAWO,KAC3BluD,EAAO2tD,WAAWD,uBAAuBtvE,GAGzC0vE,GAAuB9tD,EAAO2tD,WAAWC,OAAOH,aAAatnD,IAG1D2nD,GAAuD,cAAhC9tD,EAAOhwB,OAAO29E,WAAWO,KACnDpnD,GAAc1oB,EAAE4oB,eAAiB5oB,EAAEooB,iBAAmBxG,EAAOgH,eAAiBhH,EAAOwG,gBACrFsnD,GAAwB3nD,EAAYnG,EAAOwG,gBAAkBM,EAAc1oB,EAAEooB,gBAG3ExG,EAAOhwB,OAAO29E,WAAWQ,UAC3BL,EAAsB1vE,EAAE4oB,eAAiB8mD,GAE3C1vE,EAAEyoB,eAAeinD,GACjB1vE,EAAE8qB,aAAa4kD,EAAqB9tD,GACpC5hB,EAAE8pB,oBACF9pB,EAAEipB,qBACJ,CACA,GAAIrnB,MAAMiK,QAAQ8jE,GAChB,IAAK,IAAI1yE,EAAI,EAAGA,EAAI0yE,EAAW7+E,OAAQmM,GAAK,EACtC0yE,EAAW1yE,KAAO8tB,GAAgB4kD,EAAW1yE,aAAck+B,IAC7D00C,EAAuBF,EAAW1yE,SAG7B0yE,aAAsBx0C,IAAUpQ,IAAiB4kD,GAC1DE,EAAuBF,EAE3B,EACAnoD,cAAe,SAAuBnO,EAAU0R,GAC9C,IAEI9tB,EAFA2kB,EAAS3wB,KACT0+E,EAAa/tD,EAAO2tD,WAAWK,QAEnC,SAASI,EAAwBhwE,GAC/BA,EAAEwnB,cAAcnO,EAAUuI,GACT,IAAbvI,IACFrZ,EAAE+rB,kBACE/rB,EAAEpO,OAAOy2B,YACXjL,EAAMG,UAAS,WACbvd,EAAEqnB,kBACJ,IAEFrnB,EAAEoiB,WAAWrH,eAAc,WACpB40D,IACD3vE,EAAEpO,OAAO83B,MAAwC,UAAhC9H,EAAOhwB,OAAO29E,WAAWO,IAC5C9vE,EAAE2sB,UAEJ3sB,EAAE+a,gBACJ,IAEJ,CACA,GAAInZ,MAAMiK,QAAQ8jE,GAChB,IAAK1yE,EAAI,EAAGA,EAAI0yE,EAAW7+E,OAAQmM,GAAK,EAClC0yE,EAAW1yE,KAAO8tB,GAAgB4kD,EAAW1yE,aAAck+B,IAC7D60C,EAAwBL,EAAW1yE,SAG9B0yE,aAAsBx0C,IAAUpQ,IAAiB4kD,GAC1DK,EAAwBL,EAE5B,GAEEM,GAAe,CACjBr7E,KAAM,aACNhD,OAAQ,CACN29E,WAAY,CACVK,aAAS31D,EACT81D,SAAS,EACTD,GAAI,UAGR1uD,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnB2tD,WAAY,CACVK,QAAShuD,EAAOhwB,OAAO29E,WAAWK,QAClCN,uBAAwBP,GAAWO,uBAAuB9sE,KAAKof,GAC/DkJ,aAAcikD,GAAWjkD,aAAatoB,KAAKof,GAC3C4F,cAAeunD,GAAWvnD,cAAchlB,KAAKof,KAGnD,EACA5wB,GAAI,CACFyX,OAAQ,WACN,IAAImZ,EAAS3wB,KACR2wB,EAAO2tD,WAAWK,SACnBhuD,EAAO2tD,WAAWC,SACpB5tD,EAAO2tD,WAAWC,YAASv1D,SACpB2H,EAAO2tD,WAAWC,OAE7B,EACAjyC,OAAQ,WACN,IAAI3b,EAAS3wB,KACR2wB,EAAO2tD,WAAWK,SACnBhuD,EAAO2tD,WAAWC,SACpB5tD,EAAO2tD,WAAWC,YAASv1D,SACpB2H,EAAO2tD,WAAWC,OAE7B,EACAxxC,eAAgB,WACd,IAAIpc,EAAS3wB,KACR2wB,EAAO2tD,WAAWK,SACnBhuD,EAAO2tD,WAAWC,SACpB5tD,EAAO2tD,WAAWC,YAASv1D,SACpB2H,EAAO2tD,WAAWC,OAE7B,EACA1kD,aAAc,SAAsB/C,EAAWgD,GAC7C,IAAInJ,EAAS3wB,KACR2wB,EAAO2tD,WAAWK,SACvBhuD,EAAO2tD,WAAWzkD,aAAa/C,EAAWgD,EAC5C,EACAvD,cAAe,SAAuBnO,EAAU0R,GAC9C,IAAInJ,EAAS3wB,KACR2wB,EAAO2tD,WAAWK,SACvBhuD,EAAO2tD,WAAW/nD,cAAcnO,EAAU0R,EAC5C,IAIAmlD,GAAO,CACTC,gBAAiB,SAAyBtuD,GAExC,OADAA,EAAI7xB,KAAK,WAAY,KACd6xB,CACT,EACAuuD,mBAAoB,SAA4BvuD,GAE9C,OADAA,EAAI7xB,KAAK,WAAY,MACd6xB,CACT,EACAwuD,UAAW,SAAmBxuD,EAAK7b,GAEjC,OADA6b,EAAI7xB,KAAK,OAAQgW,GACV6b,CACT,EACAyuD,WAAY,SAAoBzuD,EAAK9W,GAEnC,OADA8W,EAAI7xB,KAAK,aAAc+a,GAChB8W,CACT,EACA0uD,UAAW,SAAmB1uD,GAE5B,OADAA,EAAI7xB,KAAK,iBAAiB,GACnB6xB,CACT,EACA2uD,SAAU,SAAkB3uD,GAE1B,OADAA,EAAI7xB,KAAK,iBAAiB,GACnB6xB,CACT,EACA4uD,WAAY,SAAoB7xE,GAC9B,IAAIgjB,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAAOs+E,KAC3B,GAAkB,KAAdtxE,EAAEopD,QAAN,CACA,IAAI32B,EAAYzhC,EAAEgP,EAAEvE,QAChBunB,EAAOkV,YAAclV,EAAOkV,WAAWyuC,SAAWl0C,EAAUx8B,GAAG+sB,EAAOkV,WAAWyuC,WAC7E3jD,EAAOkH,QAAUlH,EAAOhwB,OAAO83B,MACnC9H,EAAO6K,YAEL7K,EAAOkH,MACTlH,EAAOsuD,KAAKzyB,OAAO7rD,EAAO8+E,kBAE1B9uD,EAAOsuD,KAAKzyB,OAAO7rD,EAAO++E,mBAG1B/uD,EAAOkV,YAAclV,EAAOkV,WAAW0uC,SAAWn0C,EAAUx8B,GAAG+sB,EAAOkV,WAAW0uC,WAC7E5jD,EAAOiH,cAAgBjH,EAAOhwB,OAAO83B,MACzC9H,EAAOiL,YAELjL,EAAOiH,YACTjH,EAAOsuD,KAAKzyB,OAAO7rD,EAAOg/E,mBAE1BhvD,EAAOsuD,KAAKzyB,OAAO7rD,EAAOi/E,mBAG1BjvD,EAAOnU,YAAc4jB,EAAUx8B,GAAI,IAAO+sB,EAAOhwB,OAAO6b,WAAsB,cAChF4jB,EAAU,GAAGm2B,OAvBiB,CAyBlC,EACA/J,OAAQ,SAAgB94C,GACtB,IACImsE,EADS7/E,KACai/E,KAAKa,WACH,IAAxBD,EAAahgF,SACjBggF,EAAaz8E,KAAK,IAClBy8E,EAAaz8E,KAAKsQ,GACpB,EACAqsE,iBAAkB,WAChB,IAAIpvD,EAAS3wB,KAEb,IAAI2wB,EAAOhwB,OAAO83B,MAAS9H,EAAOkV,WAAlC,CACA,IAAIorC,EAAMtgD,EAAOkV,WACbyuC,EAAUrD,EAAIqD,QACdC,EAAUtD,EAAIsD,QAEdA,GAAWA,EAAQ10E,OAAS,IAC1B8wB,EAAOiH,aACTjH,EAAOsuD,KAAKK,UAAU/K,GACtB5jD,EAAOsuD,KAAKE,mBAAmB5K,KAE/B5jD,EAAOsuD,KAAKM,SAAShL,GACrB5jD,EAAOsuD,KAAKC,gBAAgB3K,KAG5BD,GAAWA,EAAQz0E,OAAS,IAC1B8wB,EAAOkH,OACTlH,EAAOsuD,KAAKK,UAAUhL,GACtB3jD,EAAOsuD,KAAKE,mBAAmB7K,KAE/B3jD,EAAOsuD,KAAKM,SAASjL,GACrB3jD,EAAOsuD,KAAKC,gBAAgB5K,IApBwB,CAuB1D,EACA0L,iBAAkB,WAChB,IAAIrvD,EAAS3wB,KACTW,EAASgwB,EAAOhwB,OAAOs+E,KACvBtuD,EAAOnU,YAAcmU,EAAOhwB,OAAO6b,WAAW40B,WAAazgB,EAAOnU,WAAWu4D,SAAWpkD,EAAOnU,WAAWu4D,QAAQl1E,QACpH8wB,EAAOnU,WAAWu4D,QAAQrxE,MAAK,SAAU+xE,EAAawK,GACpD,IAAIC,EAAYvhF,EAAEshF,GAClBtvD,EAAOsuD,KAAKC,gBAAgBgB,GAC5BvvD,EAAOsuD,KAAKG,UAAUc,EAAW,UACjCvvD,EAAOsuD,KAAKI,WAAWa,EAAWv/E,EAAOw/E,wBAAwB99E,QAAQ,gBAAiB69E,EAAU10E,QAAU,GAChH,GAEJ,EACA+9B,KAAM,WACJ,IAAI5Y,EAAS3wB,KAEb2wB,EAAOC,IAAIvqB,OAAOsqB,EAAOsuD,KAAKa,YAG9B,IACIxL,EACAC,EAFA5zE,EAASgwB,EAAOhwB,OAAOs+E,KAGvBtuD,EAAOkV,YAAclV,EAAOkV,WAAWyuC,UACzCA,EAAU3jD,EAAOkV,WAAWyuC,SAE1B3jD,EAAOkV,YAAclV,EAAOkV,WAAW0uC,UACzCA,EAAU5jD,EAAOkV,WAAW0uC,SAE1BD,IACF3jD,EAAOsuD,KAAKC,gBAAgB5K,GAC5B3jD,EAAOsuD,KAAKG,UAAU9K,EAAS,UAC/B3jD,EAAOsuD,KAAKI,WAAW/K,EAAS3zE,EAAO++E,kBACvCpL,EAAQv0E,GAAG,UAAW4wB,EAAOsuD,KAAKO,aAEhCjL,IACF5jD,EAAOsuD,KAAKC,gBAAgB3K,GAC5B5jD,EAAOsuD,KAAKG,UAAU7K,EAAS,UAC/B5jD,EAAOsuD,KAAKI,WAAW9K,EAAS5zE,EAAOi/E,kBACvCrL,EAAQx0E,GAAG,UAAW4wB,EAAOsuD,KAAKO,aAIhC7uD,EAAOnU,YAAcmU,EAAOhwB,OAAO6b,WAAW40B,WAAazgB,EAAOnU,WAAWu4D,SAAWpkD,EAAOnU,WAAWu4D,QAAQl1E,QACpH8wB,EAAOnU,WAAWoU,IAAI7wB,GAAG,UAAY,IAAO4wB,EAAOhwB,OAAO6b,WAAsB,YAAImU,EAAOsuD,KAAKO,WAEpG,EACAxpE,QAAS,WACP,IAGIs+D,EACAC,EAJA5jD,EAAS3wB,KACT2wB,EAAOsuD,KAAKa,YAAcnvD,EAAOsuD,KAAKa,WAAWjgF,OAAS,GAAK8wB,EAAOsuD,KAAKa,WAAWr6E,SAItFkrB,EAAOkV,YAAclV,EAAOkV,WAAWyuC,UACzCA,EAAU3jD,EAAOkV,WAAWyuC,SAE1B3jD,EAAOkV,YAAclV,EAAOkV,WAAW0uC,UACzCA,EAAU5jD,EAAOkV,WAAW0uC,SAE1BD,GACFA,EAAQz8D,IAAI,UAAW8Y,EAAOsuD,KAAKO,YAEjCjL,GACFA,EAAQ18D,IAAI,UAAW8Y,EAAOsuD,KAAKO,YAIjC7uD,EAAOnU,YAAcmU,EAAOhwB,OAAO6b,WAAW40B,WAAazgB,EAAOnU,WAAWu4D,SAAWpkD,EAAOnU,WAAWu4D,QAAQl1E,QACpH8wB,EAAOnU,WAAWoU,IAAI/Y,IAAI,UAAY,IAAO8Y,EAAOhwB,OAAO6b,WAAsB,YAAImU,EAAOsuD,KAAKO,WAErG,GAwDEY,GAAU,CACZ72C,KAAM,WACJ,IAAI5Y,EAAS3wB,KACb,GAAK2wB,EAAOhwB,OAAO0lB,QAAnB,CACA,IAAKF,EAAIE,UAAYF,EAAIE,QAAQE,UAG/B,OAFAoK,EAAOhwB,OAAO0lB,QAAQqL,SAAU,OAChCf,EAAOhwB,OAAO0/E,eAAe3uD,SAAU,GAGzC,IAAIrL,EAAUsK,EAAOtK,QACrBA,EAAQ+S,aAAc,EACtB/S,EAAQi6D,MAAQF,GAAQG,iBACnBl6D,EAAQi6D,MAAMp3E,KAAQmd,EAAQi6D,MAAMhhF,SACzC+mB,EAAQm6D,cAAc,EAAGn6D,EAAQi6D,MAAMhhF,MAAOqxB,EAAOhwB,OAAO04B,oBACvD1I,EAAOhwB,OAAO0lB,QAAQC,cACzBH,EAAIjB,iBAAiB,WAAYyL,EAAOtK,QAAQo6D,oBAZZ,CAcxC,EACAzqE,QAAS,WACP,IAAI2a,EAAS3wB,KACR2wB,EAAOhwB,OAAO0lB,QAAQC,cACzBH,EAAIhB,oBAAoB,WAAYwL,EAAOtK,QAAQo6D,mBAEvD,EACAA,mBAAoB,WAClB,IAAI9vD,EAAS3wB,KACb2wB,EAAOtK,QAAQi6D,MAAQF,GAAQG,gBAC/B5vD,EAAOtK,QAAQm6D,cAAc7vD,EAAOhwB,OAAOiJ,MAAO+mB,EAAOtK,QAAQi6D,MAAMhhF,OAAO,EAChF,EACAihF,cAAe,WACb,IAAIG,EAAYv6D,EAAI/jB,SAAS6jB,SAASnf,MAAM,GAAG2K,MAAM,KAAKqB,QAAO,SAAU6tE,GAAQ,MAAgB,KAATA,CAAa,IACnG9L,EAAQ6L,EAAU7gF,OAGtB,MAAO,CAAEqJ,IAFCw3E,EAAU7L,EAAQ,GAETv1E,MADPohF,EAAU7L,EAAQ,GAEhC,EACA+L,WAAY,SAAoB13E,EAAKsC,GACnC,IAAImlB,EAAS3wB,KACb,GAAK2wB,EAAOtK,QAAQ+S,aAAgBzI,EAAOhwB,OAAO0lB,QAAQqL,QAA1D,CACA,IAAIkC,EAAQjD,EAAOiB,OAAOjc,GAAGnK,GACzBlM,EAAQ8gF,GAAQS,QAAQjtD,EAAM70B,KAAK,iBAClConB,EAAI/jB,SAAS6jB,SAAS66D,SAAS53E,KAClC5J,EAAQ4J,EAAM,IAAM5J,GAEtB,IAAIyhF,EAAe56D,EAAIE,QAAQ1e,MAC3Bo5E,GAAgBA,EAAazhF,QAAUA,IAGvCqxB,EAAOhwB,OAAO0lB,QAAQC,aACxBH,EAAIE,QAAQC,aAAa,CAAEhnB,MAAOA,GAAS,KAAMA,GAEjD6mB,EAAIE,QAAQE,UAAU,CAAEjnB,MAAOA,GAAS,KAAMA,GAb6B,CAe/E,EACAuhF,QAAS,SAAiB5hF,GACxB,OAAOA,EAAKqS,WACTjP,QAAQ,OAAQ,KAChBA,QAAQ,WAAY,IACpBA,QAAQ,OAAQ,KAChBA,QAAQ,MAAO,IACfA,QAAQ,MAAO,GACpB,EACAm+E,cAAe,SAAuB52E,EAAOtK,EAAO66B,GAClD,IAAIxJ,EAAS3wB,KACb,GAAIV,EACF,IAAK,IAAI0M,EAAI,EAAGnM,EAAS8wB,EAAOiB,OAAO/xB,OAAQmM,EAAInM,EAAQmM,GAAK,EAAG,CACjE,IAAI4nB,EAAQjD,EAAOiB,OAAOjc,GAAG3J,GAE7B,GADmBo0E,GAAQS,QAAQjtD,EAAM70B,KAAK,mBACzBO,IAAUs0B,EAAMvzB,SAASswB,EAAOhwB,OAAO+3B,qBAAsB,CAChF,IAAIltB,EAAQooB,EAAMpoB,QAClBmlB,EAAOqK,QAAQxvB,EAAO5B,EAAOuwB,EAC/B,CACF,MAEAxJ,EAAOqK,QAAQ,EAAGpxB,EAAOuwB,EAE7B,GAoDE6mD,GAAiB,CACnBC,YAAa,WACX,IAAItwD,EAAS3wB,KACb2wB,EAAOpB,KAAK,cACZ,IAAI2xD,EAAUl8D,EAAI5iB,SAASyB,KAAKxB,QAAQ,IAAK,IAE7C,GAAI6+E,IADkBvwD,EAAOiB,OAAOjc,GAAGgb,EAAO8F,aAAa13B,KAAK,aAC/B,CAC/B,IAAIu8B,EAAW3K,EAAOQ,WAAW/qB,SAAU,IAAOuqB,EAAOhwB,OAAiB,WAAI,eAAkBugF,EAAU,MAAQ11E,QAClH,QAAwB,IAAb8vB,EAA4B,OACvC3K,EAAOqK,QAAQM,EACjB,CACF,EACA6lD,QAAS,WACP,IAAIxwD,EAAS3wB,KACb,GAAK2wB,EAAO0vD,eAAejnD,aAAgBzI,EAAOhwB,OAAO0/E,eAAe3uD,QACxE,GAAIf,EAAOhwB,OAAO0/E,eAAe/5D,cAAgBH,EAAIE,SAAWF,EAAIE,QAAQC,aAC1EH,EAAIE,QAAQC,aAAa,KAAM,KAAQ,IAAOqK,EAAOiB,OAAOjc,GAAGgb,EAAO8F,aAAa13B,KAAK,cAAkB,GAC1G4xB,EAAOpB,KAAK,eACP,CACL,IAAIqE,EAAQjD,EAAOiB,OAAOjc,GAAGgb,EAAO8F,aAChC5yB,EAAO+vB,EAAM70B,KAAK,cAAgB60B,EAAM70B,KAAK,gBACjDimB,EAAI5iB,SAASyB,KAAOA,GAAQ,GAC5B8sB,EAAOpB,KAAK,UACd,CACF,EACAga,KAAM,WACJ,IAAI5Y,EAAS3wB,KACb,MAAK2wB,EAAOhwB,OAAO0/E,eAAe3uD,SAAYf,EAAOhwB,OAAO0lB,SAAWsK,EAAOhwB,OAAO0lB,QAAQqL,SAA7F,CACAf,EAAO0vD,eAAejnD,aAAc,EACpC,IAAIv1B,EAAOmhB,EAAI5iB,SAASyB,KAAKxB,QAAQ,IAAK,IAC1C,GAAIwB,EAEF,IADA,IAAI+F,EAAQ,EACHoC,EAAI,EAAGnM,EAAS8wB,EAAOiB,OAAO/xB,OAAQmM,EAAInM,EAAQmM,GAAK,EAAG,CACjE,IAAI4nB,EAAQjD,EAAOiB,OAAOjc,GAAG3J,GAE7B,IADgB4nB,EAAM70B,KAAK,cAAgB60B,EAAM70B,KAAK,mBACpC8E,IAAS+vB,EAAMvzB,SAASswB,EAAOhwB,OAAO+3B,qBAAsB,CAC5E,IAAIltB,EAAQooB,EAAMpoB,QAClBmlB,EAAOqK,QAAQxvB,EAAO5B,EAAO+mB,EAAOhwB,OAAO04B,oBAAoB,EACjE,CACF,CAEE1I,EAAOhwB,OAAO0/E,eAAee,YAC/BziF,EAAEwnB,GAAKpmB,GAAG,aAAc4wB,EAAO0vD,eAAeY,YAfiE,CAiBnH,EACAjrE,QAAS,WACP,IAAI2a,EAAS3wB,KACT2wB,EAAOhwB,OAAO0/E,eAAee,YAC/BziF,EAAEwnB,GAAKtO,IAAI,aAAc8Y,EAAO0vD,eAAeY,YAEnD,GAqDEI,GAAW,CACb/6C,IAAK,WACH,IAAI3V,EAAS3wB,KACTshF,EAAiB3wD,EAAOiB,OAAOjc,GAAGgb,EAAO8F,aACzC5b,EAAQ8V,EAAOhwB,OAAOwlC,SAAStrB,MAC/BymE,EAAeviF,KAAK,0BACtB8b,EAAQymE,EAAeviF,KAAK,yBAA2B4xB,EAAOhwB,OAAOwlC,SAAStrB,OAEhFE,aAAa4V,EAAOwV,SAASyJ,SAC7Bjf,EAAOwV,SAASyJ,QAAUzjB,EAAMG,UAAS,WACnCqE,EAAOhwB,OAAOwlC,SAASo7C,iBACrB5wD,EAAOhwB,OAAO83B,MAChB9H,EAAO+K,UACP/K,EAAOiL,UAAUjL,EAAOhwB,OAAOiJ,OAAO,GAAM,GAC5C+mB,EAAOpB,KAAK,aACFoB,EAAOiH,YAGPjH,EAAOhwB,OAAOwlC,SAASq7C,gBAIjC7wD,EAAOwV,SAAS+J,QAHhBvf,EAAOqK,QAAQrK,EAAOiB,OAAO/xB,OAAS,EAAG8wB,EAAOhwB,OAAOiJ,OAAO,GAAM,GACpE+mB,EAAOpB,KAAK,cAJZoB,EAAOiL,UAAUjL,EAAOhwB,OAAOiJ,OAAO,GAAM,GAC5C+mB,EAAOpB,KAAK,aAOLoB,EAAOhwB,OAAO83B,MACvB9H,EAAO+K,UACP/K,EAAO6K,UAAU7K,EAAOhwB,OAAOiJ,OAAO,GAAM,GAC5C+mB,EAAOpB,KAAK,aACFoB,EAAOkH,MAGPlH,EAAOhwB,OAAOwlC,SAASq7C,gBAIjC7wD,EAAOwV,SAAS+J,QAHhBvf,EAAOqK,QAAQ,EAAGrK,EAAOhwB,OAAOiJ,OAAO,GAAM,GAC7C+mB,EAAOpB,KAAK,cAJZoB,EAAO6K,UAAU7K,EAAOhwB,OAAOiJ,OAAO,GAAM,GAC5C+mB,EAAOpB,KAAK,aAOVoB,EAAOhwB,OAAOyxB,SAAWzB,EAAOwV,SAASC,SAAWzV,EAAOwV,SAASG,KAC1E,GAAGzrB,EACL,EACAmsB,MAAO,WACL,IAAIrW,EAAS3wB,KACb,YAAuC,IAA5B2wB,EAAOwV,SAASyJ,UACvBjf,EAAOwV,SAASC,UACpBzV,EAAOwV,SAASC,SAAU,EAC1BzV,EAAOpB,KAAK,iBACZoB,EAAOwV,SAASG,OACT,EACT,EACA4J,KAAM,WACJ,IAAIvf,EAAS3wB,KACb,QAAK2wB,EAAOwV,SAASC,cACkB,IAA5BzV,EAAOwV,SAASyJ,UAEvBjf,EAAOwV,SAASyJ,UAClB70B,aAAa4V,EAAOwV,SAASyJ,SAC7Bjf,EAAOwV,SAASyJ,aAAU5mB,GAE5B2H,EAAOwV,SAASC,SAAU,EAC1BzV,EAAOpB,KAAK,iBACL,EACT,EACAohB,MAAO,SAAe/mC,GACpB,IAAI+mB,EAAS3wB,KACR2wB,EAAOwV,SAASC,UACjBzV,EAAOwV,SAASE,SAChB1V,EAAOwV,SAASyJ,SAAW70B,aAAa4V,EAAOwV,SAASyJ,SAC5Djf,EAAOwV,SAASE,QAAS,EACX,IAAVz8B,GAAgB+mB,EAAOhwB,OAAOwlC,SAASs7C,mBAIzC9wD,EAAOQ,WAAW,GAAGjM,iBAAiB,gBAAiByL,EAAOwV,SAASo1C,iBACvE5qD,EAAOQ,WAAW,GAAGjM,iBAAiB,sBAAuByL,EAAOwV,SAASo1C,mBAJ7E5qD,EAAOwV,SAASE,QAAS,EACzB1V,EAAOwV,SAASG,QAKpB,GA6FEo7C,GAAO,CACT7nD,aAAc,WAGZ,IAFA,IAAIlJ,EAAS3wB,KACT4xB,EAASjB,EAAOiB,OACX5lB,EAAI,EAAGA,EAAI4lB,EAAO/xB,OAAQmM,GAAK,EAAG,CACzC,IAAIumE,EAAW5hD,EAAOiB,OAAOjc,GAAG3J,GAE5B21E,GADSpP,EAAS,GAAG77C,kBAEpB/F,EAAOhwB,OAAOg5B,mBAAoBgoD,GAAMhxD,EAAOmG,WACpD,IAAI8qD,EAAK,EACJjxD,EAAOI,iBACV6wD,EAAKD,EACLA,EAAK,GAEP,IAAIE,EAAelxD,EAAOhwB,OAAOmhF,WAAWC,UACxC5wE,KAAKsiB,IAAI,EAAItiB,KAAK8jB,IAAIs9C,EAAS,GAAGh7C,UAAW,GAC7C,EAAIpmB,KAAKijB,IAAIjjB,KAAKsiB,IAAI8+C,EAAS,GAAGh7C,UAAW,GAAI,GACrDg7C,EACGt5D,IAAI,CACHmlD,QAASyjB,IAEV55D,UAAW,eAAiB05D,EAAK,OAASC,EAAK,WACpD,CACF,EACArrD,cAAe,SAAuBnO,GACpC,IAAIuI,EAAS3wB,KACT4xB,EAASjB,EAAOiB,OAChBT,EAAaR,EAAOQ,WAExB,GADAS,EAAOxpB,WAAWggB,GACduI,EAAOhwB,OAAOg5B,kBAAiC,IAAbvR,EAAgB,CACpD,IAAI45D,GAAiB,EACrBpwD,EAAO9H,eAAc,WACnB,IAAIk4D,GACCrxD,IAAUA,EAAOkK,UAAtB,CACAmnD,GAAiB,EACjBrxD,EAAO2J,WAAY,EAEnB,IADA,IAAI2nD,EAAgB,CAAC,sBAAuB,iBACnCj2E,EAAI,EAAGA,EAAIi2E,EAAcpiF,OAAQmM,GAAK,EAC7CmlB,EAAW9tB,QAAQ4+E,EAAcj2E,GALQ,CAO7C,GACF,CACF,GAgDEk2E,GAAO,CACTroD,aAAc,WACZ,IAYIsoD,EAZAxxD,EAAS3wB,KACT4wB,EAAMD,EAAOC,IACbO,EAAaR,EAAOQ,WACpBS,EAASjB,EAAOiB,OAChBwwD,EAAczxD,EAAO1nB,MACrBo5E,EAAe1xD,EAAO3lB,OACtBsmB,EAAMX,EAAOU,aACbD,EAAaT,EAAOM,KACpBtwB,EAASgwB,EAAOhwB,OAAO2hF,WACvBvxD,EAAeJ,EAAOI,eACtBS,EAAYb,EAAOc,SAAWd,EAAOhwB,OAAO8wB,QAAQC,QACpD6wD,EAAgB,EAEhB5hF,EAAO6hF,SACLzxD,GAE2B,KAD7BoxD,EAAgBhxD,EAAWnyB,KAAK,wBACda,SAChBsiF,EAAgBxjF,EAAE,0CAClBwyB,EAAW9qB,OAAO87E,IAEpBA,EAAclpE,IAAI,CAAEjO,OAASo3E,EAAc,QAGd,KAD7BD,EAAgBvxD,EAAI5xB,KAAK,wBACPa,SAChBsiF,EAAgBxjF,EAAE,0CAClBiyB,EAAIvqB,OAAO87E,KAIjB,IAAK,IAAIn2E,EAAI,EAAGA,EAAI4lB,EAAO/xB,OAAQmM,GAAK,EAAG,CACzC,IAAIumE,EAAW3gD,EAAOjc,GAAG3J,GACrBmmB,EAAanmB,EACbwlB,IACFW,EAAa1tB,SAAS8tE,EAASxzE,KAAK,2BAA4B,KAElE,IAAI0jF,EAA0B,GAAbtwD,EACbkmB,EAAQlnC,KAAKC,MAAMqxE,EAAa,KAChCnxD,IACFmxD,GAAcA,EACdpqC,EAAQlnC,KAAKC,OAAOqxE,EAAa,MAEnC,IAAIlrD,EAAWpmB,KAAKsiB,IAAItiB,KAAKijB,IAAIm+C,EAAS,GAAGh7C,SAAU,IAAK,GACxDoqD,EAAK,EACLC,EAAK,EACLc,EAAK,EACLvwD,EAAa,GAAM,GACrBwvD,EAAc,GAARtpC,EAAYjnB,EAClBsxD,EAAK,IACKvwD,EAAa,GAAK,GAAM,GAClCwvD,EAAK,EACLe,EAAc,GAARrqC,EAAYjnB,IACRe,EAAa,GAAK,GAAM,GAClCwvD,EAAKvwD,EAAsB,EAARinB,EAAYjnB,EAC/BsxD,EAAKtxD,IACKe,EAAa,GAAK,GAAM,IAClCwvD,GAAMvwD,EACNsxD,EAAM,EAAItxD,EAA4B,EAAbA,EAAiBinB,GAExC/mB,IACFqwD,GAAMA,GAGH5wD,IACH6wD,EAAKD,EACLA,EAAK,GAGP,IAAI15D,EAAY,YAAc8I,EAAe,GAAK0xD,GAAc,iBAAmB1xD,EAAe0xD,EAAa,GAAK,oBAAsBd,EAAK,OAASC,EAAK,OAASc,EAAK,MAM3K,GALInrD,GAAY,GAAKA,GAAY,IAC/BgrD,EAA8B,GAAbpwD,EAA+B,GAAXoF,EACjCjG,IAAOixD,EAA+B,IAAbpwD,EAA+B,GAAXoF,IAEnDg7C,EAAStqD,UAAUA,GACftnB,EAAOuwC,aAAc,CAEvB,IAAIyxC,EAAe5xD,EAAewhD,EAASvzE,KAAK,6BAA+BuzE,EAASvzE,KAAK,4BACzF4jF,EAAc7xD,EAAewhD,EAASvzE,KAAK,8BAAgCuzE,EAASvzE,KAAK,+BACjE,IAAxB2jF,EAAa9iF,SACf8iF,EAAehkF,EAAG,oCAAuCoyB,EAAe,OAAS,OAAS,YAC1FwhD,EAASlsE,OAAOs8E,IAES,IAAvBC,EAAY/iF,SACd+iF,EAAcjkF,EAAG,oCAAuCoyB,EAAe,QAAU,UAAY,YAC7FwhD,EAASlsE,OAAOu8E,IAEdD,EAAa9iF,SAAU8iF,EAAa,GAAG/wE,MAAMwsD,QAAUjtD,KAAKsiB,KAAK8D,EAAU,IAC3EqrD,EAAY/iF,SAAU+iF,EAAY,GAAGhxE,MAAMwsD,QAAUjtD,KAAKsiB,IAAI8D,EAAU,GAC9E,CACF,CAQA,GAPApG,EAAWlY,IAAI,CACb,2BAA6B,YAAemY,EAAa,EAAK,KAC9D,wBAA0B,YAAeA,EAAa,EAAK,KAC3D,uBAAyB,YAAeA,EAAa,EAAK,KAC1D,mBAAqB,YAAeA,EAAa,EAAK,OAGpDzwB,EAAO6hF,OACT,GAAIzxD,EACFoxD,EAAcl6D,UAAW,qBAAwBm6D,EAAc,EAAKzhF,EAAOkiF,cAAgB,QAAWT,EAAc,EAAK,0CAA6CzhF,EAAkB,YAAI,SACvL,CACL,IAAImiF,EAAc3xE,KAAK8jB,IAAIstD,GAA6D,GAA3CpxE,KAAKC,MAAMD,KAAK8jB,IAAIstD,GAAiB,IAC9E9qD,EAAa,KACdtmB,KAAK4xE,IAAmB,EAAdD,EAAkB3xE,KAAK4xB,GAAM,KAAO,EAC5C5xB,KAAKyvD,IAAmB,EAAdkiB,EAAkB3xE,KAAK4xB,GAAM,KAAO,GAE/CigD,EAASriF,EAAOsiF,YAChBC,EAASviF,EAAOsiF,YAAcxrD,EAC9B/uB,EAAS/H,EAAOkiF,aACpBV,EAAcl6D,UAAW,WAAa+6D,EAAS,QAAUE,EAAS,uBAA0Bb,EAAe,EAAK35E,GAAU,QAAW25E,EAAe,EAAIa,EAAU,sBACpK,CAEF,IAAIC,EAAWp3C,GAAQE,UAAYF,GAAQG,WAAe9a,EAAa,EAAK,EAC5ED,EACGlJ,UAAW,qBAAuBk7D,EAAU,gBAAkBxyD,EAAOI,eAAiB,EAAIwxD,GAAiB,iBAAmB5xD,EAAOI,gBAAkBwxD,EAAgB,GAAK,OACjL,EACAhsD,cAAe,SAAuBnO,GACpC,IAAIuI,EAAS3wB,KACT4wB,EAAMD,EAAOC,IACJD,EAAOiB,OAEjBxpB,WAAWggB,GACXppB,KAAK,gHACLoJ,WAAWggB,GACVuI,EAAOhwB,OAAO2hF,WAAWE,SAAW7xD,EAAOI,gBAC7CH,EAAI5xB,KAAK,uBAAuBoJ,WAAWggB,EAE/C,GAsDEg7D,GAAO,CACTvpD,aAAc,WAIZ,IAHA,IAAIlJ,EAAS3wB,KACT4xB,EAASjB,EAAOiB,OAChBN,EAAMX,EAAOU,aACRrlB,EAAI,EAAGA,EAAI4lB,EAAO/xB,OAAQmM,GAAK,EAAG,CACzC,IAAIumE,EAAW3gD,EAAOjc,GAAG3J,GACrBurB,EAAWg7C,EAAS,GAAGh7C,SACvB5G,EAAOhwB,OAAO0iF,WAAWC,gBAC3B/rD,EAAWpmB,KAAKsiB,IAAItiB,KAAKijB,IAAIm+C,EAAS,GAAGh7C,SAAU,IAAK,IAE1D,IAEIgsD,GADU,IAAMhsD,EAEhBisD,EAAU,EACV7B,GAJSpP,EAAS,GAAG77C,kBAKrBkrD,EAAK,EAYT,GAXKjxD,EAAOI,eAKDO,IACTiyD,GAAWA,IALX3B,EAAKD,EACLA,EAAK,EACL6B,GAAWD,EACXA,EAAU,GAKZhR,EAAS,GAAG3gE,MAAMytD,QAAUluD,KAAK8jB,IAAI9jB,KAAKknC,MAAM9gB,IAAa3F,EAAO/xB,OAEhE8wB,EAAOhwB,OAAO0iF,WAAWnyC,aAAc,CAEzC,IAAIyxC,EAAehyD,EAAOI,eAAiBwhD,EAASvzE,KAAK,6BAA+BuzE,EAASvzE,KAAK,4BAClG4jF,EAAcjyD,EAAOI,eAAiBwhD,EAASvzE,KAAK,8BAAgCuzE,EAASvzE,KAAK,+BAC1E,IAAxB2jF,EAAa9iF,SACf8iF,EAAehkF,EAAG,oCAAuCgyB,EAAOI,eAAiB,OAAS,OAAS,YACnGwhD,EAASlsE,OAAOs8E,IAES,IAAvBC,EAAY/iF,SACd+iF,EAAcjkF,EAAG,oCAAuCgyB,EAAOI,eAAiB,QAAU,UAAY,YACtGwhD,EAASlsE,OAAOu8E,IAEdD,EAAa9iF,SAAU8iF,EAAa,GAAG/wE,MAAMwsD,QAAUjtD,KAAKsiB,KAAK8D,EAAU,IAC3EqrD,EAAY/iF,SAAU+iF,EAAY,GAAGhxE,MAAMwsD,QAAUjtD,KAAKsiB,IAAI8D,EAAU,GAC9E,CACAg7C,EACGtqD,UAAW,eAAiB05D,EAAK,OAASC,EAAK,oBAAsB4B,EAAU,gBAAkBD,EAAU,OAChH,CACF,EACAhtD,cAAe,SAAuBnO,GACpC,IAAIuI,EAAS3wB,KACT4xB,EAASjB,EAAOiB,OAChB6E,EAAc9F,EAAO8F,YACrBtF,EAAaR,EAAOQ,WAKxB,GAJAS,EACGxpB,WAAWggB,GACXppB,KAAK,gHACLoJ,WAAWggB,GACVuI,EAAOhwB,OAAOg5B,kBAAiC,IAAbvR,EAAgB,CACpD,IAAI45D,GAAiB,EAErBpwD,EAAOjc,GAAG8gB,GAAa3M,eAAc,WACnC,IAAIk4D,GACCrxD,IAAUA,EAAOkK,UAAtB,CAEAmnD,GAAiB,EACjBrxD,EAAO2J,WAAY,EAEnB,IADA,IAAI2nD,EAAgB,CAAC,sBAAuB,iBACnCj2E,EAAI,EAAGA,EAAIi2E,EAAcpiF,OAAQmM,GAAK,EAC7CmlB,EAAW9tB,QAAQ4+E,EAAcj2E,GANQ,CAQ7C,GACF,CACF,GAkDEy3E,GAAY,CACd5pD,aAAc,WAcZ,IAbA,IAAIlJ,EAAS3wB,KACToiF,EAAczxD,EAAO1nB,MACrBo5E,EAAe1xD,EAAO3lB,OACtB4mB,EAASjB,EAAOiB,OAChBT,EAAaR,EAAOQ,WACpBc,EAAkBtB,EAAOsB,gBACzBtxB,EAASgwB,EAAOhwB,OAAOkwC,gBACvB9f,EAAeJ,EAAOI,eACtB9I,EAAY0I,EAAOmG,UACnB4sD,EAAS3yD,EAA6BqxD,EAAc,EAA3Bn6D,EAA8Co6D,EAAe,EAA5Bp6D,EAC1D6oB,EAAS/f,EAAepwB,EAAOmwC,QAAUnwC,EAAOmwC,OAChDha,EAAYn2B,EAAOqwC,MAEdhlC,EAAI,EAAGnM,EAAS+xB,EAAO/xB,OAAQmM,EAAInM,EAAQmM,GAAK,EAAG,CAC1D,IAAIumE,EAAW3gD,EAAOjc,GAAG3J,GACrB4mB,EAAYX,EAAgBjmB,GAE5B23E,GAAqBD,EADPnR,EAAS,GAAG77C,kBACmB9D,EAAY,GAAMA,EAAajyB,EAAOswC,SAEnFsyC,EAAUxyD,EAAe+f,EAAS6yC,EAAmB,EACrDH,EAAUzyD,EAAe,EAAI+f,EAAS6yC,EAEtCC,GAAc9sD,EAAY3lB,KAAK8jB,IAAI0uD,GAEnC5yC,EAAUpwC,EAAOowC,QAEE,iBAAZA,IAAkD,IAA1BA,EAAQh+B,QAAQ,OACjDg+B,EAAY3mB,WAAWzpB,EAAOowC,SAAW,IAAOne,GAElD,IAAIipD,EAAa9qD,EAAe,EAAIggB,EAAU,EAC1C6qC,EAAa7qD,EAAeggB,EAAU,EAAqB,EAE3DI,EAAQ,GAAK,EAAIxwC,EAAOwwC,OAAShgC,KAAK8jB,IAAI0uD,GAG1CxyE,KAAK8jB,IAAI2mD,GAAc,OAASA,EAAa,GAC7CzqE,KAAK8jB,IAAI4mD,GAAc,OAASA,EAAa,GAC7C1qE,KAAK8jB,IAAI2uD,GAAc,OAASA,EAAa,GAC7CzyE,KAAK8jB,IAAIsuD,GAAW,OAASA,EAAU,GACvCpyE,KAAK8jB,IAAIuuD,GAAW,OAASA,EAAU,GACvCryE,KAAK8jB,IAAIkc,GAAS,OAASA,EAAQ,GAEvC,IAAI0yC,EAAiB,eAAiBjI,EAAa,MAAQC,EAAa,MAAQ+H,EAAa,gBAAkBJ,EAAU,gBAAkBD,EAAU,cAAgBpyC,EAAQ,IAI7K,GAFAohC,EAAStqD,UAAU47D,GACnBtR,EAAS,GAAG3gE,MAAMytD,OAAmD,EAAzCluD,KAAK8jB,IAAI9jB,KAAKknC,MAAMsrC,IAC5ChjF,EAAOuwC,aAAc,CAEvB,IAAI4yC,EAAkB/yD,EAAewhD,EAASvzE,KAAK,6BAA+BuzE,EAASvzE,KAAK,4BAC5F+kF,EAAiBhzD,EAAewhD,EAASvzE,KAAK,8BAAgCuzE,EAASvzE,KAAK,+BACjE,IAA3B8kF,EAAgBjkF,SAClBikF,EAAkBnlF,EAAG,oCAAuCoyB,EAAe,OAAS,OAAS,YAC7FwhD,EAASlsE,OAAOy9E,IAEY,IAA1BC,EAAelkF,SACjBkkF,EAAiBplF,EAAG,oCAAuCoyB,EAAe,QAAU,UAAY,YAChGwhD,EAASlsE,OAAO09E,IAEdD,EAAgBjkF,SAAUikF,EAAgB,GAAGlyE,MAAMwsD,QAAUulB,EAAmB,EAAIA,EAAmB,GACvGI,EAAelkF,SAAUkkF,EAAe,GAAGnyE,MAAMwsD,SAAYulB,EAAoB,GAAKA,EAAmB,EAC/G,CACF,EAGIz1D,EAAQG,eAAiBH,EAAQ81D,yBAC1B7yD,EAAW,GAAGvf,MACpBqyE,kBAAoBP,EAAS,SAEpC,EACAntD,cAAe,SAAuBnO,GACvBpoB,KACN4xB,OACJxpB,WAAWggB,GACXppB,KAAK,gHACLoJ,WAAWggB,EAChB,GAgDE87D,GAAS,CACX36C,KAAM,WACJ,IAAI5Y,EAAS3wB,KAETmkF,EADMxzD,EAAOhwB,OACMyjF,OACnBt1D,EAAc6B,EAAOpgB,YACrB4zE,EAAaxzD,kBAAkB7B,GACjC6B,EAAOyzD,OAAOzzD,OAASwzD,EAAaxzD,OACpCxE,EAAMpnB,OAAO4rB,EAAOyzD,OAAOzzD,OAAOkX,eAAgB,CAChD5R,qBAAqB,EACrByD,qBAAqB,IAEvBvN,EAAMpnB,OAAO4rB,EAAOyzD,OAAOzzD,OAAOhwB,OAAQ,CACxCs1B,qBAAqB,EACrByD,qBAAqB,KAEdvN,EAAMtH,SAASs/D,EAAaxzD,UACrCA,EAAOyzD,OAAOzzD,OAAS,IAAI7B,EAAY3C,EAAMpnB,OAAO,CAAC,EAAGo/E,EAAaxzD,OAAQ,CAC3EuF,uBAAuB,EACvBD,qBAAqB,EACrByD,qBAAqB,KAEvB/I,EAAOyzD,OAAOC,eAAgB,GAEhC1zD,EAAOyzD,OAAOzzD,OAAOC,IAAIxxB,SAASuxB,EAAOhwB,OAAOyjF,OAAOE,sBACvD3zD,EAAOyzD,OAAOzzD,OAAO5wB,GAAG,MAAO4wB,EAAOyzD,OAAOG,aAC/C,EACAA,aAAc,WACZ,IAAI5zD,EAAS3wB,KACTwkF,EAAe7zD,EAAOyzD,OAAOzzD,OACjC,GAAK6zD,EAAL,CACA,IAAI/qD,EAAe+qD,EAAa/qD,aAC5BD,EAAegrD,EAAahrD,aAChC,KAAIA,GAAgB76B,EAAE66B,GAAcn5B,SAASswB,EAAOhwB,OAAOyjF,OAAOK,wBAC9D,MAAOhrD,GAAX,CACA,IAAI6C,EAMJ,GAJEA,EADEkoD,EAAa7jF,OAAO83B,KACPh0B,SAAS9F,EAAE6lF,EAAahrD,cAAcz6B,KAAK,2BAA4B,IAEvE06B,EAEb9I,EAAOhwB,OAAO83B,KAAM,CACtB,IAAIisD,EAAe/zD,EAAO8F,YACtB9F,EAAOiB,OAAOjc,GAAG+uE,GAAcrkF,SAASswB,EAAOhwB,OAAO+3B,uBACxD/H,EAAO+K,UAEP/K,EAAOgL,YAAchL,EAAOQ,WAAW,GAAG1G,WAC1Ci6D,EAAe/zD,EAAO8F,aAExB,IAAIsF,EAAYpL,EAAOiB,OAAOjc,GAAG+uE,GAAc/4D,QAAS,6BAAgC2Q,EAAe,MAAQ3mB,GAAG,GAAGnK,QACjHqiB,EAAY8C,EAAOiB,OAAOjc,GAAG+uE,GAAcn5D,QAAS,6BAAgC+Q,EAAe,MAAQ3mB,GAAG,GAAGnK,QAC7E8wB,OAAf,IAAdP,EAA4ClO,OACzB,IAAdA,EAA4CkO,EACnDlO,EAAY62D,EAAeA,EAAe3oD,EAA4BlO,EACzDkO,CACxB,CACApL,EAAOqK,QAAQsB,EAtB6D,CAJ/C,CA2B/B,EACA9kB,OAAQ,SAAgBk6C,GACtB,IAAI/gC,EAAS3wB,KACTwkF,EAAe7zD,EAAOyzD,OAAOzzD,OACjC,GAAK6zD,EAAL,CAEA,IAAIjxD,EAAsD,SAAtCixD,EAAa7jF,OAAO4yB,cACpCixD,EAAanoD,uBACbmoD,EAAa7jF,OAAO4yB,cAEpBoxD,EAAmBh0D,EAAOhwB,OAAOyjF,OAAOO,iBACxCC,EAAYD,IAAqBH,EAAa7jF,OAAO83B,KACzD,GAAI9H,EAAOsH,YAAcusD,EAAavsD,WAAa2sD,EAAW,CAC5D,IACIC,EACA9pD,EAFA+pD,EAAqBN,EAAa/tD,YAGtC,GAAI+tD,EAAa7jF,OAAO83B,KAAM,CACxB+rD,EAAa5yD,OAAOjc,GAAGmvE,GAAoBzkF,SAASmkF,EAAa7jF,OAAO+3B,uBAC1E8rD,EAAa9oD,UAEb8oD,EAAa7oD,YAAc6oD,EAAarzD,WAAW,GAAG1G,WACtDq6D,EAAqBN,EAAa/tD,aAGpC,IAAIsuD,EAAkBP,EAAa5yD,OAChCjc,GAAGmvE,GACHn5D,QAAS,6BAAiCgF,EAAgB,UAAI,MAAQhb,GAAG,GACzEnK,QACCw5E,EAAkBR,EAAa5yD,OAChCjc,GAAGmvE,GACHv5D,QAAS,6BAAiCoF,EAAgB,UAAI,MAAQhb,GAAG,GACzEnK,QAC2Cq5E,OAAf,IAApBE,EAAoDC,OAC3B,IAApBA,EAAoDD,EAC3DC,EAAkBF,GAAuBA,EAAqBC,EAAoCD,EAClGE,EAAkBF,EAAqBA,EAAqBC,EAAoCC,EACjFD,EACxBhqD,EAAYpK,EAAO8F,YAAc9F,EAAOoI,cAAgB,OAAS,MACnE,MAEEgC,GADA8pD,EAAiBl0D,EAAOsH,WACKtH,EAAOoI,cAAgB,OAAS,OAE3D6rD,IACFC,GAAgC,SAAd9pD,EAAuB4pD,GAAoB,EAAIA,GAG/DH,EAAavtD,sBAAwButD,EAAavtD,qBAAqBlkB,QAAQ8xE,GAAkB,IAC/FL,EAAa7jF,OAAOq0B,eAEpB6vD,EADEA,EAAiBC,EACFD,EAAiB1zE,KAAKC,MAAMmiB,EAAgB,GAAK,EAEjDsxD,EAAiB1zE,KAAKC,MAAMmiB,EAAgB,GAAK,EAE3DsxD,EAAiBC,IAC1BD,EAAiBA,EAAiBtxD,EAAgB,GAEpDixD,EAAaxpD,QAAQ6pD,EAAgBnzB,EAAU,OAAI1oC,GAEvD,CAGA,IAAIi8D,EAAmB,EACnBC,EAAmBv0D,EAAOhwB,OAAOyjF,OAAOK,sBAa5C,GAXI9zD,EAAOhwB,OAAO4yB,cAAgB,IAAM5C,EAAOhwB,OAAOq0B,iBACpDiwD,EAAmBt0D,EAAOhwB,OAAO4yB,eAG9B5C,EAAOhwB,OAAOyjF,OAAOe,uBACxBF,EAAmB,GAGrBA,EAAmB9zE,KAAKC,MAAM6zE,GAE9BT,EAAa5yD,OAAOzyB,YAAY+lF,GAC5BV,EAAa7jF,OAAO83B,MAAS+rD,EAAa7jF,OAAO8wB,SAAW+yD,EAAa7jF,OAAO8wB,QAAQC,QAC1F,IAAK,IAAI1lB,EAAI,EAAGA,EAAIi5E,EAAkBj5E,GAAK,EACzCw4E,EAAarzD,WAAW/qB,SAAU,8BAAiCuqB,EAAOsH,UAAYjsB,GAAK,MAAQ5M,SAAS8lF,QAG9G,IAAK,IAAI3U,EAAM,EAAGA,EAAM0U,EAAkB1U,GAAO,EAC/CiU,EAAa5yD,OAAOjc,GAAGgb,EAAOsH,UAAYs4C,GAAKnxE,SAAS8lF,EA7E/B,CAgF/B,GAwEE90D,GAAa,CACfwb,GACAC,GACAM,GACAE,GACAiB,GACAslC,GACAkB,GA3yGiB,CACjBnwE,KAAM,aACNhD,OAAQ,CACNiV,WAAY,CACV8b,SAAS,EACTyd,gBAAgB,EAChBI,QAAQ,EACRD,aAAa,EACbK,YAAa,EACbT,aAAc,cAGlB/e,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnB/a,WAAY,CACV8b,SAAS,EACT/N,OAAQ4pB,GAAW5pB,OAAOpS,KAAKof,GAC/B6f,QAASjD,GAAWiD,QAAQj/B,KAAKof,GACjCse,OAAQ1B,GAAW0B,OAAO19B,KAAKof,GAC/Bme,iBAAkBvB,GAAWuB,iBAAiBv9B,KAAKof,GACnDqe,iBAAkBzB,GAAWyB,iBAAiBz9B,KAAKof,GACnDyf,cAAe7C,GAAW6C,cAAc7+B,KAAKof,GAC7C0f,cAAe9C,GAAW8C,cAAc9+B,KAAKof,GAC7C6c,eAAgBrhB,EAAMI,MACtBkhB,yBAAqBzkB,EACrB0kB,kBAAmB,KAGzB,EACA3tC,GAAI,CACFwpC,KAAM,WACJ,IAAI5Y,EAAS3wB,MACR2wB,EAAOhwB,OAAOiV,WAAW8b,SAAWf,EAAOhwB,OAAOyxB,SACrDzB,EAAO/a,WAAW46B,UAEhB7f,EAAOhwB,OAAOiV,WAAW8b,SAAWf,EAAO/a,WAAW+N,QAC5D,EACA3N,QAAS,WACP,IAAI2a,EAAS3wB,KACT2wB,EAAOhwB,OAAOyxB,SAChBzB,EAAO/a,WAAW+N,SAEhBgN,EAAO/a,WAAW8b,SAAWf,EAAO/a,WAAW46B,SACrD,IAwGe,CACjB7sC,KAAM,aACNhD,OAAQ,CACNklC,WAAY,CACVC,OAAQ,KACRC,OAAQ,KAERq/C,aAAa,EACb5Q,cAAe,yBACf0C,YAAa,uBACbzC,UAAW,uBAGftkD,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnBkV,WAAY,CACV0D,KAAM8qC,GAAW9qC,KAAKh4B,KAAKof,GAC3BnZ,OAAQ68D,GAAW78D,OAAOjG,KAAKof,GAC/B3a,QAASq+D,GAAWr+D,QAAQzE,KAAKof,GACjCgkD,YAAaN,GAAWM,YAAYpjE,KAAKof,GACzC+jD,YAAaL,GAAWK,YAAYnjE,KAAKof,KAG/C,EACA5wB,GAAI,CACFwpC,KAAM,WACJ,IAAI5Y,EAAS3wB,KACb2wB,EAAOkV,WAAW0D,OAClB5Y,EAAOkV,WAAWruB,QACpB,EACA6tE,OAAQ,WACOrlF,KACN6lC,WAAWruB,QACpB,EACA8tE,SAAU,WACKtlF,KACN6lC,WAAWruB,QACpB,EACAxB,QAAS,WACMhW,KACN6lC,WAAW7vB,SACpB,EACAugD,MAAO,SAAe5oD,GACpB,IASM43E,EATF50D,EAAS3wB,KACTixE,EAAMtgD,EAAOkV,WACbyuC,EAAUrD,EAAIqD,QACdC,EAAUtD,EAAIsD,SAEhB5jD,EAAOhwB,OAAOklC,WAAWu/C,aACrBzmF,EAAEgP,EAAEvE,QAAQxF,GAAG2wE,IACf51E,EAAEgP,EAAEvE,QAAQxF,GAAG0wE,KAGfA,EACFiR,EAAWjR,EAAQj0E,SAASswB,EAAOhwB,OAAOklC,WAAWqxC,aAC5C3C,IACTgR,EAAWhR,EAAQl0E,SAASswB,EAAOhwB,OAAOklC,WAAWqxC,eAEtC,IAAbqO,EACF50D,EAAOpB,KAAK,iBAAkBoB,GAE9BA,EAAOpB,KAAK,iBAAkBoB,GAE5B2jD,GACFA,EAAQ/yE,YAAYovB,EAAOhwB,OAAOklC,WAAWqxC,aAE3C3C,GACFA,EAAQhzE,YAAYovB,EAAOhwB,OAAOklC,WAAWqxC,aAGnD,IAoQe,CACjBvzE,KAAM,aACNhD,OAAQ,CACN6b,WAAY,CACV/Q,GAAI,KACJ+5E,cAAe,OACfp0C,WAAW,EACXg0C,aAAa,EACb5O,aAAc,KACdK,kBAAmB,KACnBH,eAAgB,KAChBL,aAAc,KACdH,qBAAqB,EACrBj1E,KAAM,UACNk0E,gBAAgB,EAChBE,mBAAoB,EACpBU,sBAAuB,SAAUvxE,GAAU,OAAOA,CAAQ,EAC1DwxE,oBAAqB,SAAUxxE,GAAU,OAAOA,CAAQ,EACxDiyE,YAAa,2BACbf,kBAAmB,kCACnBsB,cAAe,qBACfL,aAAc,4BACdC,WAAY,0BACZM,YAAa,2BACbJ,qBAAsB,qCACtBG,yBAA0B,yCAC1BF,eAAgB,8BAChBtC,UAAW,2BAGftkD,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnBnU,WAAY,CACV+sB,KAAMqrC,GAAWrrC,KAAKh4B,KAAKof,GAC3Bvd,OAAQwhE,GAAWxhE,OAAO7B,KAAKof,GAC/BnZ,OAAQo9D,GAAWp9D,OAAOjG,KAAKof,GAC/B3a,QAAS4+D,GAAW5+D,QAAQzE,KAAKof,GACjC2kD,mBAAoB,IAG1B,EACAv1E,GAAI,CACFwpC,KAAM,WACJ,IAAI5Y,EAAS3wB,KACb2wB,EAAOnU,WAAW+sB,OAClB5Y,EAAOnU,WAAWpJ,SAClBud,EAAOnU,WAAWhF,QACpB,EACAiuE,kBAAmB,WACjB,IAAI90D,EAAS3wB,MACT2wB,EAAOhwB,OAAO83B,WAEqB,IAArB9H,EAAOmF,YADvBnF,EAAOnU,WAAWhF,QAItB,EACAkuE,gBAAiB,WACf,IAAI/0D,EAAS3wB,KACR2wB,EAAOhwB,OAAO83B,MACjB9H,EAAOnU,WAAWhF,QAEtB,EACAmuE,mBAAoB,WAClB,IAAIh1D,EAAS3wB,KACT2wB,EAAOhwB,OAAO83B,OAChB9H,EAAOnU,WAAWpJ,SAClBud,EAAOnU,WAAWhF,SAEtB,EACAouE,qBAAsB,WACpB,IAAIj1D,EAAS3wB,KACR2wB,EAAOhwB,OAAO83B,OACjB9H,EAAOnU,WAAWpJ,SAClBud,EAAOnU,WAAWhF,SAEtB,EACAxB,QAAS,WACMhW,KACNwc,WAAWxG,SACpB,EACAugD,MAAO,SAAe5oD,GACpB,IAAIgjB,EAAS3wB,KAEX2wB,EAAOhwB,OAAO6b,WAAW/Q,IACtBklB,EAAOhwB,OAAO6b,WAAW4oE,aACzBz0D,EAAOnU,WAAWoU,IAAI/wB,OAAS,IAC9BlB,EAAEgP,EAAEvE,QAAQ/I,SAASswB,EAAOhwB,OAAO6b,WAAWi6D,gBAGjC,IADF9lD,EAAOnU,WAAWoU,IAAIvwB,SAASswB,EAAOhwB,OAAO6b,WAAW06D,aAErEvmD,EAAOpB,KAAK,iBAAkBoB,GAE9BA,EAAOpB,KAAK,iBAAkBoB,GAEhCA,EAAOnU,WAAWoU,IAAIrvB,YAAYovB,EAAOhwB,OAAO6b,WAAW06D,aAE/D,IAmRc,CAChBvzE,KAAM,YACNhD,OAAQ,CACNy2E,UAAW,CACT3rE,GAAI,KACJ4rE,SAAU,OACV92E,MAAM,EACN8wC,WAAW,EACX+mC,eAAe,EACf3D,UAAW,wBACXoR,UAAW,0BAGf11D,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnBymD,UAAW,CACT7tC,KAAM4tC,GAAU5tC,KAAKh4B,KAAKof,GAC1B3a,QAASmhE,GAAUnhE,QAAQzE,KAAKof,GAChCD,WAAYymD,GAAUzmD,WAAWnf,KAAKof,GACtCkJ,aAAcs9C,GAAUt9C,aAAatoB,KAAKof,GAC1C4F,cAAe4gD,GAAU5gD,cAAchlB,KAAKof,GAC5C0nD,gBAAiBlB,GAAUkB,gBAAgB9mE,KAAKof,GAChD4nD,iBAAkBpB,GAAUoB,iBAAiBhnE,KAAKof,GAClDknD,gBAAiBV,GAAUU,gBAAgBtmE,KAAKof,GAChDinD,mBAAoBT,GAAUS,mBAAmBrmE,KAAKof,GACtDqnD,YAAab,GAAUa,YAAYzmE,KAAKof,GACxCunD,WAAYf,GAAUe,WAAW3mE,KAAKof,GACtCwnD,UAAWhB,GAAUgB,UAAU5mE,KAAKof,GACpC6P,WAAW,EACXoP,QAAS,KACTqoC,YAAa,OAGnB,EACAl4E,GAAI,CACFwpC,KAAM,WACJ,IAAI5Y,EAAS3wB,KACb2wB,EAAOymD,UAAU7tC,OACjB5Y,EAAOymD,UAAU1mD,aACjBC,EAAOymD,UAAUv9C,cACnB,EACAriB,OAAQ,WACOxX,KACNo3E,UAAU1mD,YACnB,EACA4b,OAAQ,WACOtsC,KACNo3E,UAAU1mD,YACnB,EACAqc,eAAgB,WACD/sC,KACNo3E,UAAU1mD,YACnB,EACAmJ,aAAc,WACC75B,KACNo3E,UAAUv9C,cACnB,EACAtD,cAAe,SAAuBnO,GACvBpoB,KACNo3E,UAAU7gD,cAAcnO,EACjC,EACApS,QAAS,WACMhW,KACNo3E,UAAUphE,SACnB,IAwFa,CACfrS,KAAM,WACNhD,OAAQ,CACNm4E,SAAU,CACRpnD,SAAS,IAGbvB,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnBmoD,SAAU,CACRH,aAAcD,GAASC,aAAapnE,KAAKof,GACzCkJ,aAAc6+C,GAAS7+C,aAAatoB,KAAKof,GACzC4F,cAAemiD,GAASniD,cAAchlB,KAAKof,KAGjD,EACA5wB,GAAI,CACF8yE,WAAY,WACV,IAAIliD,EAAS3wB,KACR2wB,EAAOhwB,OAAOm4E,SAASpnD,UAC5Bf,EAAOhwB,OAAOs1B,qBAAsB,EACpCtF,EAAOkX,eAAe5R,qBAAsB,EAC9C,EACAsT,KAAM,WACJ,IAAI5Y,EAAS3wB,KACR2wB,EAAOhwB,OAAOm4E,SAASpnD,SAC5Bf,EAAOmoD,SAASj/C,cAClB,EACAA,aAAc,WACZ,IAAIlJ,EAAS3wB,KACR2wB,EAAOhwB,OAAOm4E,SAASpnD,SAC5Bf,EAAOmoD,SAASj/C,cAClB,EACAtD,cAAe,SAAuBnO,GACpC,IAAIuI,EAAS3wB,KACR2wB,EAAOhwB,OAAOm4E,SAASpnD,SAC5Bf,EAAOmoD,SAASviD,cAAcnO,EAChC,IAmcS,CACXzkB,KAAM,OACNhD,OAAQ,CACN2+D,KAAM,CACJ5tC,SAAS,EACTqoD,SAAU,EACVzxC,SAAU,EACVthC,QAAQ,EACR8+E,eAAgB,wBAChBC,iBAAkB,wBAGtB51D,OAAQ,WACN,IAAIQ,EAAS3wB,KACTs/D,EAAO,CACT5tC,SAAS,EACTyf,MAAO,EACP0nC,aAAc,EACdmB,WAAW,EACXP,QAAS,CACPlH,cAAUvpD,EACVqxD,gBAAYrxD,EACZsxD,iBAAatxD,EACb6wD,cAAU7wD,EACV8wD,kBAAc9wD,EACd+wD,SAAU,GAEZnxC,MAAO,CACLpI,eAAWxX,EACXyX,aAASzX,EACT+X,cAAU/X,EACVkY,cAAUlY,EACVyxD,UAAMzxD,EACN2xD,UAAM3xD,EACN0xD,UAAM1xD,EACN4xD,UAAM5xD,EACN/f,WAAO+f,EACPhe,YAAQge,EACRoY,YAAQpY,EACRqY,YAAQrY,EACRoxD,aAAc,CAAC,EACfS,eAAgB,CAAC,GAEnBv2C,SAAU,CACRt1B,OAAGga,EACH5a,OAAG4a,EACH8xD,mBAAe9xD,EACf+xD,mBAAe/xD,EACfgyD,cAAUhyD,IAId,+HAAiIvX,MAAM,KAAKsT,SAAQ,SAAUmH,GAC5JozC,EAAKpzC,GAAcgtD,GAAKhtD,GAAY3a,KAAKof,EAC3C,IACAxE,EAAMpnB,OAAO4rB,EAAQ,CACnB2uC,KAAMA,IAGR,IAAInuB,EAAQ,EACZvwC,OAAOguB,eAAe+B,EAAO2uC,KAAM,QAAS,CAC1Cp7D,IAAK,WACH,OAAOitC,CACT,EACA7vB,IAAK,SAAahiB,GAChB,GAAI6xC,IAAU7xC,EAAO,CACnB,IAAIkpC,EAAU7X,EAAO2uC,KAAKma,QAAQI,SAAWlpD,EAAO2uC,KAAKma,QAAQI,SAAS,QAAK7wD,EAC3EuiB,EAAU5a,EAAO2uC,KAAKma,QAAQlH,SAAW5hD,EAAO2uC,KAAKma,QAAQlH,SAAS,QAAKvpD,EAC/E2H,EAAOpB,KAAK,aAAcjwB,EAAOkpC,EAAS+C,EAC5C,CACA4F,EAAQ7xC,CACV,GAEJ,EACAS,GAAI,CACFwpC,KAAM,WACJ,IAAI5Y,EAAS3wB,KACT2wB,EAAOhwB,OAAO2+D,KAAK5tC,SACrBf,EAAO2uC,KAAK37C,QAEhB,EACA3N,QAAS,WACMhW,KACNs/D,KAAK9uB,SACd,EACAw1C,WAAY,SAAoBr4E,GAC9B,IAAIgjB,EAAS3wB,KACR2wB,EAAO2uC,KAAK5tC,SACjBf,EAAO2uC,KAAKr/B,aAAatyB,EAC3B,EACAs4E,SAAU,SAAkBt4E,GAC1B,IAAIgjB,EAAS3wB,KACR2wB,EAAO2uC,KAAK5tC,SACjBf,EAAO2uC,KAAK17B,WAAWj2B,EACzB,EACAu4E,UAAW,SAAmBv4E,GAC5B,IAAIgjB,EAAS3wB,KACT2wB,EAAOhwB,OAAO2+D,KAAK5tC,SAAWf,EAAO2uC,KAAK5tC,SAAWf,EAAOhwB,OAAO2+D,KAAKt4D,QAC1E2pB,EAAO2uC,KAAKt4D,OAAO2G,EAEvB,EACAmc,cAAe,WACb,IAAI6G,EAAS3wB,KACT2wB,EAAO2uC,KAAK5tC,SAAWf,EAAOhwB,OAAO2+D,KAAK5tC,SAC5Cf,EAAO2uC,KAAKic,iBAEhB,EACA/pC,YAAa,WACX,IAAI7gB,EAAS3wB,KACT2wB,EAAO2uC,KAAK5tC,SAAWf,EAAOhwB,OAAO2+D,KAAK5tC,SAAWf,EAAOhwB,OAAOyxB,SACrEzB,EAAO2uC,KAAKic,iBAEhB,IAyJS,CACX53E,KAAM,OACNhD,OAAQ,CACNuxE,KAAM,CACJxgD,SAAS,EACT+rD,cAAc,EACdC,mBAAoB,EACpByI,uBAAuB,EAEvBzJ,aAAc,cACdE,aAAc,sBACdD,YAAa,qBACbyJ,eAAgB,0BAGpBj2D,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnBuhD,KAAM,CACJqL,oBAAoB,EACpBztE,KAAMwsE,GAAKxsE,KAAKyB,KAAKof,GACrB4rD,YAAaD,GAAKC,YAAYhrE,KAAKof,KAGzC,EACA5wB,GAAI,CACF8yE,WAAY,WACV,IAAIliD,EAAS3wB,KACT2wB,EAAOhwB,OAAOuxE,KAAKxgD,SAAWf,EAAOhwB,OAAOooC,gBAC9CpY,EAAOhwB,OAAOooC,eAAgB,EAElC,EACAQ,KAAM,WACJ,IAAI5Y,EAAS3wB,KACT2wB,EAAOhwB,OAAOuxE,KAAKxgD,UAAYf,EAAOhwB,OAAO83B,MAAuC,IAA/B9H,EAAOhwB,OAAOs6B,cACrEtK,EAAOuhD,KAAKpiE,MAEhB,EACAu2E,OAAQ,WACN,IAAI11D,EAAS3wB,KACT2wB,EAAOhwB,OAAO8iC,WAAa9S,EAAOhwB,OAAOwkC,gBAC3CxU,EAAOuhD,KAAKpiE,MAEhB,EACAw8B,OAAQ,WACN,IAAI3b,EAAS3wB,KACT2wB,EAAOhwB,OAAOuxE,KAAKxgD,SACrBf,EAAOuhD,KAAKpiE,MAEhB,EACAw2E,kBAAmB,WACjB,IAAI31D,EAAS3wB,KACT2wB,EAAOhwB,OAAOuxE,KAAKxgD,SACrBf,EAAOuhD,KAAKpiE,MAEhB,EACAgrB,gBAAiB,WACf,IAAInK,EAAS3wB,KACT2wB,EAAOhwB,OAAOuxE,KAAKxgD,UACjBf,EAAOhwB,OAAOuxE,KAAKiU,wBAA2Bx1D,EAAOhwB,OAAOuxE,KAAKiU,wBAA0Bx1D,EAAOuhD,KAAKqL,qBACzG5sD,EAAOuhD,KAAKpiE,MAGlB,EACAga,cAAe,WACb,IAAI6G,EAAS3wB,KACT2wB,EAAOhwB,OAAOuxE,KAAKxgD,UAAYf,EAAOhwB,OAAOuxE,KAAKiU,uBACpDx1D,EAAOuhD,KAAKpiE,MAEhB,EACA0hC,YAAa,WACX,IAAI7gB,EAAS3wB,KACT2wB,EAAOhwB,OAAOuxE,KAAKxgD,SAAWf,EAAOhwB,OAAOyxB,SAC9CzB,EAAOuhD,KAAKpiE,MAEhB,IA0gDFkvE,GA/qCS,CACTr7E,KAAM,OACNhD,OAAQ,CACNs+E,KAAM,CACJvtD,SAAS,EACT60D,kBAAmB,sBACnB3G,iBAAkB,iBAClBF,iBAAkB,aAClBC,kBAAmB,0BACnBF,iBAAkB,yBAClBU,wBAAyB,0BAG7BhwD,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnBsuD,KAAM,CACJa,WAAYnhF,EAAG,gBAAoBgyB,EAAOhwB,OAAOs+E,KAAsB,kBAAI,yDAG/Er+E,OAAOkkB,KAAKm6D,IAAMl6D,SAAQ,SAAUmH,GAClCyE,EAAOsuD,KAAK/yD,GAAc+yD,GAAK/yD,GAAY3a,KAAKof,EAClD,GACF,EACA5wB,GAAI,CACFwpC,KAAM,WACJ,IAAI5Y,EAAS3wB,KACR2wB,EAAOhwB,OAAOs+E,KAAKvtD,UACxBf,EAAOsuD,KAAK11C,OACZ5Y,EAAOsuD,KAAKc,mBACd,EACAsF,OAAQ,WACN,IAAI10D,EAAS3wB,KACR2wB,EAAOhwB,OAAOs+E,KAAKvtD,SACxBf,EAAOsuD,KAAKc,kBACd,EACAuF,SAAU,WACR,IAAI30D,EAAS3wB,KACR2wB,EAAOhwB,OAAOs+E,KAAKvtD,SACxBf,EAAOsuD,KAAKc,kBACd,EACAyG,iBAAkB,WAChB,IAAI71D,EAAS3wB,KACR2wB,EAAOhwB,OAAOs+E,KAAKvtD,SACxBf,EAAOsuD,KAAKe,kBACd,EACAhqE,QAAS,WACP,IAAI2a,EAAS3wB,KACR2wB,EAAOhwB,OAAOs+E,KAAKvtD,SACxBf,EAAOsuD,KAAKjpE,SACd,IAmFY,CACdrS,KAAM,UACNhD,OAAQ,CACN0lB,QAAS,CACPqL,SAAS,EACTpL,cAAc,EACdpd,IAAK,WAGTinB,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnBtK,QAAS,CACPkjB,KAAM62C,GAAQ72C,KAAKh4B,KAAKof,GACxBiwD,WAAYR,GAAQQ,WAAWrvE,KAAKof,GACpC8vD,mBAAoBL,GAAQK,mBAAmBlvE,KAAKof,GACpD6vD,cAAeJ,GAAQI,cAAcjvE,KAAKof,GAC1C3a,QAASoqE,GAAQpqE,QAAQzE,KAAKof,KAGpC,EACA5wB,GAAI,CACFwpC,KAAM,WACJ,IAAI5Y,EAAS3wB,KACT2wB,EAAOhwB,OAAO0lB,QAAQqL,SACxBf,EAAOtK,QAAQkjB,MAEnB,EACAvzB,QAAS,WACP,IAAI2a,EAAS3wB,KACT2wB,EAAOhwB,OAAO0lB,QAAQqL,SACxBf,EAAOtK,QAAQrQ,SAEnB,EACA8T,cAAe,WACb,IAAI6G,EAAS3wB,KACT2wB,EAAOtK,QAAQ+S,aACjBzI,EAAOtK,QAAQu6D,WAAWjwD,EAAOhwB,OAAO0lB,QAAQnd,IAAKynB,EAAO8F,YAEhE,EACA+a,YAAa,WACX,IAAI7gB,EAAS3wB,KACT2wB,EAAOtK,QAAQ+S,aAAezI,EAAOhwB,OAAOyxB,SAC9CzB,EAAOtK,QAAQu6D,WAAWjwD,EAAOhwB,OAAO0lB,QAAQnd,IAAKynB,EAAO8F,YAEhE,IAwDmB,CACrB9yB,KAAM,kBACNhD,OAAQ,CACN0/E,eAAgB,CACd3uD,SAAS,EACTpL,cAAc,EACd86D,YAAY,IAGhBjxD,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnB0vD,eAAgB,CACdjnD,aAAa,EACbmQ,KAAMy3C,GAAez3C,KAAKh4B,KAAKof,GAC/B3a,QAASgrE,GAAehrE,QAAQzE,KAAKof,GACrCwwD,QAASH,GAAeG,QAAQ5vE,KAAKof,GACrCswD,YAAaD,GAAeC,YAAY1vE,KAAKof,KAGnD,EACA5wB,GAAI,CACFwpC,KAAM,WACJ,IAAI5Y,EAAS3wB,KACT2wB,EAAOhwB,OAAO0/E,eAAe3uD,SAC/Bf,EAAO0vD,eAAe92C,MAE1B,EACAvzB,QAAS,WACP,IAAI2a,EAAS3wB,KACT2wB,EAAOhwB,OAAO0/E,eAAe3uD,SAC/Bf,EAAO0vD,eAAerqE,SAE1B,EACA8T,cAAe,WACb,IAAI6G,EAAS3wB,KACT2wB,EAAO0vD,eAAejnD,aACxBzI,EAAO0vD,eAAec,SAE1B,EACA3vC,YAAa,WACX,IAAI7gB,EAAS3wB,KACT2wB,EAAO0vD,eAAejnD,aAAezI,EAAOhwB,OAAOyxB,SACrDzB,EAAO0vD,eAAec,SAE1B,IAoFa,CACfx9E,KAAM,WACNhD,OAAQ,CACNwlC,SAAU,CACRzU,SAAS,EACT7W,MAAO,IACP4mE,mBAAmB,EACnBgF,sBAAsB,EACtBjF,iBAAiB,EACjBD,kBAAkB,IAGtBpxD,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnBwV,SAAU,CACRC,SAAS,EACTC,QAAQ,EACRC,IAAK+6C,GAAS/6C,IAAI/0B,KAAKof,GACvBqW,MAAOq6C,GAASr6C,MAAMz1B,KAAKof,GAC3Buf,KAAMmxC,GAASnxC,KAAK3+B,KAAKof,GACzBggB,MAAO0wC,GAAS1wC,MAAMp/B,KAAKof,GAC3B+1D,mBAAoB,WACe,WAA7BjoF,SAASkoF,iBAAgCh2D,EAAOwV,SAASC,SAC3DzV,EAAOwV,SAASwK,QAEe,YAA7BlyC,SAASkoF,iBAAiCh2D,EAAOwV,SAASE,SAC5D1V,EAAOwV,SAASG,MAChB3V,EAAOwV,SAASE,QAAS,EAE7B,EACAk1C,gBAAiB,SAAyB5tE,GACnCgjB,IAAUA,EAAOkK,WAAclK,EAAOQ,YACvCxjB,EAAEvE,SAAWpJ,OACjB2wB,EAAOQ,WAAW,GAAGhM,oBAAoB,gBAAiBwL,EAAOwV,SAASo1C,iBAC1E5qD,EAAOQ,WAAW,GAAGhM,oBAAoB,sBAAuBwL,EAAOwV,SAASo1C,iBAChF5qD,EAAOwV,SAASE,QAAS,EACpB1V,EAAOwV,SAASC,QAGnBzV,EAAOwV,SAASG,MAFhB3V,EAAOwV,SAAS+J,OAIpB,IAGN,EACAnwC,GAAI,CACFwpC,KAAM,WACJ,IAAI5Y,EAAS3wB,KACT2wB,EAAOhwB,OAAOwlC,SAASzU,UACzBf,EAAOwV,SAASa,QAChBvoC,SAASymB,iBAAiB,mBAAoByL,EAAOwV,SAASugD,oBAElE,EACAE,sBAAuB,SAA+Bh9E,EAAOywB,GAC3D,IAAI1J,EAAS3wB,KACT2wB,EAAOwV,SAASC,UACd/L,IAAa1J,EAAOhwB,OAAOwlC,SAASsgD,qBACtC91D,EAAOwV,SAASwK,MAAM/mC,GAEtB+mB,EAAOwV,SAAS+J,OAGtB,EACA22C,gBAAiB,WACf,IAAIl2D,EAAS3wB,KACT2wB,EAAOwV,SAASC,UACdzV,EAAOhwB,OAAOwlC,SAASsgD,qBACzB91D,EAAOwV,SAAS+J,OAEhBvf,EAAOwV,SAASwK,QAGtB,EACAs1C,SAAU,WACR,IAAIt1D,EAAS3wB,KACT2wB,EAAOhwB,OAAOyxB,SAAWzB,EAAOwV,SAASE,SAAW1V,EAAOhwB,OAAOwlC,SAASsgD,sBAC7E91D,EAAOwV,SAASG,KAEpB,EACAtwB,QAAS,WACP,IAAI2a,EAAS3wB,KACT2wB,EAAOwV,SAASC,SAClBzV,EAAOwV,SAAS+J,OAElBzxC,SAAS0mB,oBAAoB,mBAAoBwL,EAAOwV,SAASugD,mBACnE,IAiDa,CACf/iF,KAAM,cACNhD,OAAQ,CACNmhF,WAAY,CACVC,WAAW,IAGf5xD,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnBmxD,WAAY,CACVjoD,aAAc6nD,GAAK7nD,aAAatoB,KAAKof,GACrC4F,cAAemrD,GAAKnrD,cAAchlB,KAAKof,KAG7C,EACA5wB,GAAI,CACF8yE,WAAY,WACV,IAAIliD,EAAS3wB,KACb,GAA6B,SAAzB2wB,EAAOhwB,OAAOy0B,OAAlB,CACAzE,EAAOiZ,WAAWxiC,KAAOupB,EAAOhwB,OAA6B,uBAAI,QACjE,IAAImyE,EAAkB,CACpBv/C,cAAe,EACfF,gBAAiB,EACjBW,eAAgB,EAChBiC,qBAAqB,EACrBpD,aAAc,EACd8G,kBAAkB,GAEpBxN,EAAMpnB,OAAO4rB,EAAOhwB,OAAQmyE,GAC5B3mD,EAAMpnB,OAAO4rB,EAAOkX,eAAgBirC,EAXW,CAYjD,EACAj5C,aAAc,WACZ,IAAIlJ,EAAS3wB,KACgB,SAAzB2wB,EAAOhwB,OAAOy0B,QAClBzE,EAAOmxD,WAAWjoD,cACpB,EACAtD,cAAe,SAAuBnO,GACpC,IAAIuI,EAAS3wB,KACgB,SAAzB2wB,EAAOhwB,OAAOy0B,QAClBzE,EAAOmxD,WAAWvrD,cAAcnO,EAClC,IAuIa,CACfzkB,KAAM,cACNhD,OAAQ,CACN2hF,WAAY,CACVpxC,cAAc,EACdsxC,QAAQ,EACRK,aAAc,GACdI,YAAa,MAGjB9yD,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnB2xD,WAAY,CACVzoD,aAAcqoD,GAAKroD,aAAatoB,KAAKof,GACrC4F,cAAe2rD,GAAK3rD,cAAchlB,KAAKof,KAG7C,EACA5wB,GAAI,CACF8yE,WAAY,WACV,IAAIliD,EAAS3wB,KACb,GAA6B,SAAzB2wB,EAAOhwB,OAAOy0B,OAAlB,CACAzE,EAAOiZ,WAAWxiC,KAAOupB,EAAOhwB,OAA6B,uBAAI,QACjEgwB,EAAOiZ,WAAWxiC,KAAOupB,EAAOhwB,OAA6B,uBAAI,MACjE,IAAImyE,EAAkB,CACpBv/C,cAAe,EACfF,gBAAiB,EACjBW,eAAgB,EAChBiC,qBAAqB,EACrBqN,gBAAiB,EACjBzQ,aAAc,EACdmC,gBAAgB,EAChB2E,kBAAkB,GAEpBxN,EAAMpnB,OAAO4rB,EAAOhwB,OAAQmyE,GAC5B3mD,EAAMpnB,OAAO4rB,EAAOkX,eAAgBirC,EAdW,CAejD,EACAj5C,aAAc,WACZ,IAAIlJ,EAAS3wB,KACgB,SAAzB2wB,EAAOhwB,OAAOy0B,QAClBzE,EAAO2xD,WAAWzoD,cACpB,EACAtD,cAAe,SAAuBnO,GACpC,IAAIuI,EAAS3wB,KACgB,SAAzB2wB,EAAOhwB,OAAOy0B,QAClBzE,EAAO2xD,WAAW/rD,cAAcnO,EAClC,IA8Ea,CACfzkB,KAAM,cACNhD,OAAQ,CACN0iF,WAAY,CACVnyC,cAAc,EACdoyC,eAAe,IAGnBnzD,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnB0yD,WAAY,CACVxpD,aAAcupD,GAAKvpD,aAAatoB,KAAKof,GACrC4F,cAAe6sD,GAAK7sD,cAAchlB,KAAKof,KAG7C,EACA5wB,GAAI,CACF8yE,WAAY,WACV,IAAIliD,EAAS3wB,KACb,GAA6B,SAAzB2wB,EAAOhwB,OAAOy0B,OAAlB,CACAzE,EAAOiZ,WAAWxiC,KAAOupB,EAAOhwB,OAA6B,uBAAI,QACjEgwB,EAAOiZ,WAAWxiC,KAAOupB,EAAOhwB,OAA6B,uBAAI,MACjE,IAAImyE,EAAkB,CACpBv/C,cAAe,EACfF,gBAAiB,EACjBW,eAAgB,EAChBiC,qBAAqB,EACrBpD,aAAc,EACd8G,kBAAkB,GAEpBxN,EAAMpnB,OAAO4rB,EAAOhwB,OAAQmyE,GAC5B3mD,EAAMpnB,OAAO4rB,EAAOkX,eAAgBirC,EAZW,CAajD,EACAj5C,aAAc,WACZ,IAAIlJ,EAAS3wB,KACgB,SAAzB2wB,EAAOhwB,OAAOy0B,QAClBzE,EAAO0yD,WAAWxpD,cACpB,EACAtD,cAAe,SAAuBnO,GACpC,IAAIuI,EAAS3wB,KACgB,SAAzB2wB,EAAOhwB,OAAOy0B,QAClBzE,EAAO0yD,WAAW9sD,cAAcnO,EAClC,IAoFkB,CACpBzkB,KAAM,mBACNhD,OAAQ,CACNkwC,gBAAiB,CACfC,OAAQ,GACRC,QAAS,EACTC,MAAO,IACPG,MAAO,EACPF,SAAU,EACVC,cAAc,IAGlB/gB,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnBkgB,gBAAiB,CACfhX,aAAc4pD,GAAU5pD,aAAatoB,KAAKof,GAC1C4F,cAAektD,GAAUltD,cAAchlB,KAAKof,KAGlD,EACA5wB,GAAI,CACF8yE,WAAY,WACV,IAAIliD,EAAS3wB,KACgB,cAAzB2wB,EAAOhwB,OAAOy0B,SAElBzE,EAAOiZ,WAAWxiC,KAAOupB,EAAOhwB,OAA6B,uBAAI,aACjEgwB,EAAOiZ,WAAWxiC,KAAOupB,EAAOhwB,OAA6B,uBAAI,MAEjEgwB,EAAOhwB,OAAOs1B,qBAAsB,EACpCtF,EAAOkX,eAAe5R,qBAAsB,EAC9C,EACA4D,aAAc,WACZ,IAAIlJ,EAAS3wB,KACgB,cAAzB2wB,EAAOhwB,OAAOy0B,QAClBzE,EAAOkgB,gBAAgBhX,cACzB,EACAtD,cAAe,SAAuBnO,GACpC,IAAIuI,EAAS3wB,KACgB,cAAzB2wB,EAAOhwB,OAAOy0B,QAClBzE,EAAOkgB,gBAAgBta,cAAcnO,EACvC,IAmJW,CACbzkB,KAAM,SACNhD,OAAQ,CACNyjF,OAAQ,CACNzzD,OAAQ,KACRw0D,sBAAsB,EACtBR,iBAAkB,EAClBF,sBAAuB,4BACvBH,qBAAsB,4BAG1Bn0D,OAAQ,WACN,IAAIQ,EAAS3wB,KACbmsB,EAAMpnB,OAAO4rB,EAAQ,CACnByzD,OAAQ,CACNzzD,OAAQ,KACR4Y,KAAM26C,GAAO36C,KAAKh4B,KAAKof,GACvBnZ,OAAQ0sE,GAAO1sE,OAAOjG,KAAKof,GAC3B4zD,aAAcL,GAAOK,aAAahzE,KAAKof,KAG7C,EACA5wB,GAAI,CACF8yE,WAAY,WACV,IAAIliD,EAAS3wB,KAETokF,EADMzzD,EAAOhwB,OACAyjF,OACZA,GAAWA,EAAOzzD,SACvBA,EAAOyzD,OAAO76C,OACd5Y,EAAOyzD,OAAO5sE,QAAO,GACvB,EACAg6B,YAAa,WACX,IAAI7gB,EAAS3wB,KACR2wB,EAAOyzD,OAAOzzD,QACnBA,EAAOyzD,OAAO5sE,QAChB,EACAA,OAAQ,WACN,IAAImZ,EAAS3wB,KACR2wB,EAAOyzD,OAAOzzD,QACnBA,EAAOyzD,OAAO5sE,QAChB,EACA80B,OAAQ,WACN,IAAI3b,EAAS3wB,KACR2wB,EAAOyzD,OAAOzzD,QACnBA,EAAOyzD,OAAO5sE,QAChB,EACAu1B,eAAgB,WACd,IAAIpc,EAAS3wB,KACR2wB,EAAOyzD,OAAOzzD,QACnBA,EAAOyzD,OAAO5sE,QAChB,EACA+e,cAAe,SAAuBnO,GACpC,IACIo8D,EADSxkF,KACaokF,OAAOzzD,OAC5B6zD,GACLA,EAAajuD,cAAcnO,EAC7B,EACA0+D,cAAe,WACb,IAAIn2D,EAAS3wB,KACTwkF,EAAe7zD,EAAOyzD,OAAOzzD,OAC5B6zD,GACD7zD,EAAOyzD,OAAOC,eAAiBG,GACjCA,EAAaxuE,SAEjB,KAwCJ,YAP0B,IAAfk0B,GAAO7Z,MAChB6Z,GAAO7Z,IAAM6Z,GAAOziB,MAAM4I,IAC1B6Z,GAAO5Z,cAAgB4Z,GAAOziB,MAAM6I,eAGtC4Z,GAAO7Z,IAAID,IAEJ8Z,EAEV,CAnlRmFsP,E,GCZhFutC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBj+D,IAAjBk+D,EACH,OAAOA,EAAa53E,QAGrB,IAAIC,EAASw3E,EAAyBE,GAAY,CAGjD33E,QAAS,CAAC,GAOX,OAHA63E,EAAoBF,GAAUz2E,KAAKjB,EAAOD,QAASC,EAAQA,EAAOD,QAAS03E,GAGpEz3E,EAAOD,OACf,CCrBA03E,EAAoBp5E,EAAK2B,IACxB,IAAIi1D,EAASj1D,GAAUA,EAAO63E,WAC7B,IAAO73E,EAAiB,QACxB,IAAM,EAEP,OADAy3E,EAAoBt3E,EAAE80D,EAAQ,CAAEl2D,EAAGk2D,IAC5BA,CAAM,ECLdwiB,EAAoBt3E,EAAI,CAACJ,EAAS+3E,KACjC,IAAI,IAAIn+E,KAAOm+E,EACXL,EAAoBj5E,EAAEs5E,EAAYn+E,KAAS89E,EAAoBj5E,EAAEuB,EAASpG,IAC5EtI,OAAOguB,eAAetf,EAASpG,EAAK,CAAE+kB,YAAY,EAAM/pB,IAAKmjF,EAAWn+E,IAE1E,ECND89E,EAAoB94E,EAAI,WACvB,GAA0B,iBAAfo5E,WAAyB,OAAOA,WAC3C,IACC,OAAOtnF,MAAQ,IAAIunF,SAAS,cAAb,EAChB,CAAE,MAAO55E,GACR,GAAsB,iBAAXxL,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxB6kF,EAAoBj5E,EAAI,CAACxO,EAAK0D,IAAUrC,OAAOiO,UAAUC,eAAe0B,KAAKjR,EAAK0D,GCClF+jF,EAAoBl5E,EAAKwB,IACH,oBAAX0tC,QAA0BA,OAAOwqC,aAC1C5mF,OAAOguB,eAAetf,EAAS0tC,OAAOwqC,YAAa,CAAEloF,MAAO,WAE7DsB,OAAOguB,eAAetf,EAAS,aAAc,CAAEhQ,OAAO,GAAO,ECL9D,EAAA4O,EAAOvP,EAAI,EAAAuP,EAAO1P,OAAS,EAAQ,KACnC,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,IACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,IACR,EAAQ,KACR,EAAQ,I","sources":["webpack:///./js/front/src/components/auth0.js","webpack:///./js/front/src/components/comments.js","webpack:///./js/front/src/components/contributors.js","webpack:///./js/front/src/components/embed.js","webpack:///./js/front/src/components/events.js","webpack:///./js/front/src/components/lightGallery.js","webpack:///./js/front/src/components/load-more-posts.js","webpack:///./js/front/src/components/main.js","webpack:///./js/front/src/components/notice.js","webpack:///./js/front/src/components/profile.js","webpack:///./js/front/src/components/select2.js","webpack:///./js/front/src/components/share.js","webpack:///./js/front/src/components/shows.js","webpack:///./node_modules/ssr-window/dist/ssr-window.esm.js","webpack:///./node_modules/dom7/dist/dom7.modular.js","webpack:///./node_modules/swiper/js/swiper.esm.js","webpack:///./js/front/src/components/sliders.js","webpack:///./node_modules/bootstrap/js/src/util.js","webpack:///./node_modules/bootstrap/js/src/modal.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/swiper/js/swiper.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///./js/front/src/app.js"],"sourcesContent":["jQuery(document).ready(function($){\r\n\r\n\tfunction resetToggle(objClick, show){\r\n\t\t\r\n\t\tobjClick\r\n\t\t\t.attr({'aria-label': show ? 'Show password' : 'Hide password'})\r\n\t\t\t.find('.text')\r\n\t\t\t.text(show ? 'Show' : 'Hide')\r\n\t\t\t.end()\r\n\t\t\t.find('.dashicons')\r\n\t\t\t.removeClass(show ? 'dashicons-hidden' : 'dashicons-visibility')\r\n\t\t\t.addClass(show ? 'dashicons-visibility' : 'dashicons-hidden');\r\n\t}\r\n\r\n\tfunction checkPasswordStrength(value) {\r\n\t\t\r\n\t\tlet obj = $('.s-form__password-hints');\r\n\t\t\r\n\t\tvar speciaCharactersError \t= obj.find('[data-attr=\"special-characters\"]');\r\n\t\tvar upperCaseError \t\t\t= obj.find('[data-attr=\"upper-case\"]');\r\n\t\tvar lowerCaseError \t\t\t= obj.find('[data-attr=\"lower-case\"]');\r\n\t\tvar lengthError \t\t\t= obj.find('[data-attr=\"length\"]');\r\n\t\t\r\n\t\tvar lowerCaseLetters \t= /[a-z]/g;\r\n\t\tvar upperCaseLetters \t= /[A-Z]/g;\r\n\t\tvar specialCharacters \t= /[!@#$%^&*-]/g;\r\n\t\tvar numbers \t\t\t= /[0-9]/g;\r\n\t\r\n\t\tif (value.trim().length < 8) {\r\n\t\t\tlengthError.removeClass('satisfied');\r\n\t\t} else {\r\n\t\t\tlengthError.addClass('satisfied');\r\n\t\t}\r\n\t\r\n\t\tif (!value.match(numbers) || !value.match(upperCaseLetters)) {\r\n\t\t\tupperCaseError.removeClass('satisfied');\r\n\t\t} else {\r\n\t\t\tupperCaseError.addClass('satisfied');\r\n\t\t}\r\n\t\r\n\t\tif (!value.match(lowerCaseLetters)) {\r\n\t\t\tlowerCaseError.removeClass('satisfied');\r\n\t\t} else {\r\n\t\t\tlowerCaseError.addClass('satisfied');\r\n\t\t}\r\n\t\r\n\t\tif (!value.match(specialCharacters)) {\r\n\t\t\tspeciaCharactersError.removeClass('satisfied');\r\n\t\t} else {\r\n\t\t\tspeciaCharactersError.addClass('satisfied');\r\n\t\t}\r\n\t}\r\n\r\n\t$('.form-with-password-hints input[name=\"pass1\"]').on('keyup', function(){\r\n\t\tcheckPasswordStrength($(this).val());\r\n\t});\r\n\t\t\r\n\tif($('.form-with-password-hints input[name=\"pass1\"]').length)\r\n\t\tcheckPasswordStrength($('.form-with-password-hints input[name=\"pass1\"]').val());\r\n\r\n\t$('.toggle-password-field').on('click', function(){\r\n\t\t\r\n\t\tlet obj = $(this).closest('.wp-pwd');\r\n\t\tlet objInput = obj.find('input');\r\n\t\tlet objClick = $(this);\r\n\t\t\r\n\t\tif('password' === objInput.attr('type')){\r\n\t\t\tobjInput.attr('type', 'text');\r\n\t\t\tresetToggle(objClick, false);\r\n\t\t} else {\r\n\t\t\tobjInput.attr('type', 'password');\r\n\t\t\tresetToggle(objClick, true);\r\n\t\t}\r\n\t});\r\n\t\r\n\t$('input[name=\"pass1\"]').on('keyup', function(){\r\n \r\n\t\tlet pwdHint = $('.s-form__password-hints');\r\n\t\t\r\n if(pwdHint.hasClass('d-none'))\r\n pwdHint.removeClass('d-none');\r\n\t});\r\n\r\n\t$('.s-form--registration').on('focusout', 'input[name=\"pass1\"]', function(){\r\n\t\t\r\n\t\tlet pwdTooltip = $('.JS--password-tooltip.tooltip-pass-left');\r\n\r\n\t\tif(pwdTooltip.length)\r\n\t\t\tpwdTooltip.hide();\r\n\t});\r\n\r\n\t$('.s-form--registration').on('keyup', 'input[name=\"pass1\"]', function(){\r\n\r\n\t\tconst tooltip \t\t\t= $('.JS--password-tooltip');\r\n\t\tconst value \t\t\t= this.value;\r\n\t\tconst passwordMinLength = 8;\r\n\t\tconst lowerCaseLetters \t= /[a-z]/g;\r\n\t\tconst upperCaseLetters \t= /[A-Z]/g;\r\n\t\tconst numbers \t\t\t= /[0-9]/g;\r\n\t\t\r\n\t\ttooltip.show();\r\n\t\t\r\n\t\tif (value.trim().length >= passwordMinLength) {\r\n\t\t\ttooltip.find('span.length').addClass('success');\r\n\t\t} else {\r\n\t\t\ttooltip.find('span.length').removeClass('success');\r\n\t\t}\r\n\t\tif (value.match(numbers)) {\r\n\t\t\ttooltip.find('span.number').addClass('success');\r\n\t\t} else {\r\n\t\t\ttooltip.find('span.number').removeClass('success');\r\n\t\t}\r\n\t\tif (value.match(lowerCaseLetters) && value.match(upperCaseLetters)) {\r\n\t\t\ttooltip.find('span.string').addClass('success');\r\n\t\t} else {\r\n\t\t\ttooltip.find('span.string').removeClass('success');\r\n\t\t}\r\n\t});\r\n\r\n\t$('#front-auth').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, obj, objClick;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\t\tobj\t\t\t= objClick.closest('form');\r\n\r\n\t\tparams.login \t\t\t= obj.find('input[name=\"login\"]').val();\r\n\t\tparams.user_password \t= obj.find('input[name=\"user_password\"]').val();\r\n\t\tparams.redirect_to \t\t= obj.find('input[name=\"redirect_to\"]').val();\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', true);\r\n },\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_auth',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n objClick.removeClass('disabled');\r\n\t\t\t\tobj.find('[name]').removeClass('invalid');\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', false);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 2){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\twindow.location.replace(res.data.href);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 3){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\t$.fn.inValid(obj, res.data.error.input);\r\n\t\t\t\t}\r\n }\r\n });\r\n });\r\n\t\r\n\t$('#front-registration').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, obj, objClick;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\t\tobj\t\t\t= objClick.closest('form');\r\n\r\n\t\tparams.pass1 \t\t= obj.find('input[name=\"pass1\"]').val();\r\n\t\tparams.pass2 \t\t= obj.find('input[name=\"pass2\"]').val();\r\n\t\tparams.user_email\t= obj.find('input[name=\"user_email\"]').val();\r\n\t\tparams.firstname\t= obj.find('input[name=\"firstname\"]').val();\r\n\t\tparams.lastname\t\t= obj.find('input[name=\"lastname\"]').val();\r\n\t\tparams.company\t\t= obj.find('input[name=\"company\"]').val();\r\n\t\tparams.job_position\t= obj.find('input[name=\"job_position\"]').val();\r\n\t\tparams.redirect_to \t= obj.find('input[name=\"redirect_to\"]').val();\r\n\t\tparams.accept \t\t= +obj.find('input[name=\"accept\"]').prop('checked');\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n obj.siblings('.preloader').toggleClass('active', true);\r\n },\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_registration',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n objClick.removeClass('disabled');\r\n\t\t\t\tobj.find('[name]').removeClass('invalid');\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', false);\r\n\r\n\t\t\t\tif(res.data.status == 1)\r\n\t\t\t\t\tobj.parent().replaceWith(res.data.html);\r\n\r\n\t\t\t\tif(res.data.status == 2){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\twindow.location.replace(res.data.href);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(res.data.status == 3){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\t$.fn.inValid(obj, res.data.error.input);\r\n\t\t\t\t}\r\n }\r\n });\r\n });\r\n\r\n\t$('#front-magic-link').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, obj, objClick;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\t\tobj\t\t\t= objClick.closest('form');\r\n\r\n\t\tparams.user_email \t= obj.find('input[name=\"user_email\"]').val();\r\n\t\tparams.redirect_to \t= obj.find('input[name=\"redirect_to\"]').val();\r\n\t\tparams.type \t\t= objClick.attr('data-type');\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n obj.siblings('.preloader').toggleClass('active', true);\r\n },\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_magic_link',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n objClick.removeClass('disabled');\r\n\t\t\t\tobj.find('[name]').removeClass('invalid');\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', false);\r\n\r\n\t\t\t\tif(res.data.status == 1)\r\n\t\t\t\t\tobj.parent().replaceWith(res.data.html);\r\n\r\n\t\t\t\tif(res.data.status == 2){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\twindow.location.replace(res.data.href);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(res.data.status == 3){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\t$.fn.inValid(obj, res.data.error.input);\r\n\t\t\t\t}\r\n }\r\n });\r\n });\r\n\r\n\t$('#front-generate-password').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet obj, objClick;\r\n\t\t\r\n\t\tobjClick\t= $(this);\r\n\t\tobj\t\t\t= objClick.closest('form');\r\n\r\n\t\t$.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', true);\r\n },\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'generate-password',\r\n\t\t\t},\r\n success: function(res){\r\n objClick.removeClass('disabled');\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', false);\r\n\r\n\t\t\t\tobj.find('input[name=\"pass1\"]').val(res.data).trigger('keyup');\r\n }\r\n });\r\n\t});\r\n\r\n\t$('#front-reset-password').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, obj, objClick;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\t\tobj\t\t\t= objClick.closest('form');\r\n\r\n\t\tparams.pass1 \t\t= obj.find('input[name=\"pass1\"]').val();\r\n\t\tparams.rp_key \t\t= obj.find('input[name=\"rp_key\"]').val();\r\n\t\tparams.rp_login \t= obj.find('input[name=\"rp_login\"]').val();\r\n\t\tparams.redirect_to \t= obj.find('input[name=\"redirect_to\"]').val();\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n obj.siblings('.preloader').toggleClass('active', true);\r\n },\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_reset_password',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n objClick.removeClass('disabled');\r\n\t\t\t\tobj.find('[name]').removeClass('invalid');\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', false);\r\n\r\n\t\t\t\tif(res.data.status == 1)\r\n\t\t\t\t\tobj.parent().replaceWith(res.data.html);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 2){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\twindow.location.replace(res.data.href);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 3){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\t$.fn.inValid(obj, res.data.error.input);\r\n\t\t\t\t}\r\n }\r\n });\r\n });\r\n\r\n\t$('#front-join-event').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, obj, objClick, cff = {};\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\t\tobj\t\t\t= objClick.closest('form');\r\n\r\n\t\tparams.post_id = obj.find('input[name=\"post_id\"]').val();\r\n\t\t\r\n\t\t\r\n\t\tobj.find('input[type=\"text\"][name^=\"cff_\"], select[name^=\"cff_\"]').each(function() {\r\n\t\t\tvar name = $(this).attr('name');\r\n\t\t\tvar value = $(this).val();\r\n\t\t\tcff[name] = value;\r\n\t\t});\r\n\t\t\r\n\t\tobj.find('input[type=\"radio\"][name^=\"cff_\"]').each(function() {\r\n\t\t\tvar name = $(this).attr('name');\r\n\r\n\t\t\tif (!(name in cff))\r\n cff[name] = '';\r\n\t\t\r\n\t\t\tif ($(this).is(':checked')) {\r\n\t\t\t\tvar value = $(this).val();\r\n\t\t\t\tcff[name] = value;\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\t\tobj.find('input[type=\"checkbox\"][name^=\"cff_\"]').each(function() {\r\n\t\t\tvar name = $(this).attr('name');\r\n\r\n\t\t\tcff[name] = $(this).prop('checked');\r\n\t\t});\r\n\t\t\r\n\t\tparams.cff = cff;\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n obj.siblings('.preloader').toggleClass('active', true);\r\n },\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_join_event',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n objClick.removeClass('disabled');\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', false);\r\n\r\n\t\t\t\tif(res.data.status == 1)\r\n\t\t\t\t\tobj.parent().replaceWith(res.data.html);\r\n\r\n\t\t\t\tif(res.data.status == 2){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\twindow.location.replace(res.data.href);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(res.data.status == 3){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\t$.fn.inValid(obj, res.data.error.input);\r\n\t\t\t\t}\r\n }\r\n });\r\n });\r\n\r\n\t$('#front-auth-by-facebook').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tlet params, obj, objClick, hash, urlParams;\r\n\t\t\r\n\t\tparams \t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\t\tobj\t\t\t= objClick.closest('form');\r\n\r\n\t\thash \t\t= window.location.hash.substring(1);\r\n\t\turlParams \t= new URLSearchParams(hash);\r\n\t\r\n\t\tparams.access_token = urlParams.get('access_token');\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', true);\r\n },\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_auth_by_facebook',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', false);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 1)\r\n\t\t\t\t\tobj.parent().replaceWith(res.data.html);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 2){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\tobj.parent().replaceWith(res.data.html);\r\n\t\t\t\t\twindow.location.replace(res.data.href);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n }\r\n });\r\n });\r\n\t\r\n\tif($('#front-auth-by-facebook').length)\r\n\t\t$('#front-auth-by-facebook').trigger('click');\r\n\t\r\n\t$('#front-facebook-delete-user-status').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tlet params, obj, objClick;\r\n\t\t\r\n\t\tparams \t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\t\tobj\t\t\t= objClick.closest('form');\r\n\r\n\t\tparams.facebook_user_id = obj.find('input[name=\"facebook_user_id\"]').val();\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', true);\r\n },\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_facebook_delete_user_status',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', false);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 1)\r\n\t\t\t\t\tobj.parent().replaceWith(res.data.html);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n }\r\n });\r\n });\r\n\t\r\n\tif($('#front-facebook-delete-user-status').length)\r\n\t\t$('#front-facebook-delete-user-status').trigger('click');\r\n\r\n\t$('#front-auth-by-linkedin').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tlet params, obj, objClick;\r\n\t\t\r\n\t\tparams \t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\t\tobj\t\t\t= objClick.closest('form');\r\n\r\n\t\tparams.code = obj.find('input[name=\"code\"]').val();\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', true);\r\n },\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_auth_by_linkedin',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', false);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 1)\r\n\t\t\t\t\tobj.parent().replaceWith(res.data.html);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 2){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\tobj.parent().replaceWith(res.data.html);\r\n\t\t\t\t\twindow.location.replace(res.data.href);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n }\r\n });\r\n });\r\n\t\r\n\tif($('#front-auth-by-linkedin').length)\r\n\t\t$('#front-auth-by-linkedin').trigger('click');\r\n\r\n\t$('#front-get-x-oauth-token').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, obj, objClick;\r\n\t\t\r\n\t\tparams \t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\t\tobj\t\t\t= objClick.closest('section');\r\n\t\t\r\n\t\tparams.redirect_to = obj.find('input[name=\"redirect_to\"]').val();\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n\t\t\t\tobj.find('.preloader').toggleClass('active', true);\r\n },\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_get_x_oauth_token',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n\t\t\t\tobjClick.removeClass('disabled');\r\n\t\t\t\tobj.find('.preloader').toggleClass('active', false);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 2){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\twindow.location.replace(res.data.href);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n }\r\n });\r\n });\r\n\r\n\t$('#front-auth-by-x').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tlet params, obj, objClick;\r\n\t\t\r\n\t\tparams \t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\t\tobj\t\t\t= objClick.closest('form');\r\n\r\n\t\tparams.oauth_token \t\t= obj.find('input[name=\"oauth_token\"]').val();\r\n\t\tparams.oauth_verifier \t= obj.find('input[name=\"oauth_verifier\"]').val();\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', true);\r\n },\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_auth_by_x',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', false);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 1)\r\n\t\t\t\t\tobj.parent().replaceWith(res.data.html);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 2){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\tobj.parent().replaceWith(res.data.html);\r\n\t\t\t\t\twindow.location.replace(res.data.href);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n }\r\n });\r\n });\r\n\t\r\n\tif($('#front-auth-by-x').length)\r\n\t\t$('#front-auth-by-x').trigger('click');\r\n\r\n\t$('#front-auth-by-google').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tlet params, obj, objClick;\r\n\t\t\r\n\t\tparams \t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\t\tobj\t\t\t= objClick.closest('form');\r\n\r\n\t\tparams.code = obj.find('input[name=\"code\"]').val();\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', true);\r\n },\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_auth_by_google',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', false);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 1)\r\n\t\t\t\t\tobj.parent().replaceWith(res.data.html);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 2){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\tobj.parent().replaceWith(res.data.html);\r\n\t\t\t\t\twindow.location.replace(res.data.href);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n }\r\n });\r\n });\r\n\t\r\n\tif($('#front-auth-by-google').length)\r\n\t\t$('#front-auth-by-google').trigger('click');\r\n\r\n\t$('#front-auth-by-reddit').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tlet params, obj, objClick;\r\n\t\t\r\n\t\tparams \t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\t\tobj\t\t\t= objClick.closest('form');\r\n\r\n\t\tparams.code = obj.find('input[name=\"code\"]').val();\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', true);\r\n },\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_auth_by_reddit',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', false);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 1)\r\n\t\t\t\t\tobj.parent().replaceWith(res.data.html);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 2){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\tobj.parent().replaceWith(res.data.html);\r\n\t\t\t\t\twindow.location.replace(res.data.href);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n }\r\n });\r\n });\r\n\t\r\n\tif($('#front-auth-by-reddit').length)\r\n\t\t$('#front-auth-by-reddit').trigger('click');\r\n\r\n});","jQuery(document).ready(function($){\r\n\r\n jQuery.extend(jQuery.fn, {\r\n /*\r\n * check if field value lenth more than 3 symbols ( for name and comment )\r\n */\r\n validate: function(){\r\n if(jQuery(this).val().length < 3){\r\n jQuery(this).addClass('error');\r\n return false\r\n }else{\r\n jQuery(this).removeClass('error');\r\n return true\r\n }\r\n },\r\n /*\r\n * check if email is correct\r\n * add to your CSS the styles of .error field, for example border-color:red;\r\n */\r\n validateEmail: function(){\r\n var emailReg = /^([\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4})?$/,\r\n emailToValidate = jQuery(this).val();\r\n if (!emailReg.test(emailToValidate) || emailToValidate == \"\") {\r\n jQuery(this).addClass('error');\r\n return false\r\n } else {\r\n jQuery(this).removeClass('error');\r\n return true\r\n }\r\n },\r\n });\r\n\r\n $(\"#comments\").on('keyup', 'textarea', function(){\r\n \r\n\t\tlet maxVal \t= $(this).attr('maxlength');\r\n let len \t= $(this).val().length;\r\n\r\n if(len > maxVal){\r\n\t\t\t$(this).val($(this).val().substring(0, maxVal));\r\n }else{\r\n $(this).closest('form').find('.counter-sym').text(maxVal - len);\r\n }\r\n });\r\n\r\n function increaseCommentCount(){\r\n let number = parseInt($('#comment-count').text());\r\n number++;\r\n $('#comment-count').text(number);\r\n }\r\n\r\n function decreaseCommentCount(){\r\n let number = parseInt($('#comment-count').text());\r\n number--;\r\n $('#comment-count').text(number);\r\n }\r\n\r\n\tfunction isCheckRecaptcha(objClick){\r\n\t\t\r\n\t\tif(!$('input[name=\"g_recaptcha_response\"]').length)\r\n\t\t\treturn true;\r\n\t\t\r\n\t\tlet obj = $('input[name=\"g_recaptcha_response\"]');\r\n\t\tlet recaptcha = obj.val();\r\n\t\tif(recaptcha)\r\n\t\t\treturn true;\r\n\r\n\t\tgrecaptcha.ready(function(){\r\n\t\t\tgrecaptcha.execute($('input[name=\"recaptcha_public_key\"]').val(), {action: 'comment'}).then(function(token){\r\n\t\t\t\tobj.val(token);\r\n\t\t\t\tobjClick.trigger('click');\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\t\r\n\t$('#comments').on('click', '.delete-comment', function(event){\r\n\t\tevent.preventDefault();\r\n \r\n\t\tlet answer = confirm(\"Are you sure want to delete this comment?\");\r\n\t\tif(!answer) return false;\r\n\t\t\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, obj, objClick;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\t\tobj\t\t\t= objClick.closest('li');\r\n\r\n\t\tparams.comment_id = obj.attr('data-comment-id');\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n obj.addClass('not-active deleting');\r\n },\r\n data: {\r\n\t\t\t\tdata: params,\r\n\t\t\t\taction: 'front_delete_comment',\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n objClick.removeClass('disabled');\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 1){\r\n\t\t\t\t\tobj.fadeOut(300, function(){\r\n obj.remove();\r\n });\r\n \r\n\t\t\t\t\tdecreaseCommentCount();\r\n\t\t\t\t}\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n }\r\n });\r\n });\r\n\r\n $('#comments').on('click', '.reply-comment', function(event){\r\n event.preventDefault();\r\n\t\t\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, obj, objClick;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\t\tobj\t\t\t= objClick.closest('form');\r\n\r\n\t\tparams.parent_id \t\t\t= obj.find('#commentID').val();\r\n\t\tparams.post_id \t\t\t\t= obj.find('#comment_post_ID').val();\r\n\t\tparams.content \t\t\t\t= obj.find('#replycontent').val();\r\n\t\tparams.g_recaptcha_response\t= $('input[name=\"g_recaptcha_response\"]').length ? $('input[name=\"g_recaptcha_response\"]').val() : '';\r\n\r\n\t\t$('#replycontent').validate();\r\n\t\t\r\n\t\tif(\r\n\t\t\t$('#replycontent').hasClass('error') ||\r\n\t\t\t! isCheckRecaptcha(objClick)\r\n\t\t){\r\n\t\t\tobjClick.removeClass('disabled');\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\t\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n beforeSend: function(){\r\n objClick.val('Sending...');\r\n },\r\n data: {\r\n\t\t\t\tdata: params,\r\n\t\t\t\taction: 'front_reply_comment',\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n objClick.removeClass('disabled').val('Send Reply');\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 1){\r\n\t\t\t\t\t$('input[name=\"g_recaptcha_response\"]').val('');\r\n\t\t\t\t\t$('#comment-' + params.parent_id).after(res.data.html);\r\n\t\t\t\t\tobj.remove();\r\n increaseCommentCount();\r\n\t\t\t\t}\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n }\r\n });\r\n });\r\n\r\n\t$('#comments').on('click', '.add-comment', function(event){\r\n event.preventDefault();\r\n\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet obj, objClick, respond, commentlist, cancelreplylink;\r\n\t\t\r\n\t\tobjClick \t\t= $(this);\r\n\t\tobj\t\t\t\t= objClick.closest('form');\r\n respond \t\t= $('#respond');\r\n commentlist \t= $('.comment-list');\r\n cancelreplylink = $('#cancel-comment-reply-link');\r\n\r\n $('#comment').validate();\r\n\r\n\t\tif(obj.find('input[name=\"author\"]').length)\r\n\t\t\tobj.find('input[name=\"author\"]').validate();\r\n\t\r\n\t\tif(obj.find('input[name=\"email\"]').length)\r\n\t\t\tobj.find('input[name=\"email\"]').validateEmail();\r\n\t\t\r\n\t\tif(\r\n\t\t\t$('#comment').hasClass('error') ||\r\n\t\t\tobj.find('input[name=\"author\"]').hasClass('error') ||\r\n\t\t\tobj.find('input[name=\"email\"]').hasClass('error') ||\r\n\t\t\t! isCheckRecaptcha(objClick)\r\n\t\t){\r\n\t\t\tobjClick.removeClass('disabled');\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\r\n\t\t$.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n\t\t\t\tobjClick.val('Sending...');\r\n\t\t\t},\r\n\t\t\tdata: obj.serialize() + '&action=front_add_comment&security=' + appVars.securitycode,\r\n\t\t\tsuccess: function(res){\r\n\t\t\t\tobjClick.removeClass('disabled').val('Submit');\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 1){\r\n\t\t\t\t\t\r\n\t\t\t\t\tlet addedCommentHTML = res.data.html;\r\n\t\t\t\t\t\r\n\t\t\t\t\t//if this post already has comments\r\n\t\t\t\t\tif(commentlist.length > 0){\r\n\t\t\r\n\t\t\t\t\t\t//if in reply to another comment\r\n\t\t\t\t\t\tif (respond.parent().hasClass('comment')){\r\n\t\t\r\n\t\t\t\t\t\t\t// if the other replies exist\r\n\t\t\t\t\t\t\tif(respond.parent().children('.children').length){\r\n\t\t\t\t\t\t\t\trespond.parent().children('.children').append(addedCommentHTML);\r\n\t\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t// if no replies, add
    \r\n\t\t\t\t\t\t\t\taddedCommentHTML = '
      ' + addedCommentHTML + '
    ';\r\n\t\t\t\t\t\t\t\trespond.parent().append(addedCommentHTML);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tcancelreplylink.trigger(\"click\"); //close respond form\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcommentlist.append(addedCommentHTML); //simple comment\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t//if no comments yet\r\n\t\t\t\t\t\taddedCommentHTML = '
      ' + addedCommentHTML + '
    ';\r\n\t\t\t\t\t\trespond.before($(addedCommentHTML));\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\t$('#comment').val('');\r\n\t\t\t\t\t$('input[name=\"g_recaptcha_response\"]').val('');\r\n\t\t\t\t\tincreaseCommentCount();\r\n\t\t\t\t\tobj.find('textarea').trigger('keyup');\r\n\t\t\t\t}\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\r\n $('body').on('click', '.comment-reply-link', function(){\r\n \r\n\t\tlet obj = $('#replyform');\r\n\t\t\r\n\t\tobj.remove();\r\n \r\n\t\tif(obj.length == 0){\r\n \r\n\t\t\tlet parentComment \t= $(this).closest('.comment');\r\n let commentID \t\t= parentComment.attr('data-comment-id');\r\n let postID \t\t\t= $('#comments').data('post-id');\r\n\r\n\t\t\tlet htmlReplyForm =\r\n '
    \\n' +\r\n '
    \\n' +\r\n ' \\n' +\r\n '
    \\n' +\r\n ' \\n' +\r\n ' \\n' +\r\n '
    200
    \\n' +\r\n ' \\n' +\r\n '
    \\n' +\r\n '
    \\n' +\r\n '
    ';\r\n\r\n $('#comment-' + commentID).after(htmlReplyForm);\r\n $('#replycontent').focus();\r\n }\r\n });\r\n\r\n});","jQuery(document).ready(function($){\r\n\r\n\t$('body').on('click', '#front-subscribe-contributor', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, objClick, text;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\t\t\r\n\t\ttext = objClick.text();\r\n\t\t\r\n\t\tparams.contributor_id \t= objClick.attr('data-contributor-id');\r\n\t\tparams.post_id \t\t\t= objClick.attr('data-post-id');\r\n\t\t\r\n\t\t$.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n objClick.text(\"Processing...\");\r\n },\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_subscribe_contributor',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n objClick.removeClass('disabled');\r\n\r\n\t\t\t\tif(res.data.status == 1)\r\n\t\t\t\t\tobjClick.replaceWith(res.data.html);\r\n\r\n\t\t\t\tif(res.data.status == 2){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\twindow.location.replace(res.data.href);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(res.data.status == 3){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\tobjClick.text(text);\r\n\t\t\t\t}\r\n }\r\n });\r\n });\r\n\t\r\n\t$('body').on('click', '#front-subscribe-contributor-by-email', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, obj, objClick, text;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\t\tobj\t\t\t= objClick.closest('form');\r\n\t\t\r\n\t\tparams.email\t= obj.find('input[name=\"email\"]').val();\r\n\t\tparams.post_id\t= obj.find('input[name=\"post_id\"]').val();\r\n\r\n\t\t$.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n obj.siblings('.preloader').toggleClass('active', true);\r\n },\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_subscribe_contributor_by_email',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n objClick.removeClass('disabled');\r\n\t\t\t\tobj.find('[name]').removeClass('invalid');\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', false);\r\n\r\n\t\t\t\tif(res.data.status == 1){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\tobj.find('input[name=\"email\"]').val('');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(res.data.status == 3){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\t$.fn.inValid(obj, res.data.error.input);\r\n\t\t\t\t}\r\n }\r\n });\r\n });\r\n\r\n\r\n\tconst itemsList \t\t= $('.items-tags-list');\r\n\tconst items \t\t\t= itemsList.find('.item');\r\n\tconst visibleItemsCount = 4;\r\n\r\n\tif (items.length > visibleItemsCount)\r\n\t\titemsList.append('
    ');\r\n\r\n\titems.slice(0, visibleItemsCount).addClass('shown');\r\n\titems.not('.shown').hide();\r\n\r\n\titemsList.on('click', '.JS-show-more', function (event) {\r\n\t\tevent.preventDefault();\r\n\t\t\r\n\t\titems.not('.shown').toggle();\r\n\t\tconst isShown = $(this).toggleClass('showLess').hasClass('showLess');\r\n\t\t$(this).text(isShown ? '-less' : '+more');\r\n\t});\r\n\r\n});","jQuery(document).ready(function($){\r\n\t\r\n\tlet video_ = null;\r\n\t\r\n\twindow._wq = window._wq || [];\r\n\t_wq.push({\r\n\t\tid: '_all',\r\n\t\tonReady: function(video){\r\n\t\t\t\r\n\t\t\tvideo_ = video;\r\n\t\t\t\r\n\t\t\tif(video.embedded()){\r\n\t\t\t\tconsole.log(\"your video \" + video.name() + \" ready\");\r\n\t\t\t\t$('.s-video-helper').addClass('s-video-helper__hidden');\r\n\t\t\t\t\r\n\t\t\t\tif($('[data-embed-autoplay=\"true\"]').length){\r\n\t\t\t\t\tlet obj = $('[data-embed-autoplay=\"true\"]');\r\n\t\t\t\t\tobj.attr('data-embed-autoplay', 'false');\r\n\t\t\t\t\tobj.find('.JS--show-play-embed:first').trigger('click');\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t}else{\r\n\t\t\t\tconsole.log('your video not ready')\r\n\t\t\t\t$('.s-video-helper').addClass('s-video-helper__failed');\r\n\t\t\t\t$('.s-video-helper').removeClass('s-video-helper__loading');\r\n\t\t\t};\r\n\r\n\t\t\tif(video_.state() === \"playing\"){\r\n\t\t\t\tconsole.log(\"the video playing\");\r\n\t\t\t\t$('.s-video-helper').removeClass('s-video-helper__ended s-video-helper__loading').addClass('s-video-helper__hidden');\r\n\t\t\t}else if(video_.state() === \"beforeplay\"){\r\n\t\t\t\tconsole.log(\"the video not played yet\");\r\n\t\t\t}else if(video_.state() === \"paused\"){\r\n\t\t\t\tconsole.log(\"the video paused\");\r\n\t\t\t}else if(video_.state() === \"ended\"){\r\n\t\t\t\tconsole.log(\"the video ended\");\r\n\t\t\t}else{\r\n\t\t\t\tconsole.log(\"sorry try once more!\");\r\n\t\t\t\t$('.s-video-helper').addClass('s-video-helper__failed').removeClass('s-video-helper__loading');\r\n\t\t\t};\r\n\t\t}\r\n\t});\r\n\r\n\t$('.JS--play-now').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\t\t\r\n\t\t$('.JS--show-play-embed:first').trigger('click');\r\n\t});\r\n\r\n\t$('.JS--show-play-embed').on('click', function(event){\r\n event.preventDefault();\r\n\t\t\r\n\t\t$('.preview-embed-player-section').remove();\r\n\t\t$('.embed-player-section').removeClass('h-0');\r\n\t\t\r\n\t\tlet currentEmbedData\t= $('[data-current-playing-embed-code]');\r\n\t\tlet embedObj\t\t\t= $(this).closest('[data-embed-code]');\r\n\t\tlet embedCode \t\t\t= embedObj.attr('data-embed-code');\r\n\t\tlet embedDescription\t= currentEmbedData.attr('data-embed-description');\r\n\t\tlet currentEmbedCode \t= currentEmbedData.attr('data-current-playing-embed-code');\r\n\t\tlet scrollTopAnchor\t\t= currentEmbedData.attr('data-scroll-top-anchor');\r\n\t\t\r\n\t\tif(video_ && embedCode!=currentEmbedCode){\r\n \r\n\t\t\t_wq.push({\r\n id: '_all',\r\n onHasData: function(video){\r\n video.play();\r\n }\r\n });\r\n\t\t\t\r\n\t\t\tvideo_.replaceWith(embedCode, {\r\n transition: \"crossfade\",\r\n autoPlay: true,\r\n preload: true,\r\n });\r\n\t\t\t\r\n\t\t\tcurrentEmbedData.attr('data-current-playing-embed-code',embedCode);\r\n\t\t\t$('.s-video-helper').addClass('s-video-helper__loading').removeClass('s-video-helper__hidden');\r\n\t\t\t\r\n\t\t\tif(embedDescription){\r\n\t\t\t\tlet currentEmbedtext = embedObj.find('[data-embed-description-content]').text();\r\n\t\t\t\tcurrentEmbedData.siblings('[data-embed-description-container]').text(currentEmbedtext);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t$('[data-embed-code]').removeClass('current-active');\r\n\t\t\t$('[data-embed-code=\"'+embedCode+'\"]').addClass('current-active');\r\n }\r\n\r\n\r\n\t\tif (!currentEmbedData.hasClass('fixed')){\r\n\t\t\t\r\n\t\t\tlet position = 0;\r\n\t\t\t\r\n\t\t\tif(scrollTopAnchor=='hfTsdslu'){\r\n\t\t\t\tposition = $('[data-anchor=\"'+scrollTopAnchor+'\"]').outerHeight();\r\n\t\t\t}else{\r\n\t\t\t\tposition = $('[data-anchor=\"'+scrollTopAnchor+'\"]').offset().top;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t$('html, body').animate({scrollTop: position}, 'slow');\r\n\t\t}\r\n\t});\r\n\t\r\n\t$(window).on('scroll', function(){\r\n \r\n\t\tlet currentEmbedData = $('[data-current-playing-embed-code]');\r\n\t\t\r\n\t\tif(!currentEmbedData.length)\r\n\t\t\treturn;\r\n\t\t\r\n\t\tlet videoWrap \t\t= $('.embed-player-section');\r\n\t\tlet videoFixPoint \t= videoWrap.outerHeight() + videoWrap.offset().top - 50;\r\n\t\tlet scroll \t\t\t= $(window).scrollTop();\r\n\r\n\t\tif(scroll >= videoFixPoint){\r\n\t\t\tcurrentEmbedData.addClass('fixed');\r\n\t\t} else {\r\n\t\t\tcurrentEmbedData.removeClass('fixed');\r\n\t\t}\r\n });\r\n\r\n});","jQuery(document).ready(function($){\r\n\r\n\t$('body').on('click', '.s-client-event__tabs-item' , function(){\r\n\t\t\r\n\t\t$('.s-client-event__tabs-item').removeClass('active');\r\n\t\t$(this).addClass('active');\r\n\t\t\r\n\t\tlet item = $(this).attr('data-event-tab-name');\r\n\t\t\r\n\t\t$('[data-event-tab]').hide();\r\n\t\t$('[data-event-tab=\"'+item+'\"]').show();\r\n\t\t\r\n\t\t$('html, body').animate({\r\n\t\t\tscrollTop: $('[data-event-tab=\"'+item+'\"]').offset().top - 100\r\n\t\t}, 300);\r\n\t});\r\n\t\r\n\t$(window).on('resize', function(){\r\n\t\tif ($(window).width() >= 992){\r\n\t\t\t$('[data-event-tab]').show();\r\n\t\t} else {\r\n\t\t\t$('[data-event-tab-name=\"event-tab-speakers\"]').trigger('click');\r\n\t\t}\r\n\t});\r\n\r\n\t$('.JS-open-modal').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tlet obj = $(this);\r\n\t\tlet key = obj.attr('data-key');\r\n\t\t\r\n\t\tobj.closest('.JS-event-modal').find('.JS-modal-wrap').addClass('is-open');\r\n\r\n\t\t$('.JS-modal-speaker').hide();\r\n\t\t\r\n\t\t$('.JS-modal-speaker[data-key=\"'+key+'\"]').fadeIn();\r\n\t});\r\n\r\n\t$('.JS-event-modal').on('click', function(event){\r\n\r\n\t\tif ($('.JS-modal-wrap').hasClass('is-open')) {\r\n if ($(event.target).parents('.JS-event-modal').length) {\r\n if (event.target.classList.contains('JS-modal-bg')\r\n || event.target.classList.contains('JS-modal-block')) {\r\n $(this).find('.JS-modal-wrap').removeClass('is-open');\r\n }\r\n }\r\n }\r\n\t});\r\n\r\n});","jQuery(document).ready(function($){\r\n\r\n\tlet LGsliderMedia \t= $('.sliderMedia-gallery-desktop');\r\n\tlet LGsliderImages \t= $('.sliderImages-lightGallery');\r\n\t\r\n\tfor(let item of LGsliderMedia){\r\n\t\tlightGallery(item,{\r\n\t\t\tselector: '.image-box',\r\n\t\t\tspeed: 500,\r\n\t\t\tdownload: false,\r\n\t\t\tmobileSettings: {\r\n\t\t\t\tshowCloseIcon: true,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\t\r\n\tfor(let item of LGsliderImages){\r\n\t\tlightGallery(item,{\r\n\t\t\tplugins: [lgVideo],\r\n\t\t\tspeed: 500,\r\n\t\t\tdownload: false,\r\n\t\t\tmobileSettings: {\r\n\t\t\t\tshowCloseIcon: true,\r\n\t\t\t},\r\n\t\t});\r\n\t}\r\n\r\n\t$(LGsliderMedia).on('click', '.ctb-video-box[data-frame-type=\"video-file\"]', function(){\r\n\t\t\r\n\t\tif(!$(this).hasClass('swiper-slide-active'))\r\n\t\t\treturn;\r\n\t\t\r\n\t\tlet container \t= $(this).find('.sliderMedia__item');\r\n\t\tlet frame \t\t= $(this).find('.sliderMedia__item .sliderMedia__item-frame video');\r\n\t\tcontainer.addClass('play-iframe');\r\n\t\tframe.trigger('play');\r\n\t});\r\n\r\n\t$(LGsliderMedia).on('click', '.ctb-video-box[data-frame-type=\"youtube\"], .ctb-video-box[data-frame-type=\"other\"]', function(){\r\n\t\t\r\n\t\tif(!$(this).hasClass('swiper-slide-active'))\r\n\t\t\treturn;\r\n\t\r\n\t\tconst videoId \t= $(this).data('video-id');\r\n\t\tconst frameType = $(this).data('frame-type');\r\n\t\tlet container \t= $(this).find('.sliderMedia__item');\r\n\t\tlet frame \t\t= $(this).find('.sliderMedia__item .sliderMedia__item-frame');\r\n\t\t\r\n\t\tlet frame_html\t= '';\r\n\t\t\r\n\t\tif(frameType=='youtube')\r\n\t\t\tframe_html = '';\r\n\t\t\r\n\t\tif(frameType=='other')\r\n\t\t\tframe_html = '';\r\n\t\t\r\n\t\tif(!$(this).hasClass('loaded')){\r\n\t\t\t\r\n\t\t\tcontainer.addClass('loading');\r\n\t\t\tframe.html(frame_html);\r\n \r\n\t\t\tsetTimeout(function(){\r\n\t\t\t\tcontainer.removeClass('loading');\r\n\t\t\t\tcontainer.addClass('play-iframe');\r\n\t\t\t\t$(this).addClass('loaded');\r\n\t\t\t},1000);\r\n\t\t\t\r\n\t\t}else{\r\n \r\n\t\t\tcontainer.addClass('play-iframe');\r\n\t\t\tlet srcAttr = frame.find('iframe').attr('src');\r\n\t\t\tvar launchIframe = srcAttr.replace('autoplay=1','autoplay=0');\r\n\t\t\tframe.find('iframe').attr('src', launchIframe);\r\n\t\t}\r\n\t});\r\n\r\n\t$(LGsliderMedia).on('click', '.ctb-video-box[data-frame-type=\"wistia\"]', function(){\r\n \r\n\t\tif(!$(this).hasClass('swiper-slide-active'))\r\n\t\t\treturn false;\r\n\t\t\r\n\t\tconst videoId \t= $(this).data('video-id');\r\n\t\tlet container \t= $(this).find('.sliderMedia__item');\r\n\t\tlet frame \t\t= $(this).find('.sliderMedia__item .sliderMedia__item-frame');\r\n \r\n\t\tlet frame_html = '
     
    ';\r\n\t\r\n\t\tif(!$(this).hasClass('loaded')){\r\n\t\t\t\r\n\t\t\tcontainer.addClass('loading');\r\n\t\t\tframe.html(frame_html);\r\n\r\n\t\t\t//handle Wistia\r\n\t\t\twindow._wq = window._wq || [];\r\n\t\t\t_wq.push({\r\n\t\t\t\tid: videoId,\r\n\t\t\t\tonReady: function(video){\r\n\t\t\t\t\t$('.ctb-video-box[data-video-id=\"'+videoId+'\"]').addClass('loaded');\r\n\t\t\t\t\tvideo.play();\r\n\t\t\t\t\tcontainer.removeClass('loading');\r\n\t\t\t\t},\r\n\t\t\t\tevent2: videoId,\r\n\t\t\t\tonEmbedded: function(){\r\n\t\t\t\t\tsetTimeout(function(){\r\n\t\t\t\t\t\tcontainer.addClass('play-iframe');\r\n\t\t\t\t\t},1000);\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t\r\n\t\t}else{\r\n\t\t\t\r\n\t\t\tif(!container.hasClass('play-iframe')){\r\n\t\t\t\twindow._wq = window._wq || [];\r\n\t\t\t\t_wq.push({\r\n\t\t\t\t\tid: videoId,\r\n\t\t\t\t\tonReady: function(video){\r\n\t\t\t\t\t\tvideo.play();\r\n\t\t\t\t\t},\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tcontainer.addClass('play-iframe');\r\n\t\t}\r\n\t});\r\n\r\n});","jQuery(document).ready(function($){\r\n\t\r\n\t$('#front-load-more-contributor-recent-posts').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\t\t\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, obj, objClick;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobj\t\t\t= $(this).closest('.contributor-recent-posts-container');\r\n\t\tobjClick \t= $(this);\r\n\t\t\r\n\t\tparams.post_id \t= appVars.postID;\r\n\t\tparams.offset \t= obj.find('.contributor-recent-posts-item').length;\r\n\r\n\t\t$.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n\t\t\t\tobjClick.text('Loading...');\r\n\t\t\t},\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_load_more_contributor_recent_posts',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n\t\t\tsuccess: function(res){\r\n\t\t\t\tobjClick.text('Load more');\r\n\t\t\t\tobjClick.toggleClass('disabled', false);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 1)\r\n\t\t\t\t\tobj.find('.contributor-recent-posts-item:last').after(res.data.html);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 4 || res.data.is_hidden_button)\r\n\t\t\t\t\tobjClick.hide();\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\r\n\t$('#front-load-more-sub-industries').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\t\t\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, obj, objClick;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobj\t\t\t= $(this).closest('form');\r\n\t\tobjClick \t= $(this);\r\n\t\t\r\n\t\tparams.current_category_id \t= obj.find('input.current_category_id').val();\r\n\t\tparams.offset \t\t\t\t= $('body').find('.sub-industry-item').length;\r\n\r\n\t\t$.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n\t\t\t\tobjClick.text('Loading...');\r\n\t\t\t},\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_load_more_sub_industries',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n\t\t\tsuccess: function(res){\r\n\t\t\t\tobjClick.text('Load more');\r\n\t\t\t\tobjClick.toggleClass('disabled', false);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 1)\r\n\t\t\t\t\t$('body .sub-industry-item:last').after(res.data.html);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 4)\r\n\t\t\t\t\tobj.remove();\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\r\n\t$(window).on('scroll', function(){\r\n\t\t\r\n\t\tif($('#front-load-more-sub-industries').length == 0)\r\n\t\t\treturn;\r\n\t\t\r\n\t\tlet target = $('#front-load-more-sub-industries').closest('form');\r\n\t\t\r\n\t\tlet wt = $(window).scrollTop();\r\n\t\tlet wh = $(window).height();\r\n\t\tlet et = target.offset().top;\r\n\t\tlet eh = target.outerHeight();\r\n\t\tlet dh = $(document).height(); \r\n\t\t\r\n\t\tif (wt + wh >= et || wh + wt == dh || eh + et < wh)\r\n\t\t\t$('#front-load-more-sub-industries').trigger('click');\r\n\t});\r\n\t\r\n\t$('#front-load-more-other-industry-posts').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\t\t\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, obj, objClick;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobj\t\t\t= $(this).closest('form');\r\n\t\tobjClick \t= $(this);\r\n\t\t\r\n\t\tparams.current_category_id \t= obj.find('input.current_obj_id').val();\r\n\t\tparams.page \t\t\t\t= obj.find('input.current_page').val();\r\n\r\n\t\t$.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n\t\t\t\tobjClick.text('Loading...');\r\n\t\t\t},\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_load_more_other_industry_posts',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n\t\t\tsuccess: function(res){\r\n\t\t\t\tobjClick.text('Load more');\r\n\t\t\t\tobjClick.toggleClass('disabled', false);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 1){\r\n\t\t\t\t\t$('#posts_container').append(res.data.html);\r\n\t\t\t\t\tobj.find('input.current_page').val(res.data.page);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 4 || res.data.is_hidden_button)\r\n\t\t\t\t\tobj.hide();\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\r\n\t$('#front-load-more-other-tag-posts').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\t\t\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, obj, objClick;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobj\t\t\t= $(this).closest('form');\r\n\t\tobjClick \t= $(this);\r\n\t\t\r\n\t\tparams.current_tag_id \t= obj.find('input.current_obj_id').val();\r\n\t\tparams.page \t\t\t= obj.find('input.current_page').val();\r\n\r\n\t\t$.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n\t\t\t\tobjClick.text('Loading...');\r\n\t\t\t},\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_load_more_other_tag_posts',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n\t\t\tsuccess: function(res){\r\n\t\t\t\tobjClick.text('Load more');\r\n\t\t\t\tobjClick.toggleClass('disabled', false);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 1){\r\n\t\t\t\t\t$('#posts_container').append(res.data.html);\r\n\t\t\t\t\tobj.find('input.current_page').val(res.data.page);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 4 || res.data.is_hidden_button)\r\n\t\t\t\t\tobj.hide();\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\r\n\t$('#front-load-more-other-author-posts').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\t\t\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, obj, objClick;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobj\t\t\t= $(this).closest('form');\r\n\t\tobjClick \t= $(this);\r\n\t\t\r\n\t\tparams.current_author_id \t= obj.find('input.current_obj_id').val();\r\n\t\tparams.page \t\t\t\t= obj.find('input.current_page').val();\r\n\r\n\t\t$.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n\t\t\t\tobjClick.text('Loading...');\r\n\t\t\t},\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_load_more_other_author_posts',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n\t\t\tsuccess: function(res){\r\n\t\t\t\tobjClick.text('Load more');\r\n\t\t\t\tobjClick.toggleClass('disabled', false);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 1){\r\n\t\t\t\t\t$('#posts_container').append(res.data.html);\r\n\t\t\t\t\tobj.find('input.current_page').val(res.data.page);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 4 || res.data.is_hidden_button)\r\n\t\t\t\t\tobj.hide();\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\r\n\t$('#front-load-more-events').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\t\t\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tvar params, obj, objClick;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobj\t\t\t= $(this).closest('form');\r\n\t\tobjClick \t= $(this);\r\n\t\t\r\n\t\tparams.page = obj.find('input.current_page').val();\r\n\r\n\t\t$.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n\t\t\t\tobjClick.text('Loading...');\r\n\t\t\t},\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_load_more_events',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n\t\t\tsuccess: function(res){\r\n\t\t\t\tobjClick.text('More');\r\n\t\t\t\tobjClick.toggleClass('disabled', false);\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 1){\r\n\t\t\t\t\t$('#events-recent-container').append(res.data.html);\r\n\t\t\t\t\tobj.find('input.current_page').val(res.data.page);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 4)\r\n\t\t\t\t\tobj.hide();\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\r\n});","jQuery(document).ready(function($){\r\n\r\n\t$.fn.inValid = function(obj, fields){\r\n\t\t\r\n\t\tif(fields.length == 0)\r\n\t\t\treturn false;\r\n\r\n\t\t$(fields).each(function(index, el){\r\n\t\t\tobj.find('[name=\"'+el+'\"]').toggleClass('invalid', true);\r\n\t\t});\r\n\t}\r\n\r\n\t$('body').on('focus', '.invalid', function(){\r\n\t\t$(this).toggleClass('invalid', false);\r\n\t\t$(this).closest('[data-radio-group]').find('.invalid').toggleClass('invalid', false);\r\n\t});\r\n\t\r\n\t$(document).on('mouseup', function (event){\r\n\t\tvar div = $('.popup-body');\r\n\t\tif (!div.is(event.target)&& div.has(event.target).length === 0)\r\n\t\t\tdiv.closest('.popup').toggleClass('active', false);\r\n\t});\r\n\t\r\n\t$('[data-target]').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\t\t\r\n\t\tlet popupName = $(this).attr('data-target');\r\n\r\n\t\t$(popupName).addClass('active');\r\n\t});\r\n\t\r\n\t//Read More\r\n\t//let showChar = 450;\r\n\t//let ellipsestext = '...';\r\n\t//let moretext = 'Read more';\r\n\t//let lesstext = 'Read less';\r\n\t//\r\n\t//$('.authorDesc__desc p').each(function(){\r\n\t//\t\r\n\t//\tlet content = $(this).html();\r\n\t//\t\r\n\t//\tif(content.length > showChar){\r\n\t//\t\t\r\n\t//\t\tlet c = content.substr(0, showChar);\r\n\t//\t\tlet h = content.substr(showChar, content.length - showChar);\r\n\t//\t\tlet html = c + '' + ellipsestext + ' ' + h + '  ' + moretext + '';\r\n\t//\t\t\r\n\t//\t\t$(this).html(html);\r\n\t//\t}\r\n\t//});\r\n\r\n\t//$('.morelink').on('click', function(event){\r\n\t//\tevent.preventDefault();\r\n\t//\t\r\n\t//\tif($(this).hasClass('less')){\r\n\t//\t\t$(this).removeClass('less');\r\n\t//\t\t$(this).html(moretext);\r\n\t//\t} else {\r\n\t//\t\t$(this).addClass('less');\r\n\t//\t\t$(this).html(lesstext);\r\n\t//\t}\r\n\t//\t\r\n\t//\t$(this).parent().prev().toggle();\r\n\t//\t$(this).prev().toggle();\r\n\t//});\r\n \r\n\t$('.c-button').on('click', function(){\r\n\t\t\r\n\t\tlet socialOverlay = $(this).closest('.overlay').find('.social-overlay');\r\n\t\r\n\t\tif(socialOverlay.hasClass('active')){\r\n\t\t\tsocialOverlay.removeClass('active');\r\n\t\t} else {\r\n\t\t\t$('.social-overlay').removeClass('active');\r\n\t\t\tsocialOverlay.addClass('active');\r\n\t\t}\r\n\t});\r\n \r\n\t$('.swiper-slide').on('mouseleave', function(){\r\n\t\t$('.social-overlay').removeClass('active');\r\n\t});\r\n\r\n\t$(window).on('resize', function(){\r\n\r\n\t\tlet gatedMediaOverlay = $('.gated-media-overlay');\r\n\t\tif(!gatedMediaOverlay.length)\r\n\t\t\treturn;\r\n\r\n\t\tlet content\t\t\t= $('.c-main-post__content');\r\n\t\tlet firstContent \t= $('.is-content:first');\r\n\r\n\t\tif(!firstContent.length){\r\n\t\t\tcontent.find('p, ul').each(function(i, el){\r\n\t\t\t\tif ($(el).text().trim().length > 0)\r\n\t\t\t\t\t$(el).addClass('is-content');\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfirstContent = $('.is-content:first');\r\n\t\tif(!firstContent.length)\r\n\t\t\treturn;\r\n\t\t\r\n\t\tlet contentHeight = 0;\r\n\t\t$('.is-content').each(function(i, el){\r\n\t\t\tcontentHeight += $(el).outerHeight();\r\n\t\t});\r\n\r\n\r\n\t\tlet main\t\t\t\t= $('#main');\r\n\t\tlet offsetMain \t\t\t= main.offset().top;\r\n\t\tlet offsetFirstContent \t= firstContent.offset().top;\r\n\t\tlet mainHeight \t\t\t= main.outerHeight();\r\n\t\t\r\n\t\tlet newHeightGatedMediaOverlay = mainHeight + offsetMain - offsetFirstContent - contentHeight/3 - 50;\r\n\r\n\t\tgatedMediaOverlay.height(newHeightGatedMediaOverlay);\r\n\t});\r\n\t\r\n\tif($('.gated-media-overlay').length)\r\n\t\t$('.gated-media-overlay').trigger('resize');\r\n\r\n\t$('body').on('click', '.front-add-bookmark', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, objClick;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\r\n\t\tparams.post_id = objClick.attr('data-post-id');\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_add_bookmark',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n objClick.removeClass('disabled');\r\n\r\n\t\t\t\tif(res.data.status == 1){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\tobjClick.replaceWith(res.data.html);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n }\r\n });\r\n });\r\n\t\r\n\t$('body').on('click', '.front-delete-bookmark', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, objClick;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\r\n\t\tparams.post_id = objClick.attr('data-post-id');\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_delete_bookmark',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n objClick.removeClass('disabled');\r\n\r\n\t\t\t\tif(res.data.status == 1){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\tobjClick.replaceWith(res.data.html);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n }\r\n });\r\n });\r\n\r\n\t$('body').on('click', '.front-add-like', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, objClick;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\r\n\t\tparams.post_id = objClick.attr('data-post-id');\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_add_like',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n objClick.removeClass('disabled');\r\n\r\n\t\t\t\tif(res.data.status == 1){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\tobjClick.replaceWith(res.data.html);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n }\r\n });\r\n });\r\n\t\r\n\t$('body').on('click', '.front-delete-like', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, objClick;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\r\n\t\tparams.post_id = objClick.attr('data-post-id');\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_delete_like',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n objClick.removeClass('disabled');\r\n\r\n\t\t\t\tif(res.data.status == 1){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\tobjClick.replaceWith(res.data.html);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n }\r\n });\r\n });\r\n\t\r\n\t$('.close-modal-share-section, .share-icon, .share-open-modal').on('click', function(){\r\n\t\t$(this).parent().parent().find('.share-section').toggleClass('active');\r\n\t});\r\n\t\r\n\t$(window).on('resize', function(){\r\n\t\t$('.share-section').toggleClass('active', false);\r\n\t});\r\n\t\r\n});","jQuery(document).ready(function($){\r\n\r\n\t$.fn.showNotices = function(messages){\r\n\t\t\r\n\t\tif(messages.length == 0)\r\n\t\t\treturn false;\r\n\r\n\t\t$(messages).each(function(index, el){\r\n\t\t\t\r\n\t\t\t$('#notice').append(el);\r\n\t\t\t\r\n\t\t\tlet addedElement = $('#notice').children().last();\r\n\r\n\t\t\tsetTimeout(function(){\r\n\t\t\t\taddedElement.fadeOut(1000, function(){\r\n\t\t\t\t\taddedElement.remove();\r\n\t\t\t\t});\r\n\t\t\t}, 7000);\r\n\t\t});\r\n\t}\r\n\t\r\n});","jQuery(document).ready(function($){\r\n\t\r\n\t$(\"#choose-profile-photo\").on('change', function(){\r\n\r\n\t\tvar URL = window.URL || window.webkitURL;\r\n\t\t\r\n\t\tvar file, img;\r\n\t\tvar output = $(this).closest('form').find('#img-output');\r\n\r\n\t\tif (file = this.files[0]){\r\n\t\t\t\r\n\t\t\timg = new Image();\r\n\t\t\timg.src = URL.createObjectURL(file);\r\n\t\t\timg.onload = () => {\r\n\t\t\t\toutput.attr('src', img.src);\r\n\t\t\t\toutput.on('load', function(){\r\n\t\t\t\t\tURL.revokeObjectURL(img.src); //Free memory\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t$('#front-edit-profile').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, obj, objClick, formData = new FormData();\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\t\tobj\t\t\t= objClick.closest('form');\r\n\r\n\t\tparams.email \t\t= obj.find('input[name=\"email\"]').val();\r\n\t\tparams.firstname \t= obj.find('input[name=\"firstname\"]').val();\r\n\t\tparams.lastname \t= obj.find('input[name=\"lastname\"]').val();\r\n\t\tparams.company\t\t= obj.find('input[name=\"company\"]').val();\r\n\t\tparams.job_position = obj.find('input[name=\"job_position\"]').val();\r\n\t\tparams.fileInput \t= obj.find('input[name=\"profile_photo\"]')[0];\r\n\r\n\t\tformData.append('email', params.email);\r\n\t\tformData.append('firstname', params.firstname);\r\n\t\tformData.append('lastname', params.lastname);\r\n\t\tformData.append('company', params.company);\r\n\t\tformData.append('job_position', params.job_position);\r\n\t\tformData.append('action', 'front_edit_user_profile');\r\n\t\tformData.append('security', appVars.securitycode);\r\n\r\n\t\tif (params.fileInput && params.fileInput.files.length > 0)\r\n\t\t\tformData.append('profile_photo', params.fileInput.files[0]);\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tprocessData: false,\r\n\t\t\tcontentType: false,\r\n\t\t\tbeforeSend: function(){\r\n obj.find('.s-form__loader').show();\r\n },\r\n\t\t\tdata: formData,\r\n success: function(res){\r\n objClick.removeClass('disabled');\r\n\t\t\t\tobj.find('.s-form__loader').hide();\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 1)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\r\n\t\t\t\tif(res.data.status == 2)\r\n\t\t\t\t\twindow.location.replace(res.data.href);\r\n\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n }\r\n });\r\n });\r\n\r\n\t$('#front-change-password').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, obj, objClick;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\t\tobj\t\t\t= objClick.closest('form');\r\n\r\n\t\tparams.pass1 \t= obj.find('input[name=\"pass1\"]').val();\r\n\t\tparams.pass2 \t= obj.find('input[name=\"pass2\"]').val();\r\n\t\tparams.passOld\t= obj.find('input[name=\"passOld\"]').val();\r\n\r\n $.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n obj.find('.s-form__loader').show();\r\n },\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_change_password',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n objClick.removeClass('disabled');\r\n\t\t\t\tobj.find('.s-form__loader').hide();\r\n\t\t\t\t\r\n\t\t\t\tif(res.data.status == 1)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\r\n\t\t\t\tif(res.data.status == 2)\r\n\t\t\t\t\twindow.location.replace(res.data.href);\r\n\r\n\t\t\t\tif(res.data.status == 3)\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n }\r\n });\r\n });\r\n\t\r\n});","/*! Select2 4.1.0-rc.0 | https://github.com/select2/select2/blob/master/LICENSE.md */\r\n!function(n){\"function\"==typeof define&&define.amd?define([\"jquery\"],n):\"object\"==typeof module&&module.exports?module.exports=function(e,t){return void 0===t&&(t=\"undefined\"!=typeof window?require(\"jquery\"):require(\"jquery\")(e)),n(t),t}:n(jQuery)}(function(t){var e,n,s,p,r,o,h,f,g,m,y,v,i,a,_,s=((u=t&&t.fn&&t.fn.select2&&t.fn.select2.amd?t.fn.select2.amd:u)&&u.requirejs||(u?n=u:u={},g={},m={},y={},v={},i=Object.prototype.hasOwnProperty,a=[].slice,_=/\\.js$/,h=function(e,t){var n,s,i=c(e),r=i[0],t=t[1];return e=i[1],r&&(n=x(r=l(r,t))),r?e=n&&n.normalize?n.normalize(e,(s=t,function(e){return l(e,s)})):l(e,t):(r=(i=c(e=l(e,t)))[0],e=i[1],r&&(n=x(r))),{f:r?r+\"!\"+e:e,n:e,pr:r,p:n}},f={require:function(e){return w(e)},exports:function(e){var t=g[e];return void 0!==t?t:g[e]={}},module:function(e){return{id:e,uri:\"\",exports:g[e],config:(t=e,function(){return y&&y.config&&y.config[t]||{}})};var t}},r=function(e,t,n,s){var i,r,o,a,l,c=[],u=typeof n,d=A(s=s||e);if(\"undefined\"==u||\"function\"==u){for(t=!t.length&&n.length?[\"require\",\"exports\",\"module\"]:t,a=0;a\":\">\",'\"':\""\",\"'\":\"'\",\"/\":\"/\"};return\"string\"!=typeof e?e:String(e).replace(/[&<>\"'\\/\\\\]/g,function(e){return t[e]})},s.__cache={};var n=0;return s.GetUniqueElementId=function(e){var t=e.getAttribute(\"data-select2-id\");return null!=t||(t=e.id?\"select2-data-\"+e.id:\"select2-data-\"+(++n).toString()+\"-\"+s.generateChars(4),e.setAttribute(\"data-select2-id\",t)),t},s.StoreData=function(e,t,n){e=s.GetUniqueElementId(e);s.__cache[e]||(s.__cache[e]={}),s.__cache[e][t]=n},s.GetData=function(e,t){var n=s.GetUniqueElementId(e);return t?s.__cache[n]&&null!=s.__cache[n][t]?s.__cache[n][t]:r(e).data(t):s.__cache[n]},s.RemoveData=function(e){var t=s.GetUniqueElementId(e);null!=s.__cache[t]&&delete s.__cache[t],e.removeAttribute(\"data-select2-id\")},s.copyNonInternalCssClasses=function(e,t){var n=(n=e.getAttribute(\"class\").trim().split(/\\s+/)).filter(function(e){return 0===e.indexOf(\"select2-\")}),t=(t=t.getAttribute(\"class\").trim().split(/\\s+/)).filter(function(e){return 0!==e.indexOf(\"select2-\")}),t=n.concat(t);e.setAttribute(\"class\",t.join(\" \"))},s}),u.define(\"select2/results\",[\"jquery\",\"./utils\"],function(d,p){function s(e,t,n){this.$element=e,this.data=n,this.options=t,s.__super__.constructor.call(this)}return p.Extend(s,p.Observable),s.prototype.render=function(){var e=d('');return this.options.get(\"multiple\")&&e.attr(\"aria-multiselectable\",\"true\"),this.$results=e},s.prototype.clear=function(){this.$results.empty()},s.prototype.displayMessage=function(e){var t=this.options.get(\"escapeMarkup\");this.clear(),this.hideLoading();var n=d('
  1. '),s=this.options.get(\"translations\").get(e.message);n.append(t(s(e.args))),n[0].className+=\" select2-results__message\",this.$results.append(n)},s.prototype.hideMessages=function(){this.$results.find(\".select2-results__message\").remove()},s.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n\",{class:\"select2-results__options select2-results__options--nested\",role:\"none\"});i.append(l),o.append(a),o.append(i)}else this.template(e,t);return p.StoreData(t,\"data\",e),t},s.prototype.bind=function(t,e){var i=this,n=t.id+\"-results\";this.$results.attr(\"id\",n),t.on(\"results:all\",function(e){i.clear(),i.append(e.data),t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}),t.on(\"results:append\",function(e){i.append(e.data),t.isOpen()&&i.setClasses()}),t.on(\"query\",function(e){i.hideMessages(),i.showLoading(e)}),t.on(\"select\",function(){t.isOpen()&&(i.setClasses(),i.options.get(\"scrollAfterSelect\")&&i.highlightFirstItem())}),t.on(\"unselect\",function(){t.isOpen()&&(i.setClasses(),i.options.get(\"scrollAfterSelect\")&&i.highlightFirstItem())}),t.on(\"open\",function(){i.$results.attr(\"aria-expanded\",\"true\"),i.$results.attr(\"aria-hidden\",\"false\"),i.setClasses(),i.ensureHighlightVisible()}),t.on(\"close\",function(){i.$results.attr(\"aria-expanded\",\"false\"),i.$results.attr(\"aria-hidden\",\"true\"),i.$results.removeAttr(\"aria-activedescendant\")}),t.on(\"results:toggle\",function(){var e=i.getHighlightedResults();0!==e.length&&e.trigger(\"mouseup\")}),t.on(\"results:select\",function(){var e,t=i.getHighlightedResults();0!==t.length&&(e=p.GetData(t[0],\"data\"),t.hasClass(\"select2-results__option--selected\")?i.trigger(\"close\",{}):i.trigger(\"select\",{data:e}))}),t.on(\"results:previous\",function(){var e,t=i.getHighlightedResults(),n=i.$results.find(\".select2-results__option--selectable\"),s=n.index(t);s<=0||(e=s-1,0===t.length&&(e=0),(s=n.eq(e)).trigger(\"mouseenter\"),t=i.$results.offset().top,n=s.offset().top,s=i.$results.scrollTop()+(n-t),0===e?i.$results.scrollTop(0):n-t<0&&i.$results.scrollTop(s))}),t.on(\"results:next\",function(){var e,t=i.getHighlightedResults(),n=i.$results.find(\".select2-results__option--selectable\"),s=n.index(t)+1;s>=n.length||((e=n.eq(s)).trigger(\"mouseenter\"),t=i.$results.offset().top+i.$results.outerHeight(!1),n=e.offset().top+e.outerHeight(!1),e=i.$results.scrollTop()+n-t,0===s?i.$results.scrollTop(0):tthis.$results.outerHeight()||s<0)&&this.$results.scrollTop(n))},s.prototype.template=function(e,t){var n=this.options.get(\"templateResult\"),s=this.options.get(\"escapeMarkup\"),e=n(e,t);null==e?t.style.display=\"none\":\"string\"==typeof e?t.innerHTML=s(e):d(t).append(e)},s}),u.define(\"select2/keys\",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),u.define(\"select2/selection/base\",[\"jquery\",\"../utils\",\"../keys\"],function(n,s,i){function r(e,t){this.$element=e,this.options=t,r.__super__.constructor.call(this)}return s.Extend(r,s.Observable),r.prototype.render=function(){var e=n('');return this._tabindex=0,null!=s.GetData(this.$element[0],\"old-tabindex\")?this._tabindex=s.GetData(this.$element[0],\"old-tabindex\"):null!=this.$element.attr(\"tabindex\")&&(this._tabindex=this.$element.attr(\"tabindex\")),e.attr(\"title\",this.$element.attr(\"title\")),e.attr(\"tabindex\",this._tabindex),e.attr(\"aria-disabled\",\"false\"),this.$selection=e},r.prototype.bind=function(e,t){var n=this,s=e.id+\"-results\";this.container=e,this.$selection.on(\"focus\",function(e){n.trigger(\"focus\",e)}),this.$selection.on(\"blur\",function(e){n._handleBlur(e)}),this.$selection.on(\"keydown\",function(e){n.trigger(\"keypress\",e),e.which===i.SPACE&&e.preventDefault()}),e.on(\"results:focus\",function(e){n.$selection.attr(\"aria-activedescendant\",e.data._resultId)}),e.on(\"selection:update\",function(e){n.update(e.data)}),e.on(\"open\",function(){n.$selection.attr(\"aria-expanded\",\"true\"),n.$selection.attr(\"aria-owns\",s),n._attachCloseHandler(e)}),e.on(\"close\",function(){n.$selection.attr(\"aria-expanded\",\"false\"),n.$selection.removeAttr(\"aria-activedescendant\"),n.$selection.removeAttr(\"aria-owns\"),n.$selection.trigger(\"focus\"),n._detachCloseHandler(e)}),e.on(\"enable\",function(){n.$selection.attr(\"tabindex\",n._tabindex),n.$selection.attr(\"aria-disabled\",\"false\")}),e.on(\"disable\",function(){n.$selection.attr(\"tabindex\",\"-1\"),n.$selection.attr(\"aria-disabled\",\"true\")})},r.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||n.contains(t.$selection[0],document.activeElement)||t.trigger(\"blur\",e)},1)},r.prototype._attachCloseHandler=function(e){n(document.body).on(\"mousedown.select2.\"+e.id,function(e){var t=n(e.target).closest(\".select2\");n(\".select2.select2-container--open\").each(function(){this!=t[0]&&s.GetData(this,\"element\").select2(\"close\")})})},r.prototype._detachCloseHandler=function(e){n(document.body).off(\"mousedown.select2.\"+e.id)},r.prototype.position=function(e,t){t.find(\".selection\").append(e)},r.prototype.destroy=function(){this._detachCloseHandler(this.container)},r.prototype.update=function(e){throw new Error(\"The `update` method must be defined in child classes.\")},r.prototype.isEnabled=function(){return!this.isDisabled()},r.prototype.isDisabled=function(){return this.options.get(\"disabled\")},r}),u.define(\"select2/selection/single\",[\"jquery\",\"./base\",\"../utils\",\"../keys\"],function(e,t,n,s){function i(){i.__super__.constructor.apply(this,arguments)}return n.Extend(i,t),i.prototype.render=function(){var e=i.__super__.render.call(this);return e[0].classList.add(\"select2-selection--single\"),e.html(''),e},i.prototype.bind=function(t,e){var n=this;i.__super__.bind.apply(this,arguments);var s=t.id+\"-container\";this.$selection.find(\".select2-selection__rendered\").attr(\"id\",s).attr(\"role\",\"textbox\").attr(\"aria-readonly\",\"true\"),this.$selection.attr(\"aria-labelledby\",s),this.$selection.attr(\"aria-controls\",s),this.$selection.on(\"mousedown\",function(e){1===e.which&&n.trigger(\"toggle\",{originalEvent:e})}),this.$selection.on(\"focus\",function(e){}),this.$selection.on(\"blur\",function(e){}),t.on(\"focus\",function(e){t.isOpen()||n.$selection.trigger(\"focus\")})},i.prototype.clear=function(){var e=this.$selection.find(\".select2-selection__rendered\");e.empty(),e.removeAttr(\"title\")},i.prototype.display=function(e,t){var n=this.options.get(\"templateSelection\");return this.options.get(\"escapeMarkup\")(n(e,t))},i.prototype.selectionContainer=function(){return e(\"\")},i.prototype.update=function(e){var t,n;0!==e.length?(n=e[0],t=this.$selection.find(\".select2-selection__rendered\"),e=this.display(n,t),t.empty().append(e),(n=n.title||n.text)?t.attr(\"title\",n):t.removeAttr(\"title\")):this.clear()},i}),u.define(\"select2/selection/multiple\",[\"jquery\",\"./base\",\"../utils\"],function(i,e,c){function r(e,t){r.__super__.constructor.apply(this,arguments)}return c.Extend(r,e),r.prototype.render=function(){var e=r.__super__.render.call(this);return e[0].classList.add(\"select2-selection--multiple\"),e.html('
      '),e},r.prototype.bind=function(e,t){var n=this;r.__super__.bind.apply(this,arguments);var s=e.id+\"-container\";this.$selection.find(\".select2-selection__rendered\").attr(\"id\",s),this.$selection.on(\"click\",function(e){n.trigger(\"toggle\",{originalEvent:e})}),this.$selection.on(\"click\",\".select2-selection__choice__remove\",function(e){var t;n.isDisabled()||(t=i(this).parent(),t=c.GetData(t[0],\"data\"),n.trigger(\"unselect\",{originalEvent:e,data:t}))}),this.$selection.on(\"keydown\",\".select2-selection__choice__remove\",function(e){n.isDisabled()||e.stopPropagation()})},r.prototype.clear=function(){var e=this.$selection.find(\".select2-selection__rendered\");e.empty(),e.removeAttr(\"title\")},r.prototype.display=function(e,t){var n=this.options.get(\"templateSelection\");return this.options.get(\"escapeMarkup\")(n(e,t))},r.prototype.selectionContainer=function(){return i('
    • ')},r.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=this.$selection.find(\".select2-selection__rendered\").attr(\"id\")+\"-choice-\",s=0;s×')).attr(\"title\",s()),e.attr(\"aria-label\",s()),e.attr(\"aria-describedby\",n),a.StoreData(e[0],\"data\",t),this.$selection.prepend(e),this.$selection[0].classList.add(\"select2-selection--clearable\"))},e}),u.define(\"select2/selection/search\",[\"jquery\",\"../utils\",\"../keys\"],function(s,a,l){function e(e,t,n){e.call(this,t,n)}return e.prototype.render=function(e){var t=this.options.get(\"translations\").get(\"search\"),n=s('');this.$searchContainer=n,this.$search=n.find(\"textarea\"),this.$search.prop(\"autocomplete\",this.options.get(\"autocomplete\")),this.$search.attr(\"aria-label\",t());e=e.call(this);return this._transferTabIndex(),e.append(this.$searchContainer),e},e.prototype.bind=function(e,t,n){var s=this,i=t.id+\"-results\",r=t.id+\"-container\";e.call(this,t,n),s.$search.attr(\"aria-describedby\",r),t.on(\"open\",function(){s.$search.attr(\"aria-controls\",i),s.$search.trigger(\"focus\")}),t.on(\"close\",function(){s.$search.val(\"\"),s.resizeSearch(),s.$search.removeAttr(\"aria-controls\"),s.$search.removeAttr(\"aria-activedescendant\"),s.$search.trigger(\"focus\")}),t.on(\"enable\",function(){s.$search.prop(\"disabled\",!1),s._transferTabIndex()}),t.on(\"disable\",function(){s.$search.prop(\"disabled\",!0)}),t.on(\"focus\",function(e){s.$search.trigger(\"focus\")}),t.on(\"results:focus\",function(e){e.data._resultId?s.$search.attr(\"aria-activedescendant\",e.data._resultId):s.$search.removeAttr(\"aria-activedescendant\")}),this.$selection.on(\"focusin\",\".select2-search--inline\",function(e){s.trigger(\"focus\",e)}),this.$selection.on(\"focusout\",\".select2-search--inline\",function(e){s._handleBlur(e)}),this.$selection.on(\"keydown\",\".select2-search--inline\",function(e){var t;e.stopPropagation(),s.trigger(\"keypress\",e),s._keyUpPrevented=e.isDefaultPrevented(),e.which!==l.BACKSPACE||\"\"!==s.$search.val()||0<(t=s.$selection.find(\".select2-selection__choice\").last()).length&&(t=a.GetData(t[0],\"data\"),s.searchRemoveChoice(t),e.preventDefault())}),this.$selection.on(\"click\",\".select2-search--inline\",function(e){s.$search.val()&&e.stopPropagation()});var t=document.documentMode,o=t&&t<=11;this.$selection.on(\"input.searchcheck\",\".select2-search--inline\",function(e){o?s.$selection.off(\"input.search input.searchcheck\"):s.$selection.off(\"keyup.search\")}),this.$selection.on(\"keyup.search input.search\",\".select2-search--inline\",function(e){var t;o&&\"input\"===e.type?s.$selection.off(\"input.search input.searchcheck\"):(t=e.which)!=l.SHIFT&&t!=l.CTRL&&t!=l.ALT&&t!=l.TAB&&s.handleSearch(e)})},e.prototype._transferTabIndex=function(e){this.$search.attr(\"tabindex\",this.$selection.attr(\"tabindex\")),this.$selection.attr(\"tabindex\",\"-1\")},e.prototype.createPlaceholder=function(e,t){this.$search.attr(\"placeholder\",t.text)},e.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr(\"placeholder\",\"\"),e.call(this,t),this.resizeSearch(),n&&this.$search.trigger(\"focus\")},e.prototype.handleSearch=function(){var e;this.resizeSearch(),this._keyUpPrevented||(e=this.$search.val(),this.trigger(\"query\",{term:e})),this._keyUpPrevented=!1},e.prototype.searchRemoveChoice=function(e,t){this.trigger(\"unselect\",{data:t}),this.$search.val(t.text),this.handleSearch()},e.prototype.resizeSearch=function(){this.$search.css(\"width\",\"25px\");var e=\"100%\";\"\"===this.$search.attr(\"placeholder\")&&(e=.75*(this.$search.val().length+1)+\"em\"),this.$search.css(\"width\",e)},e}),u.define(\"select2/selection/selectionCss\",[\"../utils\"],function(n){function e(){}return e.prototype.render=function(e){var t=e.call(this),e=this.options.get(\"selectionCssClass\")||\"\";return-1!==e.indexOf(\":all:\")&&(e=e.replace(\":all:\",\"\"),n.copyNonInternalCssClasses(t[0],this.$element[0])),t.addClass(e),t},e}),u.define(\"select2/selection/eventRelay\",[\"jquery\"],function(o){function e(){}return e.prototype.bind=function(e,t,n){var s=this,i=[\"open\",\"opening\",\"close\",\"closing\",\"select\",\"selecting\",\"unselect\",\"unselecting\",\"clear\",\"clearing\"],r=[\"opening\",\"closing\",\"selecting\",\"unselecting\",\"clearing\"];e.call(this,t,n),t.on(\"*\",function(e,t){var n;-1!==i.indexOf(e)&&(t=t||{},n=o.Event(\"select2:\"+e,{params:t}),s.$element.trigger(n),-1!==r.indexOf(e)&&(t.prevented=n.isDefaultPrevented()))})},e}),u.define(\"select2/translation\",[\"jquery\",\"require\"],function(t,n){function s(e){this.dict=e||{}}return s.prototype.all=function(){return this.dict},s.prototype.get=function(e){return this.dict[e]},s.prototype.extend=function(e){this.dict=t.extend({},e.all(),this.dict)},s._cache={},s.loadPath=function(e){var t;return e in s._cache||(t=n(e),s._cache[e]=t),new s(s._cache[e])},s}),u.define(\"select2/diacritics\",[],function(){return{\"Ⓐ\":\"A\",\"A\":\"A\",\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ầ\":\"A\",\"Ấ\":\"A\",\"Ẫ\":\"A\",\"Ẩ\":\"A\",\"Ã\":\"A\",\"Ā\":\"A\",\"Ă\":\"A\",\"Ằ\":\"A\",\"Ắ\":\"A\",\"Ẵ\":\"A\",\"Ẳ\":\"A\",\"Ȧ\":\"A\",\"Ǡ\":\"A\",\"Ä\":\"A\",\"Ǟ\":\"A\",\"Ả\":\"A\",\"Å\":\"A\",\"Ǻ\":\"A\",\"Ǎ\":\"A\",\"Ȁ\":\"A\",\"Ȃ\":\"A\",\"Ạ\":\"A\",\"Ậ\":\"A\",\"Ặ\":\"A\",\"Ḁ\":\"A\",\"Ą\":\"A\",\"Ⱥ\":\"A\",\"Ɐ\":\"A\",\"Ꜳ\":\"AA\",\"Æ\":\"AE\",\"Ǽ\":\"AE\",\"Ǣ\":\"AE\",\"Ꜵ\":\"AO\",\"Ꜷ\":\"AU\",\"Ꜹ\":\"AV\",\"Ꜻ\":\"AV\",\"Ꜽ\":\"AY\",\"Ⓑ\":\"B\",\"B\":\"B\",\"Ḃ\":\"B\",\"Ḅ\":\"B\",\"Ḇ\":\"B\",\"Ƀ\":\"B\",\"Ƃ\":\"B\",\"Ɓ\":\"B\",\"Ⓒ\":\"C\",\"C\":\"C\",\"Ć\":\"C\",\"Ĉ\":\"C\",\"Ċ\":\"C\",\"Č\":\"C\",\"Ç\":\"C\",\"Ḉ\":\"C\",\"Ƈ\":\"C\",\"Ȼ\":\"C\",\"Ꜿ\":\"C\",\"Ⓓ\":\"D\",\"D\":\"D\",\"Ḋ\":\"D\",\"Ď\":\"D\",\"Ḍ\":\"D\",\"Ḑ\":\"D\",\"Ḓ\":\"D\",\"Ḏ\":\"D\",\"Đ\":\"D\",\"Ƌ\":\"D\",\"Ɗ\":\"D\",\"Ɖ\":\"D\",\"Ꝺ\":\"D\",\"DZ\":\"DZ\",\"DŽ\":\"DZ\",\"Dz\":\"Dz\",\"Dž\":\"Dz\",\"Ⓔ\":\"E\",\"E\":\"E\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ề\":\"E\",\"Ế\":\"E\",\"Ễ\":\"E\",\"Ể\":\"E\",\"Ẽ\":\"E\",\"Ē\":\"E\",\"Ḕ\":\"E\",\"Ḗ\":\"E\",\"Ĕ\":\"E\",\"Ė\":\"E\",\"Ë\":\"E\",\"Ẻ\":\"E\",\"Ě\":\"E\",\"Ȅ\":\"E\",\"Ȇ\":\"E\",\"Ẹ\":\"E\",\"Ệ\":\"E\",\"Ȩ\":\"E\",\"Ḝ\":\"E\",\"Ę\":\"E\",\"Ḙ\":\"E\",\"Ḛ\":\"E\",\"Ɛ\":\"E\",\"Ǝ\":\"E\",\"Ⓕ\":\"F\",\"F\":\"F\",\"Ḟ\":\"F\",\"Ƒ\":\"F\",\"Ꝼ\":\"F\",\"Ⓖ\":\"G\",\"G\":\"G\",\"Ǵ\":\"G\",\"Ĝ\":\"G\",\"Ḡ\":\"G\",\"Ğ\":\"G\",\"Ġ\":\"G\",\"Ǧ\":\"G\",\"Ģ\":\"G\",\"Ǥ\":\"G\",\"Ɠ\":\"G\",\"Ꞡ\":\"G\",\"Ᵹ\":\"G\",\"Ꝿ\":\"G\",\"Ⓗ\":\"H\",\"H\":\"H\",\"Ĥ\":\"H\",\"Ḣ\":\"H\",\"Ḧ\":\"H\",\"Ȟ\":\"H\",\"Ḥ\":\"H\",\"Ḩ\":\"H\",\"Ḫ\":\"H\",\"Ħ\":\"H\",\"Ⱨ\":\"H\",\"Ⱶ\":\"H\",\"Ɥ\":\"H\",\"Ⓘ\":\"I\",\"I\":\"I\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ĩ\":\"I\",\"Ī\":\"I\",\"Ĭ\":\"I\",\"İ\":\"I\",\"Ï\":\"I\",\"Ḯ\":\"I\",\"Ỉ\":\"I\",\"Ǐ\":\"I\",\"Ȉ\":\"I\",\"Ȋ\":\"I\",\"Ị\":\"I\",\"Į\":\"I\",\"Ḭ\":\"I\",\"Ɨ\":\"I\",\"Ⓙ\":\"J\",\"J\":\"J\",\"Ĵ\":\"J\",\"Ɉ\":\"J\",\"Ⓚ\":\"K\",\"K\":\"K\",\"Ḱ\":\"K\",\"Ǩ\":\"K\",\"Ḳ\":\"K\",\"Ķ\":\"K\",\"Ḵ\":\"K\",\"Ƙ\":\"K\",\"Ⱪ\":\"K\",\"Ꝁ\":\"K\",\"Ꝃ\":\"K\",\"Ꝅ\":\"K\",\"Ꞣ\":\"K\",\"Ⓛ\":\"L\",\"L\":\"L\",\"Ŀ\":\"L\",\"Ĺ\":\"L\",\"Ľ\":\"L\",\"Ḷ\":\"L\",\"Ḹ\":\"L\",\"Ļ\":\"L\",\"Ḽ\":\"L\",\"Ḻ\":\"L\",\"Ł\":\"L\",\"Ƚ\":\"L\",\"Ɫ\":\"L\",\"Ⱡ\":\"L\",\"Ꝉ\":\"L\",\"Ꝇ\":\"L\",\"Ꞁ\":\"L\",\"LJ\":\"LJ\",\"Lj\":\"Lj\",\"Ⓜ\":\"M\",\"M\":\"M\",\"Ḿ\":\"M\",\"Ṁ\":\"M\",\"Ṃ\":\"M\",\"Ɱ\":\"M\",\"Ɯ\":\"M\",\"Ⓝ\":\"N\",\"N\":\"N\",\"Ǹ\":\"N\",\"Ń\":\"N\",\"Ñ\":\"N\",\"Ṅ\":\"N\",\"Ň\":\"N\",\"Ṇ\":\"N\",\"Ņ\":\"N\",\"Ṋ\":\"N\",\"Ṉ\":\"N\",\"Ƞ\":\"N\",\"Ɲ\":\"N\",\"Ꞑ\":\"N\",\"Ꞥ\":\"N\",\"NJ\":\"NJ\",\"Nj\":\"Nj\",\"Ⓞ\":\"O\",\"O\":\"O\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Ồ\":\"O\",\"Ố\":\"O\",\"Ỗ\":\"O\",\"Ổ\":\"O\",\"Õ\":\"O\",\"Ṍ\":\"O\",\"Ȭ\":\"O\",\"Ṏ\":\"O\",\"Ō\":\"O\",\"Ṑ\":\"O\",\"Ṓ\":\"O\",\"Ŏ\":\"O\",\"Ȯ\":\"O\",\"Ȱ\":\"O\",\"Ö\":\"O\",\"Ȫ\":\"O\",\"Ỏ\":\"O\",\"Ő\":\"O\",\"Ǒ\":\"O\",\"Ȍ\":\"O\",\"Ȏ\":\"O\",\"Ơ\":\"O\",\"Ờ\":\"O\",\"Ớ\":\"O\",\"Ỡ\":\"O\",\"Ở\":\"O\",\"Ợ\":\"O\",\"Ọ\":\"O\",\"Ộ\":\"O\",\"Ǫ\":\"O\",\"Ǭ\":\"O\",\"Ø\":\"O\",\"Ǿ\":\"O\",\"Ɔ\":\"O\",\"Ɵ\":\"O\",\"Ꝋ\":\"O\",\"Ꝍ\":\"O\",\"Œ\":\"OE\",\"Ƣ\":\"OI\",\"Ꝏ\":\"OO\",\"Ȣ\":\"OU\",\"Ⓟ\":\"P\",\"P\":\"P\",\"Ṕ\":\"P\",\"Ṗ\":\"P\",\"Ƥ\":\"P\",\"Ᵽ\":\"P\",\"Ꝑ\":\"P\",\"Ꝓ\":\"P\",\"Ꝕ\":\"P\",\"Ⓠ\":\"Q\",\"Q\":\"Q\",\"Ꝗ\":\"Q\",\"Ꝙ\":\"Q\",\"Ɋ\":\"Q\",\"Ⓡ\":\"R\",\"R\":\"R\",\"Ŕ\":\"R\",\"Ṙ\":\"R\",\"Ř\":\"R\",\"Ȑ\":\"R\",\"Ȓ\":\"R\",\"Ṛ\":\"R\",\"Ṝ\":\"R\",\"Ŗ\":\"R\",\"Ṟ\":\"R\",\"Ɍ\":\"R\",\"Ɽ\":\"R\",\"Ꝛ\":\"R\",\"Ꞧ\":\"R\",\"Ꞃ\":\"R\",\"Ⓢ\":\"S\",\"S\":\"S\",\"ẞ\":\"S\",\"Ś\":\"S\",\"Ṥ\":\"S\",\"Ŝ\":\"S\",\"Ṡ\":\"S\",\"Š\":\"S\",\"Ṧ\":\"S\",\"Ṣ\":\"S\",\"Ṩ\":\"S\",\"Ș\":\"S\",\"Ş\":\"S\",\"Ȿ\":\"S\",\"Ꞩ\":\"S\",\"Ꞅ\":\"S\",\"Ⓣ\":\"T\",\"T\":\"T\",\"Ṫ\":\"T\",\"Ť\":\"T\",\"Ṭ\":\"T\",\"Ț\":\"T\",\"Ţ\":\"T\",\"Ṱ\":\"T\",\"Ṯ\":\"T\",\"Ŧ\":\"T\",\"Ƭ\":\"T\",\"Ʈ\":\"T\",\"Ⱦ\":\"T\",\"Ꞇ\":\"T\",\"Ꜩ\":\"TZ\",\"Ⓤ\":\"U\",\"U\":\"U\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ũ\":\"U\",\"Ṹ\":\"U\",\"Ū\":\"U\",\"Ṻ\":\"U\",\"Ŭ\":\"U\",\"Ü\":\"U\",\"Ǜ\":\"U\",\"Ǘ\":\"U\",\"Ǖ\":\"U\",\"Ǚ\":\"U\",\"Ủ\":\"U\",\"Ů\":\"U\",\"Ű\":\"U\",\"Ǔ\":\"U\",\"Ȕ\":\"U\",\"Ȗ\":\"U\",\"Ư\":\"U\",\"Ừ\":\"U\",\"Ứ\":\"U\",\"Ữ\":\"U\",\"Ử\":\"U\",\"Ự\":\"U\",\"Ụ\":\"U\",\"Ṳ\":\"U\",\"Ų\":\"U\",\"Ṷ\":\"U\",\"Ṵ\":\"U\",\"Ʉ\":\"U\",\"Ⓥ\":\"V\",\"V\":\"V\",\"Ṽ\":\"V\",\"Ṿ\":\"V\",\"Ʋ\":\"V\",\"Ꝟ\":\"V\",\"Ʌ\":\"V\",\"Ꝡ\":\"VY\",\"Ⓦ\":\"W\",\"W\":\"W\",\"Ẁ\":\"W\",\"Ẃ\":\"W\",\"Ŵ\":\"W\",\"Ẇ\":\"W\",\"Ẅ\":\"W\",\"Ẉ\":\"W\",\"Ⱳ\":\"W\",\"Ⓧ\":\"X\",\"X\":\"X\",\"Ẋ\":\"X\",\"Ẍ\":\"X\",\"Ⓨ\":\"Y\",\"Y\":\"Y\",\"Ỳ\":\"Y\",\"Ý\":\"Y\",\"Ŷ\":\"Y\",\"Ỹ\":\"Y\",\"Ȳ\":\"Y\",\"Ẏ\":\"Y\",\"Ÿ\":\"Y\",\"Ỷ\":\"Y\",\"Ỵ\":\"Y\",\"Ƴ\":\"Y\",\"Ɏ\":\"Y\",\"Ỿ\":\"Y\",\"Ⓩ\":\"Z\",\"Z\":\"Z\",\"Ź\":\"Z\",\"Ẑ\":\"Z\",\"Ż\":\"Z\",\"Ž\":\"Z\",\"Ẓ\":\"Z\",\"Ẕ\":\"Z\",\"Ƶ\":\"Z\",\"Ȥ\":\"Z\",\"Ɀ\":\"Z\",\"Ⱬ\":\"Z\",\"Ꝣ\":\"Z\",\"ⓐ\":\"a\",\"a\":\"a\",\"ẚ\":\"a\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ầ\":\"a\",\"ấ\":\"a\",\"ẫ\":\"a\",\"ẩ\":\"a\",\"ã\":\"a\",\"ā\":\"a\",\"ă\":\"a\",\"ằ\":\"a\",\"ắ\":\"a\",\"ẵ\":\"a\",\"ẳ\":\"a\",\"ȧ\":\"a\",\"ǡ\":\"a\",\"ä\":\"a\",\"ǟ\":\"a\",\"ả\":\"a\",\"å\":\"a\",\"ǻ\":\"a\",\"ǎ\":\"a\",\"ȁ\":\"a\",\"ȃ\":\"a\",\"ạ\":\"a\",\"ậ\":\"a\",\"ặ\":\"a\",\"ḁ\":\"a\",\"ą\":\"a\",\"ⱥ\":\"a\",\"ɐ\":\"a\",\"ꜳ\":\"aa\",\"æ\":\"ae\",\"ǽ\":\"ae\",\"ǣ\":\"ae\",\"ꜵ\":\"ao\",\"ꜷ\":\"au\",\"ꜹ\":\"av\",\"ꜻ\":\"av\",\"ꜽ\":\"ay\",\"ⓑ\":\"b\",\"b\":\"b\",\"ḃ\":\"b\",\"ḅ\":\"b\",\"ḇ\":\"b\",\"ƀ\":\"b\",\"ƃ\":\"b\",\"ɓ\":\"b\",\"ⓒ\":\"c\",\"c\":\"c\",\"ć\":\"c\",\"ĉ\":\"c\",\"ċ\":\"c\",\"č\":\"c\",\"ç\":\"c\",\"ḉ\":\"c\",\"ƈ\":\"c\",\"ȼ\":\"c\",\"ꜿ\":\"c\",\"ↄ\":\"c\",\"ⓓ\":\"d\",\"d\":\"d\",\"ḋ\":\"d\",\"ď\":\"d\",\"ḍ\":\"d\",\"ḑ\":\"d\",\"ḓ\":\"d\",\"ḏ\":\"d\",\"đ\":\"d\",\"ƌ\":\"d\",\"ɖ\":\"d\",\"ɗ\":\"d\",\"ꝺ\":\"d\",\"dz\":\"dz\",\"dž\":\"dz\",\"ⓔ\":\"e\",\"e\":\"e\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ề\":\"e\",\"ế\":\"e\",\"ễ\":\"e\",\"ể\":\"e\",\"ẽ\":\"e\",\"ē\":\"e\",\"ḕ\":\"e\",\"ḗ\":\"e\",\"ĕ\":\"e\",\"ė\":\"e\",\"ë\":\"e\",\"ẻ\":\"e\",\"ě\":\"e\",\"ȅ\":\"e\",\"ȇ\":\"e\",\"ẹ\":\"e\",\"ệ\":\"e\",\"ȩ\":\"e\",\"ḝ\":\"e\",\"ę\":\"e\",\"ḙ\":\"e\",\"ḛ\":\"e\",\"ɇ\":\"e\",\"ɛ\":\"e\",\"ǝ\":\"e\",\"ⓕ\":\"f\",\"f\":\"f\",\"ḟ\":\"f\",\"ƒ\":\"f\",\"ꝼ\":\"f\",\"ⓖ\":\"g\",\"g\":\"g\",\"ǵ\":\"g\",\"ĝ\":\"g\",\"ḡ\":\"g\",\"ğ\":\"g\",\"ġ\":\"g\",\"ǧ\":\"g\",\"ģ\":\"g\",\"ǥ\":\"g\",\"ɠ\":\"g\",\"ꞡ\":\"g\",\"ᵹ\":\"g\",\"ꝿ\":\"g\",\"ⓗ\":\"h\",\"h\":\"h\",\"ĥ\":\"h\",\"ḣ\":\"h\",\"ḧ\":\"h\",\"ȟ\":\"h\",\"ḥ\":\"h\",\"ḩ\":\"h\",\"ḫ\":\"h\",\"ẖ\":\"h\",\"ħ\":\"h\",\"ⱨ\":\"h\",\"ⱶ\":\"h\",\"ɥ\":\"h\",\"ƕ\":\"hv\",\"ⓘ\":\"i\",\"i\":\"i\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ĩ\":\"i\",\"ī\":\"i\",\"ĭ\":\"i\",\"ï\":\"i\",\"ḯ\":\"i\",\"ỉ\":\"i\",\"ǐ\":\"i\",\"ȉ\":\"i\",\"ȋ\":\"i\",\"ị\":\"i\",\"į\":\"i\",\"ḭ\":\"i\",\"ɨ\":\"i\",\"ı\":\"i\",\"ⓙ\":\"j\",\"j\":\"j\",\"ĵ\":\"j\",\"ǰ\":\"j\",\"ɉ\":\"j\",\"ⓚ\":\"k\",\"k\":\"k\",\"ḱ\":\"k\",\"ǩ\":\"k\",\"ḳ\":\"k\",\"ķ\":\"k\",\"ḵ\":\"k\",\"ƙ\":\"k\",\"ⱪ\":\"k\",\"ꝁ\":\"k\",\"ꝃ\":\"k\",\"ꝅ\":\"k\",\"ꞣ\":\"k\",\"ⓛ\":\"l\",\"l\":\"l\",\"ŀ\":\"l\",\"ĺ\":\"l\",\"ľ\":\"l\",\"ḷ\":\"l\",\"ḹ\":\"l\",\"ļ\":\"l\",\"ḽ\":\"l\",\"ḻ\":\"l\",\"ſ\":\"l\",\"ł\":\"l\",\"ƚ\":\"l\",\"ɫ\":\"l\",\"ⱡ\":\"l\",\"ꝉ\":\"l\",\"ꞁ\":\"l\",\"ꝇ\":\"l\",\"lj\":\"lj\",\"ⓜ\":\"m\",\"m\":\"m\",\"ḿ\":\"m\",\"ṁ\":\"m\",\"ṃ\":\"m\",\"ɱ\":\"m\",\"ɯ\":\"m\",\"ⓝ\":\"n\",\"n\":\"n\",\"ǹ\":\"n\",\"ń\":\"n\",\"ñ\":\"n\",\"ṅ\":\"n\",\"ň\":\"n\",\"ṇ\":\"n\",\"ņ\":\"n\",\"ṋ\":\"n\",\"ṉ\":\"n\",\"ƞ\":\"n\",\"ɲ\":\"n\",\"ʼn\":\"n\",\"ꞑ\":\"n\",\"ꞥ\":\"n\",\"nj\":\"nj\",\"ⓞ\":\"o\",\"o\":\"o\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"ồ\":\"o\",\"ố\":\"o\",\"ỗ\":\"o\",\"ổ\":\"o\",\"õ\":\"o\",\"ṍ\":\"o\",\"ȭ\":\"o\",\"ṏ\":\"o\",\"ō\":\"o\",\"ṑ\":\"o\",\"ṓ\":\"o\",\"ŏ\":\"o\",\"ȯ\":\"o\",\"ȱ\":\"o\",\"ö\":\"o\",\"ȫ\":\"o\",\"ỏ\":\"o\",\"ő\":\"o\",\"ǒ\":\"o\",\"ȍ\":\"o\",\"ȏ\":\"o\",\"ơ\":\"o\",\"ờ\":\"o\",\"ớ\":\"o\",\"ỡ\":\"o\",\"ở\":\"o\",\"ợ\":\"o\",\"ọ\":\"o\",\"ộ\":\"o\",\"ǫ\":\"o\",\"ǭ\":\"o\",\"ø\":\"o\",\"ǿ\":\"o\",\"ɔ\":\"o\",\"ꝋ\":\"o\",\"ꝍ\":\"o\",\"ɵ\":\"o\",\"œ\":\"oe\",\"ƣ\":\"oi\",\"ȣ\":\"ou\",\"ꝏ\":\"oo\",\"ⓟ\":\"p\",\"p\":\"p\",\"ṕ\":\"p\",\"ṗ\":\"p\",\"ƥ\":\"p\",\"ᵽ\":\"p\",\"ꝑ\":\"p\",\"ꝓ\":\"p\",\"ꝕ\":\"p\",\"ⓠ\":\"q\",\"q\":\"q\",\"ɋ\":\"q\",\"ꝗ\":\"q\",\"ꝙ\":\"q\",\"ⓡ\":\"r\",\"r\":\"r\",\"ŕ\":\"r\",\"ṙ\":\"r\",\"ř\":\"r\",\"ȑ\":\"r\",\"ȓ\":\"r\",\"ṛ\":\"r\",\"ṝ\":\"r\",\"ŗ\":\"r\",\"ṟ\":\"r\",\"ɍ\":\"r\",\"ɽ\":\"r\",\"ꝛ\":\"r\",\"ꞧ\":\"r\",\"ꞃ\":\"r\",\"ⓢ\":\"s\",\"s\":\"s\",\"ß\":\"s\",\"ś\":\"s\",\"ṥ\":\"s\",\"ŝ\":\"s\",\"ṡ\":\"s\",\"š\":\"s\",\"ṧ\":\"s\",\"ṣ\":\"s\",\"ṩ\":\"s\",\"ș\":\"s\",\"ş\":\"s\",\"ȿ\":\"s\",\"ꞩ\":\"s\",\"ꞅ\":\"s\",\"ẛ\":\"s\",\"ⓣ\":\"t\",\"t\":\"t\",\"ṫ\":\"t\",\"ẗ\":\"t\",\"ť\":\"t\",\"ṭ\":\"t\",\"ț\":\"t\",\"ţ\":\"t\",\"ṱ\":\"t\",\"ṯ\":\"t\",\"ŧ\":\"t\",\"ƭ\":\"t\",\"ʈ\":\"t\",\"ⱦ\":\"t\",\"ꞇ\":\"t\",\"ꜩ\":\"tz\",\"ⓤ\":\"u\",\"u\":\"u\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ũ\":\"u\",\"ṹ\":\"u\",\"ū\":\"u\",\"ṻ\":\"u\",\"ŭ\":\"u\",\"ü\":\"u\",\"ǜ\":\"u\",\"ǘ\":\"u\",\"ǖ\":\"u\",\"ǚ\":\"u\",\"ủ\":\"u\",\"ů\":\"u\",\"ű\":\"u\",\"ǔ\":\"u\",\"ȕ\":\"u\",\"ȗ\":\"u\",\"ư\":\"u\",\"ừ\":\"u\",\"ứ\":\"u\",\"ữ\":\"u\",\"ử\":\"u\",\"ự\":\"u\",\"ụ\":\"u\",\"ṳ\":\"u\",\"ų\":\"u\",\"ṷ\":\"u\",\"ṵ\":\"u\",\"ʉ\":\"u\",\"ⓥ\":\"v\",\"v\":\"v\",\"ṽ\":\"v\",\"ṿ\":\"v\",\"ʋ\":\"v\",\"ꝟ\":\"v\",\"ʌ\":\"v\",\"ꝡ\":\"vy\",\"ⓦ\":\"w\",\"w\":\"w\",\"ẁ\":\"w\",\"ẃ\":\"w\",\"ŵ\":\"w\",\"ẇ\":\"w\",\"ẅ\":\"w\",\"ẘ\":\"w\",\"ẉ\":\"w\",\"ⱳ\":\"w\",\"ⓧ\":\"x\",\"x\":\"x\",\"ẋ\":\"x\",\"ẍ\":\"x\",\"ⓨ\":\"y\",\"y\":\"y\",\"ỳ\":\"y\",\"ý\":\"y\",\"ŷ\":\"y\",\"ỹ\":\"y\",\"ȳ\":\"y\",\"ẏ\":\"y\",\"ÿ\":\"y\",\"ỷ\":\"y\",\"ẙ\":\"y\",\"ỵ\":\"y\",\"ƴ\":\"y\",\"ɏ\":\"y\",\"ỿ\":\"y\",\"ⓩ\":\"z\",\"z\":\"z\",\"ź\":\"z\",\"ẑ\":\"z\",\"ż\":\"z\",\"ž\":\"z\",\"ẓ\":\"z\",\"ẕ\":\"z\",\"ƶ\":\"z\",\"ȥ\":\"z\",\"ɀ\":\"z\",\"ⱬ\":\"z\",\"ꝣ\":\"z\",\"Ά\":\"Α\",\"Έ\":\"Ε\",\"Ή\":\"Η\",\"Ί\":\"Ι\",\"Ϊ\":\"Ι\",\"Ό\":\"Ο\",\"Ύ\":\"Υ\",\"Ϋ\":\"Υ\",\"Ώ\":\"Ω\",\"ά\":\"α\",\"έ\":\"ε\",\"ή\":\"η\",\"ί\":\"ι\",\"ϊ\":\"ι\",\"ΐ\":\"ι\",\"ό\":\"ο\",\"ύ\":\"υ\",\"ϋ\":\"υ\",\"ΰ\":\"υ\",\"ώ\":\"ω\",\"ς\":\"σ\",\"’\":\"'\"}}),u.define(\"select2/data/base\",[\"../utils\"],function(n){function s(e,t){s.__super__.constructor.call(this)}return n.Extend(s,n.Observable),s.prototype.current=function(e){throw new Error(\"The `current` method must be defined in child classes.\")},s.prototype.query=function(e,t){throw new Error(\"The `query` method must be defined in child classes.\")},s.prototype.bind=function(e,t){},s.prototype.destroy=function(){},s.prototype.generateResultId=function(e,t){e=e.id+\"-result-\";return e+=n.generateChars(4),null!=t.id?e+=\"-\"+t.id.toString():e+=\"-\"+n.generateChars(4),e},s}),u.define(\"select2/data/select\",[\"./base\",\"../utils\",\"jquery\"],function(e,a,l){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return a.Extend(n,e),n.prototype.current=function(e){var t=this;e(Array.prototype.map.call(this.$element[0].querySelectorAll(\":checked\"),function(e){return t.item(l(e))}))},n.prototype.select=function(i){var e,r=this;if(i.selected=!0,null!=i.element&&\"option\"===i.element.tagName.toLowerCase())return i.element.selected=!0,void this.$element.trigger(\"input\").trigger(\"change\");this.$element.prop(\"multiple\")?this.current(function(e){var t=[];(i=[i]).push.apply(i,e);for(var n=0;nthis.maximumInputLength?this.trigger(\"results:message\",{message:\"inputTooLong\",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),u.define(\"select2/data/maximumSelectionLength\",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get(\"maximumSelectionLength\"),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),t.on(\"select\",function(){s._checkIfMaximumSelected()})},e.prototype.query=function(e,t,n){var s=this;this._checkIfMaximumSelected(function(){e.call(s,t,n)})},e.prototype._checkIfMaximumSelected=function(e,t){var n=this;this.current(function(e){e=null!=e?e.length:0;0=n.maximumSelectionLength?n.trigger(\"results:message\",{message:\"maximumSelected\",args:{maximum:n.maximumSelectionLength}}):t&&t()})},e}),u.define(\"select2/dropdown\",[\"jquery\",\"./utils\"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t('');return e.attr(\"dir\",this.options.get(\"dir\")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),u.define(\"select2/dropdown/search\",[\"jquery\"],function(r){function e(){}return e.prototype.render=function(e){var t=e.call(this),n=this.options.get(\"translations\").get(\"search\"),e=r('');return this.$searchContainer=e,this.$search=e.find(\"input\"),this.$search.prop(\"autocomplete\",this.options.get(\"autocomplete\")),this.$search.attr(\"aria-label\",n()),t.prepend(e),t},e.prototype.bind=function(e,t,n){var s=this,i=t.id+\"-results\";e.call(this,t,n),this.$search.on(\"keydown\",function(e){s.trigger(\"keypress\",e),s._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on(\"input\",function(e){r(this).off(\"keyup\")}),this.$search.on(\"keyup input\",function(e){s.handleSearch(e)}),t.on(\"open\",function(){s.$search.attr(\"tabindex\",0),s.$search.attr(\"aria-controls\",i),s.$search.trigger(\"focus\"),window.setTimeout(function(){s.$search.trigger(\"focus\")},0)}),t.on(\"close\",function(){s.$search.attr(\"tabindex\",-1),s.$search.removeAttr(\"aria-controls\"),s.$search.removeAttr(\"aria-activedescendant\"),s.$search.val(\"\"),s.$search.trigger(\"blur\")}),t.on(\"focus\",function(){t.isOpen()||s.$search.trigger(\"focus\")}),t.on(\"results:all\",function(e){null!=e.query.term&&\"\"!==e.query.term||(s.showSearch(e)?s.$searchContainer[0].classList.remove(\"select2-search--hide\"):s.$searchContainer[0].classList.add(\"select2-search--hide\"))}),t.on(\"results:focus\",function(e){e.data._resultId?s.$search.attr(\"aria-activedescendant\",e.data._resultId):s.$search.removeAttr(\"aria-activedescendant\")})},e.prototype.handleSearch=function(e){var t;this._keyUpPrevented||(t=this.$search.val(),this.trigger(\"query\",{term:t})),this._keyUpPrevented=!1},e.prototype.showSearch=function(e,t){return!0},e}),u.define(\"select2/dropdown/hidePlaceholder\",[],function(){function e(e,t,n,s){this.placeholder=this.normalizePlaceholder(n.get(\"placeholder\")),e.call(this,t,n,s)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return t=\"string\"==typeof t?{id:\"\",text:t}:t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),s=t.length-1;0<=s;s--){var i=t[s];this.placeholder.id===i.id&&n.splice(s,1)}return n},e}),u.define(\"select2/dropdown/infiniteScroll\",[\"jquery\"],function(n){function e(e,t,n,s){this.lastParams={},e.call(this,t,n,s),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&(this.$results.append(this.$loadingMore),this.loadMoreIfNeeded())},e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),t.on(\"query\",function(e){s.lastParams=e,s.loading=!0}),t.on(\"query:append\",function(e){s.lastParams=e,s.loading=!0}),this.$results.on(\"scroll\",this.loadMoreIfNeeded.bind(this))},e.prototype.loadMoreIfNeeded=function(){var e=n.contains(document.documentElement,this.$loadingMore[0]);!this.loading&&e&&(e=this.$results.offset().top+this.$results.outerHeight(!1),this.$loadingMore.offset().top+this.$loadingMore.outerHeight(!1)<=e+50&&this.loadMore())},e.prototype.loadMore=function(){this.loading=!0;var e=n.extend({},{page:1},this.lastParams);e.page++,this.trigger(\"query:append\",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=n('
    • '),t=this.options.get(\"translations\").get(\"loadingMore\");return e.html(t(this.lastParams)),e},e}),u.define(\"select2/dropdown/attachBody\",[\"jquery\",\"../utils\"],function(u,o){function e(e,t,n){this.$dropdownParent=u(n.get(\"dropdownParent\")||document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var s=this;e.call(this,t,n),t.on(\"open\",function(){s._showDropdown(),s._attachPositioningHandler(t),s._bindContainerResultHandlers(t)}),t.on(\"close\",function(){s._hideDropdown(),s._detachPositioningHandler(t)}),this.$dropdownContainer.on(\"mousedown\",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr(\"class\",n.attr(\"class\")),t[0].classList.remove(\"select2\"),t[0].classList.add(\"select2-container--open\"),t.css({position:\"absolute\",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=u(\"\"),e=e.call(this);return t.append(e),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._bindContainerResultHandlers=function(e,t){var n;this._containerResultsHandlersBound||(n=this,t.on(\"results:all\",function(){n._positionDropdown(),n._resizeDropdown()}),t.on(\"results:append\",function(){n._positionDropdown(),n._resizeDropdown()}),t.on(\"results:message\",function(){n._positionDropdown(),n._resizeDropdown()}),t.on(\"select\",function(){n._positionDropdown(),n._resizeDropdown()}),t.on(\"unselect\",function(){n._positionDropdown(),n._resizeDropdown()}),this._containerResultsHandlersBound=!0)},e.prototype._attachPositioningHandler=function(e,t){var n=this,s=\"scroll.select2.\"+t.id,i=\"resize.select2.\"+t.id,r=\"orientationchange.select2.\"+t.id,t=this.$container.parents().filter(o.hasScroll);t.each(function(){o.StoreData(this,\"select2-scroll-position\",{x:u(this).scrollLeft(),y:u(this).scrollTop()})}),t.on(s,function(e){var t=o.GetData(this,\"select2-scroll-position\");u(this).scrollTop(t.y)}),u(window).on(s+\" \"+i+\" \"+r,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n=\"scroll.select2.\"+t.id,s=\"resize.select2.\"+t.id,t=\"orientationchange.select2.\"+t.id;this.$container.parents().filter(o.hasScroll).off(n),u(window).off(n+\" \"+s+\" \"+t)},e.prototype._positionDropdown=function(){var e=u(window),t=this.$dropdown[0].classList.contains(\"select2-dropdown--above\"),n=this.$dropdown[0].classList.contains(\"select2-dropdown--below\"),s=null,i=this.$container.offset();i.bottom=i.top+this.$container.outerHeight(!1);var r={height:this.$container.outerHeight(!1)};r.top=i.top,r.bottom=i.top+r.height;var o=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),c=ai.bottom+o,a={left:i.left,top:r.bottom},l=this.$dropdownParent;\"static\"===l.css(\"position\")&&(l=l.offsetParent());i={top:0,left:0};(u.contains(document.body,l[0])||l[0].isConnected)&&(i=l.offset()),a.top-=i.top,a.left-=i.left,t||n||(s=\"below\"),e||!c||t?!c&&e&&t&&(s=\"below\"):s=\"above\",(\"above\"==s||t&&\"below\"!==s)&&(a.top=r.top-i.top-o),null!=s&&(this.$dropdown[0].classList.remove(\"select2-dropdown--below\"),this.$dropdown[0].classList.remove(\"select2-dropdown--above\"),this.$dropdown[0].classList.add(\"select2-dropdown--\"+s),this.$container[0].classList.remove(\"select2-container--below\"),this.$container[0].classList.remove(\"select2-container--above\"),this.$container[0].classList.add(\"select2-container--\"+s)),this.$dropdownContainer.css(a)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+\"px\"};this.options.get(\"dropdownAutoWidth\")&&(e.minWidth=e.width,e.position=\"relative\",e.width=\"auto\"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),u.define(\"select2/dropdown/minimumResultsForSearch\",[],function(){function e(e,t,n,s){this.minimumResultsForSearch=n.get(\"minimumResultsForSearch\"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),e.call(this,t,n,s)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,s=0;s');return e.attr(\"dir\",this.options.get(\"dir\")),this.$container=e,this.$container[0].classList.add(\"select2-container--\"+this.options.get(\"theme\")),r.StoreData(e[0],\"element\",this.$element),e},o}),u.define(\"jquery-mousewheel\",[\"jquery\"],function(e){return e}),u.define(\"jquery.select2\",[\"jquery\",\"jquery-mousewheel\",\"./select2/core\",\"./select2/defaults\",\"./select2/utils\"],function(i,e,r,t,o){var a;return null==i.fn.select2&&(a=[\"open\",\"close\",\"destroy\"],i.fn.select2=function(t){if(\"object\"==typeof(t=t||{}))return this.each(function(){var e=i.extend(!0,{},t);new r(i(this),e)}),this;if(\"string\"!=typeof t)throw new Error(\"Invalid arguments for Select2: \"+t);var n,s=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=o.GetData(this,\"select2\");null==e&&window.console&&console.error&&console.error(\"The select2('\"+t+\"') method was called on an element that is not using Select2.\"),n=e[t].apply(e,s)}),-1 {\r\n\t\t\t$(element).toggleClass('show-notify', false);\r\n\t\t}, 1000);\r\n\t}\r\n\r\n\tfunction copyLinkToBuffer(element, linkUrl){\r\n\t\t\r\n\t\tif (navigator.clipboard) {\r\n\t\t\tnavigator.clipboard.writeText(linkUrl).then(() => {\r\n\t\t\t\tcopyLinkToggleClasses(element);\r\n\t\t\t},() => {\r\n\t\t\t\tlet html = $(element).find('.share-failed').html();\r\n\t\t\t\t$.fn.showNotices([html]);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tlet linkPasted = document.createElement('textarea');\r\n\t\t\tlinkPasted.value = linkUrl;\r\n\t\t\tdocument.body.appendChild(linkPasted);\r\n\t\t\tlinkPasted.select();\r\n\t\t\tdocument.execCommand('copy');\r\n\t\t\tdocument.body.removeChild(linkPasted);\r\n\t\r\n\t\t\tcopyLinkToggleClasses(element);\r\n\t\t}\r\n\t}\r\n\r\n\t$('.copy-link').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\t\t\r\n\t\tlet linkUrl = $(this).data('url');\r\n\t\t\r\n\t\tcopyLinkToBuffer(this, linkUrl);\r\n\t});\r\n\t\r\n\t$('.email-share-button').on('click', function(event){\r\n event.preventDefault();\r\n \r\n\t\tlet title \t\t= 'Marketscale';\r\n let url \t\t= $(this).data('url');\r\n let email \t\t= '';\r\n let subject \t= title;\r\n let emailBody \t= 'Publication URL: ' + url;\r\n window.location = 'mailto:' + email + '?subject=' + subject + '&body=' + emailBody;\r\n });\r\n\t\r\n});","jQuery(document).ready(function($){\r\n\t\r\n\tif($('#JS-category-select').length){\r\n\t\t$('#JS-category-select').select2({\r\n\t\t\tminimumResultsForSearch: Infinity,\r\n\t\t});\r\n\t}\r\n\t\r\n\t$('.s-shows-category [data-term-id]').on('click', function(event){\r\n\t\tevent.preventDefault();\r\n\t\t\r\n let termId = $(this).attr('data-term-id');\r\n \r\n\t\t$('[data-term-id]').removeClass('current');\r\n\t\t$(this).not('[data-term-id=\"0\"]').addClass('current');\r\n\t\t\r\n\t\t$('[data-category-0]').addClass('d-none');\r\n\t\t$('[data-category-'+termId+']').removeClass('d-none');\r\n\t\t\r\n\t\t$('#JS-category-select').val(termId).trigger('change.select2');\r\n });\r\n\r\n\t$('#JS-category-select').on('change', function(){\r\n\t\t\r\n\t\tlet termId = $(this).val();\r\n\t\t\r\n\t\t$('.s-shows-category [data-term-id=\"'+termId+'\"]').trigger('click');\r\n });\r\n\r\n\t$('body').on('click', '#front-subscribe-show-by-email', function(event){\r\n\t\tevent.preventDefault();\r\n\r\n\t\tif($(this).hasClass('disabled')) return false;\r\n\t\t$(this).addClass('disabled');\r\n\t\t\r\n\t\tlet params, obj, objClick, text;\r\n\t\t\r\n\t\tparams\t\t= new Object();\r\n\t\tobjClick \t= $(this);\r\n\t\tobj\t\t\t= objClick.closest('form');\r\n\t\t\r\n\t\tparams.email\t= obj.find('input[name=\"email\"]').val();\r\n\t\tparams.post_id\t= obj.find('input[name=\"post_id\"]').val();\r\n\r\n\t\t$.ajax({\r\n type: \"POST\",\r\n url: appVars.ajaxurl,\r\n\t\t\tbeforeSend: function(){\r\n obj.siblings('.preloader').toggleClass('active', true);\r\n },\r\n\t\t\tdata: {\r\n\t\t\t\taction: 'front_subscribe_show_by_email',\r\n\t\t\t\tdata: params,\r\n\t\t\t\tsecurity: appVars.securitycode,\r\n\t\t\t},\r\n success: function(res){\r\n objClick.removeClass('disabled');\r\n\t\t\t\tobj.find('[name]').removeClass('invalid');\r\n\t\t\t\tobj.siblings('.preloader').toggleClass('active', false);\r\n\r\n\t\t\t\tif(res.data.status == 1){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\tobj.find('input[name=\"email\"]').val('');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(res.data.status == 3){\r\n\t\t\t\t\t$.fn.showNotices(res.data.error.info);\r\n\t\t\t\t\t$.fn.inValid(obj, res.data.error.input);\r\n\t\t\t\t}\r\n }\r\n });\r\n });\r\n\r\n});","/**\n * SSR Window 2.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: May 12, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar doc = typeof document !== 'undefined' ? document : {};\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nextend(doc, ssrDocument);\n\nvar win = typeof window !== 'undefined' ? window : {};\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n};\nextend(win, ssrWindow);\n\nexport { doc as document, extend, win as window };\n","/**\n * Dom7 2.1.5\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * http://framework7.io/docs/dom.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: May 15, 2020\n */\nimport { document, window } from 'ssr-window';\n\nclass Dom7 {\n constructor(arr) {\n const self = this;\n // Create array-like object\n for (let i = 0; i < arr.length; i += 1) {\n self[i] = arr[i];\n }\n self.length = arr.length;\n // Return collection with methods\n return this;\n }\n}\n\nfunction $(selector, context) {\n const arr = [];\n let i = 0;\n if (selector && !context) {\n if (selector instanceof Dom7) {\n return selector;\n }\n }\n if (selector) {\n // String\n if (typeof selector === 'string') {\n let els;\n let tempParent;\n const html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(':~]/)) {\n // Pure ID selector\n els = [document.getElementById(selector.trim().split('#')[1])];\n } else {\n // Other selectors\n els = (context || document).querySelectorAll(selector.trim());\n }\n for (i = 0; i < els.length; i += 1) {\n if (els[i]) arr.push(els[i]);\n }\n }\n } else if (selector.nodeType || selector === window || selector === document) {\n // Node/element\n arr.push(selector);\n } else if (selector.length > 0 && selector[0].nodeType) {\n // Array of elements or instance of Dom\n for (i = 0; i < selector.length; i += 1) {\n arr.push(selector[i]);\n }\n }\n }\n return new Dom7(arr);\n}\n\n$.fn = Dom7.prototype;\n$.Class = Dom7;\n$.Dom7 = Dom7;\n\nfunction unique(arr) {\n const uniqueArray = [];\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group1) => group1.toUpperCase());\n}\n\nfunction requestAnimationFrame(callback) {\n if (window.requestAnimationFrame) return window.requestAnimationFrame(callback);\n else if (window.webkitRequestAnimationFrame) return window.webkitRequestAnimationFrame(callback);\n return window.setTimeout(callback, 1000 / 60);\n}\nfunction cancelAnimationFrame(id) {\n if (window.cancelAnimationFrame) return window.cancelAnimationFrame(id);\n else if (window.webkitCancelAnimationFrame) return window.webkitCancelAnimationFrame(id);\n return window.clearTimeout(id);\n}\n\n// Classes and attributes\nfunction addClass(className) {\n if (typeof className === 'undefined') {\n return this;\n }\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.add(classes[i]);\n }\n }\n return this;\n}\nfunction removeClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.remove(classes[i]);\n }\n }\n return this;\n}\nfunction hasClass(className) {\n if (!this[0]) return false;\n return this[0].classList.contains(className);\n}\nfunction toggleClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.toggle(classes[i]);\n }\n }\n return this;\n}\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n }\n\n // Set attrs\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n // eslint-disable-next-line\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n return this;\n}\n// eslint-disable-next-line\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n // eslint-disable-next-line\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n return this;\n }\n}\nfunction data(key, value) {\n let el;\n if (typeof value === 'undefined') {\n el = this[0];\n // Get value\n if (el) {\n if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n }\n return undefined;\n }\n\n // Set value\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n}\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n if (el.dataset) {\n // eslint-disable-next-line\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n // eslint-disable-next-line\n const attr = el.attributes[i];\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n // eslint-disable-next-line\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;\n else if (dataset[key] === 'true') dataset[key] = true;\n else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n return dataset;\n}\nfunction val(value) {\n const dom = this;\n if (typeof value === 'undefined') {\n if (dom[0]) {\n if (dom[0].multiple && dom[0].nodeName.toLowerCase() === 'select') {\n const values = [];\n for (let i = 0; i < dom[0].selectedOptions.length; i += 1) {\n values.push(dom[0].selectedOptions[i].value);\n }\n return values;\n }\n return dom[0].value;\n }\n return undefined;\n }\n\n for (let i = 0; i < dom.length; i += 1) {\n const el = dom[i];\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n return dom;\n}\n// Transforms\n// eslint-disable-next-line\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransform = transform;\n elStyle.transform = transform;\n }\n return this;\n}\nfunction transition(duration) {\n if (typeof duration !== 'string') {\n duration = `${duration}ms`; // eslint-disable-line\n }\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransitionDuration = duration;\n elStyle.transitionDuration = duration;\n }\n return this;\n}\n// Events\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n if ($(target).is(targetSelector)) listener.apply(target, eventData);\n else {\n const parents = $(target).parents(); // eslint-disable-line\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n listener.apply(this, eventData);\n }\n const events = eventType.split(' ');\n let j;\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent,\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent,\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n return this;\n}\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n const events = eventType.split(' ');\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n return this;\n}\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\nfunction trigger(...args) {\n const events = args[0].split(' ');\n const eventData = args[1];\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let evt;\n try {\n evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true,\n });\n } catch (e) {\n evt = document.createEvent('Event');\n evt.initEvent(event, true, true);\n evt.detail = eventData;\n }\n // eslint-disable-next-line\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n return this;\n}\nfunction transitionEnd(callback) {\n const events = ['webkitTransitionEnd', 'transitionend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n /* jshint validthis:true */\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\nfunction animationEnd(callback) {\n const events = ['webkitAnimationEnd', 'animationend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\n// Sizing/Styles\nfunction width() {\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n}\nfunction height() {\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n}\nfunction offset() {\n if (this.length > 0) {\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: (box.top + scrollTop) - clientTop,\n left: (box.left + scrollLeft) - clientLeft,\n };\n }\n\n return null;\n}\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n return this;\n}\nfunction show() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n return this;\n}\nfunction styles() {\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\nfunction css(props, value) {\n let i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n for (i = 0; i < this.length; i += 1) {\n // eslint-disable-next-line\n for (let prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n}\n\n// Dom manipulation\nfunction toArray() {\n const arr = [];\n for (let i = 0; i < this.length; i += 1) {\n arr.push(this[i]);\n }\n return arr;\n}\n// Iterate over the collection passing elements to `callback`\nfunction each(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], i, this[i]) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction forEach(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], this[i], i) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction filter(callback) {\n const matchedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n if (callback.call(dom[i], i, dom[i])) matchedItems.push(dom[i]);\n }\n return new Dom7(matchedItems);\n}\nfunction map(callback) {\n const modifiedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n modifiedItems.push(callback.call(dom[i], i, dom[i]));\n }\n return new Dom7(modifiedItems);\n}\n// eslint-disable-next-line\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : undefined;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n return this;\n}\n// eslint-disable-next-line\nfunction text(text) {\n if (typeof text === 'undefined') {\n if (this[0]) {\n return this[0].textContent.trim();\n }\n return null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n return this;\n}\nfunction is(selector) {\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n else if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n else if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n } else if (selector === document) return el === document;\n else if (selector === window) return el === window;\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n return false;\n}\nfunction indexOf(el) {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i] === el) return i;\n }\n return -1;\n}\nfunction index() {\n let child = this[0];\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\n// eslint-disable-next-line\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n let returnIndex;\n if (index > length - 1) {\n return new Dom7([]);\n }\n if (index < 0) {\n returnIndex = length + index;\n if (returnIndex < 0) return new Dom7([]);\n return new Dom7([this[returnIndex]]);\n }\n return new Dom7([this[index]]);\n}\nfunction append(...args) {\n let newChild;\n\n for (let k = 0; k < args.length; k += 1) {\n newChild = args[k];\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n// eslint-disable-next-line\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\nfunction prepend(newChild) {\n let i;\n let j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\nfunction insertBefore(selector) {\n const before = $(selector);\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\nfunction insertAfter(selector) {\n const after = $(selector);\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return new Dom7([this[0].nextElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return new Dom7(nextEls);\n}\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return new Dom7([el.previousElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (el.previousElementSibling) return new Dom7([el.previousElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return new Dom7(prevEls);\n}\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n return $(unique(parents));\n}\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentNode;\n }\n }\n return $(unique(parents));\n}\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n if (typeof selector === 'undefined') {\n return new Dom7([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n}\nfunction find(selector) {\n const foundElements = [];\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return new Dom7(foundElements);\n}\nfunction children(selector) {\n const children = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].childNodes;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector) {\n if (childNodes[j].nodeType === 1) children.push(childNodes[j]);\n } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return new Dom7(unique(children));\n}\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n return this;\n}\nfunction detach() {\n return this.remove();\n}\nfunction add(...args) {\n const dom = this;\n let i;\n let j;\n for (i = 0; i < args.length; i += 1) {\n const toAdd = $(args[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom[dom.length] = toAdd[j];\n dom.length += 1;\n }\n }\n return dom;\n}\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n el.textContent = '';\n }\n }\n return this;\n}\n\nfunction scrollTo(...args) {\n let [left, top, duration, easing, callback] = args;\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n if (typeof easing === 'undefined') easing = 'swing';\n\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n let scrollLeft; // eslint-disable-line\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n if (animateTop) {\n currentTop = el.scrollTop;\n if (!duration) {\n el.scrollTop = top;\n }\n }\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n if (!duration) return;\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : (0.5 - (Math.cos(progress * Math.PI) / 2));\n let done;\n if (animateTop) scrollTop = currentTop + (easeProgress * (newTop - currentTop));\n if (animateLeft) scrollLeft = currentLeft + (easeProgress * (newLeft - currentLeft));\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n requestAnimationFrame(render);\n }\n requestAnimationFrame(render);\n });\n}\n// scrollTop(top, duration, easing, callback) {\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing', // or 'linear'\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n }, initialParams),\n\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - (Math.cos(progress * Math.PI) / 2);\n }\n if (typeof easing === 'function') {\n return easing(progress);\n }\n return progress;\n },\n stop() {\n if (a.frameId) {\n cancelAnimationFrame(a.frameId);\n }\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done(complete) {\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n const elements = [];\n\n // Define & Cache Initials & Units\n a.elements.each((index, el) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n\n elements[index] = {\n container: el,\n };\n Object.keys(props).forEach((prop) => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue,\n };\n });\n });\n\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress;\n // let el;\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n if (startTime === null) {\n startTime = time;\n }\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), ((startTime + params.duration) - time < 0 ? 0 : (startTime + params.duration) - time), startTime);\n }\n\n elements.forEach((element) => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach((prop) => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const { initialValue, finalValue, unit } = el[prop];\n el[prop].currentValue = initialValue + (easeProgress * (finalValue - initialValue));\n const currentValue = el[prop].currentValue;\n\n if (\n (finalValue > initialValue && currentValue >= finalValue) ||\n (finalValue < initialValue && currentValue <= finalValue)) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n if (done) {\n a.done(params.complete);\n return;\n }\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return;\n // Then call\n a.frameId = requestAnimationFrame(render);\n }\n a.frameId = requestAnimationFrame(render);\n return a;\n },\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = ('resize scroll').split(' ');\nfunction eventShortcut(name, ...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();\n else {\n $(this[i]).trigger(name);\n }\n }\n }\n return this;\n }\n return this.on(name, ...args);\n}\n\nfunction click(...args) {\n return eventShortcut.bind(this)('click', ...args);\n}\nfunction blur(...args) {\n return eventShortcut.bind(this)('blur', ...args);\n}\nfunction focus(...args) {\n return eventShortcut.bind(this)('focus', ...args);\n}\nfunction focusin(...args) {\n return eventShortcut.bind(this)('focusin', ...args);\n}\nfunction focusout(...args) {\n return eventShortcut.bind(this)('focusout', ...args);\n}\nfunction keyup(...args) {\n return eventShortcut.bind(this)('keyup', ...args);\n}\nfunction keydown(...args) {\n return eventShortcut.bind(this)('keydown', ...args);\n}\nfunction keypress(...args) {\n return eventShortcut.bind(this)('keypress', ...args);\n}\nfunction submit(...args) {\n return eventShortcut.bind(this)('submit', ...args);\n}\nfunction change(...args) {\n return eventShortcut.bind(this)('change', ...args);\n}\nfunction mousedown(...args) {\n return eventShortcut.bind(this)('mousedown', ...args);\n}\nfunction mousemove(...args) {\n return eventShortcut.bind(this)('mousemove', ...args);\n}\nfunction mouseup(...args) {\n return eventShortcut.bind(this)('mouseup', ...args);\n}\nfunction mouseenter(...args) {\n return eventShortcut.bind(this)('mouseenter', ...args);\n}\nfunction mouseleave(...args) {\n return eventShortcut.bind(this)('mouseleave', ...args);\n}\nfunction mouseout(...args) {\n return eventShortcut.bind(this)('mouseout', ...args);\n}\nfunction mouseover(...args) {\n return eventShortcut.bind(this)('mouseover', ...args);\n}\nfunction touchstart(...args) {\n return eventShortcut.bind(this)('touchstart', ...args);\n}\nfunction touchend(...args) {\n return eventShortcut.bind(this)('touchend', ...args);\n}\nfunction touchmove(...args) {\n return eventShortcut.bind(this)('touchmove', ...args);\n}\nfunction resize(...args) {\n return eventShortcut.bind(this)('resize', ...args);\n}\nfunction scroll(...args) {\n return eventShortcut.bind(this)('scroll', ...args);\n}\n\nexport { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, prop, data, removeData, dataset, val, transform, transition, on, off, once, trigger, transitionEnd, animationEnd, width, outerWidth, height, outerHeight, offset, hide, show, styles, css, toArray, each, forEach, filter, map, html, text, is, indexOf, index, eq, append, appendTo, prepend, prependTo, insertBefore, insertAfter, next, nextAll, prev, prevAll, siblings, parent, parents, closest, find, children, remove, detach, add, empty, scrollTo, scrollTop, scrollLeft, animate, stop, click, blur, focus, focusin, focusout, keyup, keydown, keypress, submit, change, mousedown, mousemove, mouseup, mouseenter, mouseleave, mouseout, mouseover, touchstart, touchend, touchmove, resize, scroll };\n","/**\n * Swiper 5.4.5\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * http://swiperjs.com\n *\n * Copyright 2014-2020 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: June 16, 2020\n */\n\nimport { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, data, transform, transition as transition$1, on, off, trigger, transitionEnd as transitionEnd$1, outerWidth, outerHeight, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove, add, styles } from 'dom7/dist/dom7.modular';\nimport { window, document as document$1 } from 'ssr-window';\n\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n data,\n transform,\n transition: transition$1,\n on,\n off,\n trigger,\n transitionEnd: transitionEnd$1,\n outerWidth,\n outerHeight,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove,\n add,\n styles,\n};\n\nObject.keys(Methods).forEach((methodName) => {\n $.fn[methodName] = $.fn[methodName] || Methods[methodName];\n});\n\nconst Utils = {\n deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach((key) => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n },\n nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n },\n now() {\n return Date.now();\n },\n getTranslate(el, axis = 'x') {\n let matrix;\n let curTransform;\n let transformMatrix;\n\n const curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map((a) => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n },\n parseUrlQuery(url) {\n const query = {};\n let urlToParse = url || window.location.href;\n let i;\n let params;\n let param;\n let length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter((paramsPart) => paramsPart !== '');\n length = params.length;\n\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';\n }\n }\n return query;\n },\n isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n },\n extend(...args) {\n const to = Object(args[0]);\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n },\n};\n\nconst Support = (function Support() {\n return {\n touch: !!(('ontouchstart' in window) || (window.DocumentTouch && document$1 instanceof window.DocumentTouch)),\n\n pointerEvents: !!window.PointerEvent && ('maxTouchPoints' in window.navigator) && window.navigator.maxTouchPoints >= 0,\n\n observer: (function checkObserver() {\n return ('MutationObserver' in window || 'WebkitMutationObserver' in window);\n }()),\n\n passiveListener: (function checkPassiveListener() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n },\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n }()),\n\n gestures: (function checkGestures() {\n return 'ongesturestart' in window;\n }()),\n };\n}());\n\nclass SwiperClass {\n constructor(params = {}) {\n const self = this;\n self.params = params;\n\n // Events\n self.eventsListeners = {};\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach((eventName) => {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n }\n\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach((event) => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n }\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n self.off(events, onceHandler);\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n handler.apply(self, args);\n }\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\n }\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach((event) => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event] && self.eventsListeners[event].length) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || (eventHandler.f7proxy && eventHandler.f7proxy === handler)) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n }\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach((event) => {\n if (self.eventsListeners && self.eventsListeners[event]) {\n const handlers = [];\n self.eventsListeners[event].forEach((eventHandler) => {\n handlers.push(eventHandler);\n });\n handlers.forEach((eventHandler) => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n useModulesParams(instanceParams) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n Utils.extend(instanceParams, module.params);\n }\n });\n }\n\n useModules(modulesParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n const moduleParams = modulesParams[moduleName] || {};\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach((modulePropName) => {\n const moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach((moduleEventName) => {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n\n static set components(components) {\n const Class = this;\n if (!Class.use) return;\n Class.use(components);\n }\n\n static installModule(module, ...params) {\n const Class = this;\n if (!Class.prototype.modules) Class.prototype.modules = {};\n const name = module.name || (`${Object.keys(Class.prototype.modules).length}_${Utils.now()}`);\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach((key) => {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach((key) => {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n module.install.apply(Class, params);\n }\n return Class;\n }\n\n static use(module, ...params) {\n const Class = this;\n if (Array.isArray(module)) {\n module.forEach((m) => Class.installModule(m));\n return Class;\n }\n return Class.installModule(module, ...params);\n }\n}\n\nfunction updateSize () {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined') {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined') {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);\n height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);\n\n Utils.extend(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height,\n });\n}\n\nfunction updateSlides () {\n const swiper = this;\n const params = swiper.params;\n\n const {\n $wrapperEl, size: swiperSize, rtlTranslate: rtl, wrongRTL,\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n\n function slidesForMargin(slideIndex) {\n if (!params.cssMode) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }\n\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.snapGrid.length;\n\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n if (rtl) slides.css({ marginLeft: '', marginTop: '' });\n else slides.css({ marginRight: '', marginBottom: '' });\n\n let slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n }\n\n // Calc slides\n let slideSize;\n const slidesPerColumn = params.slidesPerColumn;\n const slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n const numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n const slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0\n ? params.slidesPerGroup\n : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = (slideIndexInGroup - row * columnsInGroup) + groupIndex * params.slidesPerGroup;\n\n newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn);\n slide\n .css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex,\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - (column * slidesPerColumn);\n if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - (row * slidesPerRow);\n }\n slide.css(\n `margin-${swiper.isHorizontal() ? 'top' : 'left'}`,\n (row !== 0 && params.spaceBetween) && (`${params.spaceBetween}px`)\n );\n }\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n const slideStyles = window.getComputedStyle(slide[0], null);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal()\n ? slide.outerWidth(true)\n : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n const width = parseFloat(slideStyles.getPropertyValue('width'));\n const paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left'));\n const paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right'));\n const marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left'));\n const marginRight = parseFloat(slideStyles.getPropertyValue('margin-right'));\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\n }\n } else {\n const height = parseFloat(slideStyles.getPropertyValue('height'));\n const paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top'));\n const paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom'));\n const marginTop = parseFloat(slideStyles.getPropertyValue('margin-top'));\n const marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom'));\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\n }\n }\n }\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = `${slideSize}px`;\n } else {\n slides[i].style.height = `${slideSize}px`;\n }\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + (slideSize / 2) + (prevSlideSize / 2) + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\n if (i === 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index) % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n\n prevSlideSize = slideSize;\n\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n let newSlidesGrid;\n\n if (\n rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n if (params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid = newSlidesGrid;\n }\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.filter(slidesForMargin).css({ marginLeft: `${spaceBetween}px` });\n else slides.filter(slidesForMargin).css({ marginRight: `${spaceBetween}px` });\n } else slides.filter(slidesForMargin).css({ marginBottom: `${spaceBetween}px` });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue) => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map((snap) => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue) => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Utils.extend(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid,\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}\n\nfunction updateAutoHeight (speed) {\n const swiper = this;\n const activeSlides = [];\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each((index, slide) => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}\n\nfunction updateSlidesOffset () {\n const swiper = this;\n const slides = swiper.slides;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}\n\nfunction updateSlidesProgress (translate = (this && this.translate) || 0) {\n const swiper = this;\n const params = swiper.params;\n\n const { slides, rtlTranslate: rtl } = swiper;\n\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.removeClass(params.slideVisibleClass);\n\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n const slideProgress = (\n (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset\n ) / (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) {\n const slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = (slideBefore >= 0 && slideBefore < swiper.size - 1)\n || (slideAfter > 1 && slideAfter <= swiper.size)\n || (slideBefore <= 0 && slideAfter >= swiper.size);\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n swiper.visibleSlides = $(swiper.visibleSlides);\n}\n\nfunction updateProgress (translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = (swiper && swiper.translate && (swiper.translate * multiplier)) || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let { progress, isBeginning, isEnd } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / (translatesDiff);\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n Utils.extend(swiper, {\n progress,\n isBeginning,\n isEnd,\n });\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}\n\nfunction updateSlidesClasses () {\n const swiper = this;\n\n const {\n slides, params, $wrapperEl, activeIndex, realIndex,\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n\n let activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n }\n\n // Active classes\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n }\n }\n}\n\nfunction updateActiveIndex (newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid, snapGrid, params, activeIndex: previousIndex, realIndex: previousRealIndex, snapIndex: previousSnapIndex,\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - ((slidesGrid[i + 1] - slidesGrid[i]) / 2)) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n\n // Get real index\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n\n Utils.extend(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex,\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide (e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e.target).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide,\n};\n\nfunction getTranslate (axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n\n const {\n params, rtlTranslate: rtl, translate, $wrapperEl,\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n\n return currentTranslate || 0;\n}\n\nfunction setTranslate (translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl, params, $wrapperEl, wrapperEl, progress,\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate () {\n return (-this.snapGrid[0]);\n}\n\nfunction maxTranslate () {\n return (-this.snapGrid[this.snapGrid.length - 1]);\n}\n\nfunction translateTo (translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n\n const {\n params,\n wrapperEl,\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;\n else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;\n else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth',\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}\n\nvar translate = {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo,\n};\n\nfunction setTransition (duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionStart (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, params, previousIndex } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}\n\nfunction transitionEnd (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, previousIndex, params } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd,\n};\n\nfunction slideTo (index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n\n const {\n params, snapGrid, slidesGrid, previousIndex, activeIndex, rtlTranslate: rtl, wrapperEl,\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex];\n\n // Update progress\n swiper.updateProgress(translate);\n\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';\n else if (slideIndex < activeIndex) direction = 'prev';\n else direction = 'reset';\n\n\n // Update Index\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n let t = -translate;\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth',\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}\n\nfunction slideToLoop (index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const { params, animating } = swiper;\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params, animating, snapGrid, slidesGrid, rtlTranslate,\n } = swiper;\n\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map((val) => normalize(val));\n const normalizedSlidesGrid = slidesGrid.map((val) => normalize(val));\n\n const currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach((snap) => {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n let prevIndex;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest (speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if ((translate - currentSnap) > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if ((translate - prevSnap) <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (\n (slideToIndex < swiper.loopedSlides - (slidesPerView / 2))\n || (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2))\n ) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide,\n};\n\nfunction loopCreate () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n // Remove duplicated slides\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n\n let slides = $wrapperEl.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document$1.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((index, el) => {\n const slide = $(el);\n if (index < swiper.loopedSlides) appendSlides.push(el);\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) prependSlides.push(el);\n slide.attr('data-swiper-slide-index', index);\n });\n for (let i = 0; i < appendSlides.length; i += 1) {\n $wrapperEl.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $wrapperEl.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}\n\nfunction loopFix () {\n const swiper = this;\n\n swiper.emit('beforeLoopFix');\n\n const {\n activeIndex, slides, loopedSlides, allowSlidePrev, allowSlideNext, snapGrid, rtlTranslate: rtl,\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate();\n\n // Fix For Negative Oversliding\n if (activeIndex < loopedSlides) {\n newIndex = (slides.length - (loopedSlides * 3)) + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy () {\n const swiper = this;\n const { $wrapperEl, params, slides } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy,\n};\n\nfunction setGrabCursor (moving) {\n const swiper = this;\n if (Support.touch || !swiper.params.simulateTouch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) return;\n const el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}\n\nfunction unsetGrabCursor () {\n const swiper = this;\n if (Support.touch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) return;\n swiper.el.style.cursor = '';\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor,\n};\n\nfunction appendSlide (slides) {\n const swiper = this;\n const { $wrapperEl, params } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n}\n\nfunction prependSlide (slides) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n\nfunction addSlide (index, slides) {\n const swiper = this;\n const { $wrapperEl, params, activeIndex } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n $wrapperEl.append(slidesBuffer[i]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeSlide (slidesIndexes) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeAllSlides () {\n const swiper = this;\n\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n\nvar manipulation = {\n appendSlide,\n prependSlide,\n addSlide,\n removeSlide,\n removeAllSlides,\n};\n\nconst Device = (function Device() {\n const platform = window.navigator.platform;\n const ua = window.navigator.userAgent;\n\n const device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n iphone: false,\n ipod: false,\n ipad: false,\n edge: false,\n ie: false,\n firefox: false,\n macos: false,\n windows: false,\n cordova: !!(window.cordova || window.phonegap),\n phonegap: !!(window.cordova || window.phonegap),\n electron: false,\n };\n\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n const edge = ua.indexOf('Edge/') >= 0;\n const firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0;\n const windows = platform === 'Win32';\n const electron = ua.toLowerCase().indexOf('electron') >= 0;\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n if (!ipad\n && macos\n && Support.touch\n && (\n (screenWidth === 1024 && screenHeight === 1366) // Pro 12.9\n || (screenWidth === 834 && screenHeight === 1194) // Pro 11\n || (screenWidth === 834 && screenHeight === 1112) // Pro 10.5\n || (screenWidth === 768 && screenHeight === 1024) // other\n )\n ) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n macos = false;\n }\n\n device.ie = ie;\n device.edge = edge;\n device.firefox = firefox;\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.ipod = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Webview\n device.webView = !!((iphone || ipad || ipod) && (ua.match(/.*AppleWebKit(?!.*Safari)/i) || window.navigator.standalone))\n || (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches);\n device.webview = device.webView;\n device.standalone = device.webView;\n\n // Desktop\n device.desktop = !(device.ios || device.android) || electron;\n if (device.desktop) {\n device.electron = electron;\n device.macos = macos;\n device.windows = windows;\n if (device.macos) {\n device.os = 'macos';\n }\n if (device.windows) {\n device.os = 'windows';\n }\n }\n\n // Pixel Ratio\n device.pixelRatio = window.devicePixelRatio || 1;\n\n // Export object\n return device;\n}());\n\nfunction onTouchStart (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`)[0]) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (\n edgeSwipeDetection\n && ((startX <= edgeSwipeThreshold)\n || (startX >= window.screen.width - edgeSwipeThreshold))\n ) {\n return;\n }\n\n Utils.extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined,\n });\n\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = Utils.now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n if (\n document$1.activeElement\n && $(document$1.activeElement).is(data.formElements)\n && document$1.activeElement !== $targetEl[0]\n ) {\n document$1.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches, rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data.isTouched) {\n Utils.extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n });\n data.touchStartTime = Utils.now();\n }\n return;\n }\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate())\n || (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\n ) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate())\n || (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\n ) {\n return;\n }\n }\n if (data.isTouchEvent && document$1.activeElement) {\n if (e.target === document$1.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n\n touches.currentX = pageX;\n touches.currentY = pageY;\n\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt((diffX ** 2) + (diffY ** 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if ((diffX * diffX) + (diffY * diffY) >= 25) {\n touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle);\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if ((diff > 0 && data.currentTranslate > swiper.minTranslate())) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = (swiper.minTranslate() - 1) + ((-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = (swiper.maxTranslate() + 1) - ((swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime,\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: Utils.now(),\n });\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n\n const {\n params, touches, rtlTranslate: rtl, $wrapperEl, slidesGrid, snapGrid,\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = Utils.now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = Utils.now();\n Utils.nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeModeMomentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n swiper.once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += (i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup)) {\n const increment = (i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup);\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = (stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup);\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);\n else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > (1 - params.longSwipesRatio)) swiper.slideTo(stopIndex + increment);\n else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize () {\n const swiper = this;\n\n const { params, el } = swiper;\n\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const { allowSlideNext, allowSlidePrev, snapGrid } = swiper;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n\n swiper.updateSize();\n swiper.updateSlides();\n\n swiper.updateSlidesClasses();\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick (e) {\n const swiper = this;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction onScroll () {\n const swiper = this;\n const { wrapperEl, rtlTranslate } = swiper;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = ((wrapperEl.scrollWidth - wrapperEl.offsetWidth) - wrapperEl.scrollLeft);\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === -0) swiper.translate = 0;\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n const swiper = this;\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n const capture = !!params.nested;\n\n // Touch Events\n if (!Support.touch && Support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document$1.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document$1.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n if (!dummyEventAttached) {\n document$1.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document$1.addEventListener('mousemove', swiper.onTouchMove, capture);\n document$1.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper.on((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n const swiper = this;\n\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n const capture = !!params.nested;\n\n // Touch Events\n if (!Support.touch && Support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document$1.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document$1.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document$1.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document$1.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n swiper.off((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize);\n}\n\nvar events = {\n attachEvents,\n detachEvents,\n};\n\nfunction setBreakpoint () {\n const swiper = this;\n const {\n activeIndex, initialized, loopedSlides = 0, params, $el,\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach((param) => {\n const paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = params.slidesPerColumn > 1;\n const isMultiRow = breakpointParams.slidesPerColumn > 1;\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}multirow ${params.containerModifierClass}multirow-column`);\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}multirow`);\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(`${params.containerModifierClass}multirow-column`);\n }\n }\n\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n Utils.extend(swiper.params, breakpointParams);\n\n Utils.extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n });\n\n swiper.currentBreakpoint = breakpoint;\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n}\n\nfunction getBreakpoint (breakpoints) {\n // Get breakpoint for window width\n if (!breakpoints) return undefined;\n let breakpoint = false;\n\n const points = Object.keys(breakpoints).map((point) => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = window.innerHeight * minRatio;\n return { value, point };\n }\n return { value: point, point };\n });\n\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const { point, value } = points[i];\n if (value <= window.innerWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n\nvar breakpoints = { setBreakpoint, getBreakpoint };\n\nfunction addClasses () {\n const swiper = this;\n const {\n classNames, params, rtl, $el,\n } = swiper;\n const suffixes = [];\n\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n if (rtl) {\n suffixes.push('rtl');\n }\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n if (Device.android) {\n suffixes.push('android');\n }\n if (Device.ios) {\n suffixes.push('ios');\n }\n\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n\n suffixes.forEach((suffix) => {\n classNames.push(params.containerModifierClass + suffix);\n });\n\n $el.addClass(classNames.join(' '));\n}\n\nfunction removeClasses () {\n const swiper = this;\n const { $el, classNames } = swiper;\n\n $el.removeClass(classNames.join(' '));\n}\n\nvar classes = { addClasses, removeClasses };\n\nfunction loadImage (imageEl, src, srcset, sizes, checkForComplete, callback) {\n let image;\n function onReady() {\n if (callback) callback();\n }\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}\n\nfunction preloadImages () {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(\n imageEl,\n imageEl.currentSrc || imageEl.getAttribute('src'),\n imageEl.srcset || imageEl.getAttribute('srcset'),\n imageEl.sizes || imageEl.getAttribute('sizes'),\n true,\n onReady\n );\n }\n}\n\nvar images = {\n loadImage,\n preloadImages,\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const params = swiper.params;\n const wasLocked = swiper.isLocked;\n const lastSlidePosition = swiper.slides.length > 0 && (params.slidesOffsetBefore + (params.spaceBetween * (swiper.slides.length - 1)) + ((swiper.slides[0]).offsetWidth) * swiper.slides.length);\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked;\n\n // events\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nvar checkOverflow$1 = { checkOverflow };\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n //\n preventInteractionOnTransition: false,\n\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n\n // Autoheight\n autoHeight: false,\n\n // Set wrapper width\n setWrapperSize: false,\n\n // Virtual Translate\n virtualTranslate: false,\n\n // Effects\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0, // in px\n slidesOffsetAfter: 0, // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n\n // Round length\n roundLengths: false,\n\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n\n // Unique Navigation Elements\n uniqueNavElements: true,\n\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n\n // Cursor\n grabCursor: false,\n\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null, // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n\n // Passive Listeners\n passiveListeners: true,\n\n // NS\n containerModifierClass: 'swiper-container-', // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n\n // Callbacks\n runCallbacksOnInit: true,\n};\n\n/* eslint no-param-reassign: \"off\" */\n\nconst prototypes = {\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n manipulation,\n events,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes,\n images,\n};\n\nconst extendedDefaults = {};\n\nclass Swiper extends SwiperClass {\n constructor(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n\n params = Utils.extend({}, params);\n if (el && !params.el) params.el = el;\n\n super(params);\n\n Object.keys(prototypes).forEach((prototypeGroup) => {\n Object.keys(prototypes[prototypeGroup]).forEach((protoMethod) => {\n if (!Swiper.prototype[protoMethod]) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n }\n });\n });\n\n // Swiper Instance\n const swiper = this;\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach((moduleName) => {\n const module = swiper.modules[moduleName];\n if (module.params) {\n const moduleParamName = Object.keys(module.params)[0];\n const moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n if (params[moduleParamName] === true) {\n params[moduleParamName] = { enabled: true };\n }\n if (\n typeof params[moduleParamName] === 'object'\n && !('enabled' in params[moduleParamName])\n ) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = { enabled: false };\n }\n });\n\n // Extend defaults with modules params\n const swiperParams = Utils.extend({}, defaults);\n swiper.useModulesParams(swiperParams);\n\n // Extend defaults with passed params\n swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = Utils.extend({}, swiper.params);\n swiper.passedParams = Utils.extend({}, params);\n\n // Save Dom lib\n swiper.$ = $;\n\n // Find el\n const $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n const swipers = [];\n $el.each((index, containerEl) => {\n const newParams = Utils.extend({}, params, { el: containerEl });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper;\n $el.data('swiper', swiper);\n\n // Find Wrapper\n let $wrapperEl;\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector(`.${swiper.params.wrapperClass}`));\n // Children needs to return slot items\n $wrapperEl.children = (options) => $el.children(options);\n } else {\n $wrapperEl = $el.children(`.${swiper.params.wrapperClass}`);\n }\n // Extend Swiper\n Utils.extend(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n\n // Classes\n classNames: [],\n\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n\n //\n isBeginning: true,\n isEnd: false,\n\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n\n // Touch Events\n touchEvents: (function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n let desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (Support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3],\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2],\n };\n return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }()),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: Utils.now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined,\n },\n\n // Clicks\n allowClick: true,\n\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0,\n },\n\n // Images\n imagesToLoad: [],\n imagesLoaded: 0,\n\n });\n\n // Install Modules\n swiper.useModules();\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n return swiper;\n }\n\n slidesPerViewDynamic() {\n const swiper = this;\n const {\n params, slides, slidesGrid, size: swiperSize, activeIndex,\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slidesGrid[i] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const { snapGrid, params } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (swiper.params.freeMode) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if ((newDirection === currentDirection) || (newDirection !== 'horizontal' && newDirection !== 'vertical')) {\n return swiper;\n }\n\n swiper.$el\n .removeClass(`${swiper.params.containerModifierClass}${currentDirection}`)\n .addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n\n swiper.params.direction = newDirection;\n\n swiper.slides.each((slideIndex, slideEl) => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n\n return swiper;\n }\n\n init() {\n const swiper = this;\n if (swiper.initialized) return;\n\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n }\n\n // Attach events\n swiper.attachEvents();\n\n // Init Flag\n swiper.initialized = true;\n\n // Emit\n swiper.emit('init');\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params, $el, $wrapperEl, slides,\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides\n .removeClass([\n params.slideVisibleClass,\n params.slideActiveClass,\n params.slideNextClass,\n params.slidePrevClass,\n ].join(' '))\n .removeAttr('style')\n .removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach((eventName) => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n swiper.$el.data('swiper', null);\n Utils.deleteProps(swiper);\n }\n swiper.destroyed = true;\n\n return null;\n }\n\n static extendDefaults(newDefaults) {\n Utils.extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static get Class() {\n return SwiperClass;\n }\n\n static get $() {\n return $;\n }\n}\n\nvar Device$1 = {\n name: 'device',\n proto: {\n device: Device,\n },\n static: {\n device: Device,\n },\n};\n\nvar Support$1 = {\n name: 'support',\n proto: {\n support: Support,\n },\n static: {\n support: Support,\n },\n};\n\nconst Browser = (function Browser() {\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);\n }\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),\n };\n}());\n\nvar Browser$1 = {\n name: 'browser',\n proto: {\n browser: Browser,\n },\n static: {\n browser: Browser,\n },\n};\n\nvar Resize = {\n name: 'resize',\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n resize: {\n resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n },\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n // Emit resize\n window.addEventListener('resize', swiper.resize.resizeHandler);\n\n // Emit orientationchange\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy() {\n const swiper = this;\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n },\n};\n\nconst Observer = {\n func: window.MutationObserver || window.WebkitMutationObserver,\n attach(target, options = {}) {\n const swiper = this;\n\n const ObserverFunc = Observer.func;\n const observer = new ObserverFunc((mutations) => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData,\n });\n\n swiper.observer.observers.push(observer);\n },\n init() {\n const swiper = this;\n if (!Support.observer || !swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n for (let i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n }\n // Observe container\n swiper.observer.attach(swiper.$el[0], { childList: swiper.params.observeSlideChildren });\n\n // Observe wrapper\n swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false });\n },\n destroy() {\n const swiper = this;\n swiper.observer.observers.forEach((observer) => {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n },\n};\n\nvar Observer$1 = {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false,\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n observer: {\n init: Observer.init.bind(swiper),\n attach: Observer.attach.bind(swiper),\n destroy: Observer.destroy.bind(swiper),\n observers: [],\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.observer.init();\n },\n destroy() {\n const swiper = this;\n swiper.observer.destroy();\n },\n },\n};\n\nconst Virtual = {\n update(force) {\n const swiper = this;\n const { slidesPerView, slidesPerGroup, centeredSlides } = swiper.params;\n const { addSlidesBefore, addSlidesAfter } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n renderSlide,\n offset: previousOffset,\n } = swiper.virtual;\n swiper.updateActiveIndex();\n const activeIndex = swiper.activeIndex || 0;\n\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';\n else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore;\n slidesBefore = slidesPerGroup + addSlidesAfter;\n }\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n\n Utils.extend(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid,\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, `${offset}px`);\n }\n swiper.updateProgress();\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: (function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()),\n });\n onRendered();\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n if (force) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`).remove();\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n if (i >= from && i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i);\n } else {\n if (i > previousTo) appendIndexes.push(i);\n if (i < previousFrom) prependIndexes.push(i);\n }\n }\n }\n appendIndexes.forEach((index) => {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort((a, b) => b - a).forEach((index) => {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\n onRendered();\n },\n renderSlide(slide, index) {\n const swiper = this;\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n const $slideEl = params.renderSlide\n ? $(params.renderSlide.call(swiper, slide, index))\n : $(`
      ${slide}
      `);\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n },\n appendSlide(slides) {\n const swiper = this;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n swiper.virtual.update(true);\n },\n prependSlide(slides) {\n const swiper = this;\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach((cachedIndex) => {\n const $cachedEl = cache[cachedIndex];\n const cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide(slidesIndexes) {\n const swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides() {\n const swiper = this;\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n },\n};\n\nvar virtual = {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n addSlidesBefore: 0,\n addSlidesAfter: 0,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n virtual: {\n update: Virtual.update.bind(swiper),\n appendSlide: Virtual.appendSlide.bind(swiper),\n prependSlide: Virtual.prependSlide.bind(swiper),\n removeSlide: Virtual.removeSlide.bind(swiper),\n removeAllSlides: Virtual.removeAllSlides.bind(swiper),\n renderSlide: Virtual.renderSlide.bind(swiper),\n slides: swiper.params.virtual.slides,\n cache: {},\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n const overwriteParams = {\n watchSlidesProgress: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n },\n },\n};\n\nconst Keyboard = {\n handle(event) {\n const swiper = this;\n const { rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (!swiper.allowSlideNext && ((swiper.isHorizontal() && isArrowRight) || (swiper.isVertical() && isArrowDown) || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && ((swiper.isHorizontal() && isArrowLeft) || (swiper.isVertical() && isArrowUp) || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document$1.activeElement && document$1.activeElement.nodeName && (document$1.activeElement.nodeName.toLowerCase() === 'input' || document$1.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [\n [swiperOffset.left, swiperOffset.top],\n [swiperOffset.left + swiper.width, swiperOffset.top],\n [swiperOffset.left, swiperOffset.top + swiper.height],\n [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height],\n ];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (\n point[0] >= 0 && point[0] <= windowWidth\n && point[1] >= 0 && point[1] <= windowHeight\n ) {\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if (((isPageDown || isArrowRight) && !rtl) || ((isPageUp || isArrowLeft) && rtl)) swiper.slideNext();\n if (((isPageUp || isArrowLeft) && !rtl) || ((isPageDown || isArrowRight) && rtl)) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable() {\n const swiper = this;\n if (swiper.keyboard.enabled) return;\n $(document$1).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable() {\n const swiper = this;\n if (!swiper.keyboard.enabled) return;\n $(document$1).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n },\n};\n\nvar keyboard = {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n keyboard: {\n enabled: false,\n enable: Keyboard.enable.bind(swiper),\n disable: Keyboard.disable.bind(swiper),\n handle: Keyboard.handle.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n },\n },\n};\n\nfunction isEventSupported() {\n const eventName = 'onwheel';\n let isSupported = eventName in document$1;\n\n if (!isSupported) {\n const element = document$1.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported\n && document$1.implementation\n && document$1.implementation.hasFeature\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n && document$1.implementation.hasFeature('', '') !== true\n ) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document$1.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\nconst Mousewheel = {\n lastScrollTime: Utils.now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event() {\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) { // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = (pX < 1) ? -1 : 1;\n }\n if (pY && !sY) {\n sY = (pY < 1) ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY,\n };\n },\n handleMouseEnter() {\n const swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave() {\n const swiper = this;\n swiper.mouseEntered = false;\n },\n handle(event) {\n let e = event;\n const swiper = this;\n const params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n\n const data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;\n else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;\n else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n\n if (params.invert) delta = -delta;\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: Utils.now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event,\n };\n\n // Keep the most recent events\n const recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = { time: Utils.now(), delta: Math.abs(delta), direction: Math.sign(delta) };\n const { lastEventBeforeSnap } = swiper.mousewheel;\n const ignoreWheelEvents = lastEventBeforeSnap\n && newEvent.time < lastEventBeforeSnap.time + 500\n && newEvent.delta <= lastEventBeforeSnap.delta\n && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n let position = swiper.getTranslate() + (delta * params.sensitivity);\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momuntum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n const recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15\n && newEvent.time - firstEvent.time < 500\n && firstEvent.delta - newEvent.delta >= 1\n && newEvent.delta <= 6\n ) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.mousewheel.timeout = Utils.nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = Utils.nextTick(() => {\n const snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) swiper.emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n return false;\n },\n animateSlider(newEvent) {\n const swiper = this;\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && Utils.now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n swiper.mousewheel.lastScrollTime = (new window.Date()).getTime();\n // Return false as a default\n return false;\n },\n releaseScroll(newEvent) {\n const swiper = this;\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n },\n enable() {\n const swiper = this;\n const event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable() {\n const swiper = this;\n const event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n },\n};\n\nvar mousewheel = {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarged: 'container',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n mousewheel: {\n enabled: false,\n enable: Mousewheel.enable.bind(swiper),\n disable: Mousewheel.disable.bind(swiper),\n handle: Mousewheel.handle.bind(swiper),\n handleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper),\n handleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper),\n animateSlider: Mousewheel.animateSlider.bind(swiper),\n releaseScroll: Mousewheel.releaseScroll.bind(swiper),\n lastScrollTime: Utils.now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy() {\n const swiper = this;\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n },\n },\n};\n\nconst Navigation = {\n update() {\n // Update Navigation Buttons\n const swiper = this;\n const params = swiper.params.navigation;\n\n if (swiper.params.loop) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n onPrevClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init() {\n const swiper = this;\n const params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) return;\n\n let $nextEl;\n let $prevEl;\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.nextEl === 'string'\n && $nextEl.length > 1\n && swiper.$el.find(params.nextEl).length === 1\n ) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.prevEl === 'string'\n && $prevEl.length > 1\n && swiper.$el.find(params.prevEl).length === 1\n ) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n Utils.extend(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0],\n });\n },\n destroy() {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n },\n};\n\nvar navigation = {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n navigation: {\n init: Navigation.init.bind(swiper),\n update: Navigation.update.bind(swiper),\n destroy: Navigation.destroy.bind(swiper),\n onNextClick: Navigation.onNextClick.bind(swiper),\n onPrevClick: Navigation.onPrevClick.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n fromEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n destroy() {\n const swiper = this;\n swiper.navigation.destroy();\n },\n click(e) {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if (\n swiper.params.navigation.hideOnClick\n && !$(e.target).is($prevEl)\n && !$(e.target).is($nextEl)\n ) {\n let isHidden;\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n swiper.emit('navigationShow', swiper);\n } else {\n swiper.emit('navigationHide', swiper);\n }\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n },\n },\n};\n\nconst Pagination = {\n update() {\n // Render || Update Pagination bullets/items\n const swiper = this;\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n // Current/Total\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) {\n current -= (slidesLength - (swiper.loopedSlides * 2));\n }\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)}px`);\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += (current - swiper.previousIndex);\n if (swiper.pagination.dynamicBulletIndex > (params.dynamicMainBullets - 1)) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass(`${params.bulletActiveClass} ${params.bulletActiveClass}-next ${params.bulletActiveClass}-next-next ${params.bulletActiveClass}-prev ${params.bulletActiveClass}-prev-prev ${params.bulletActiveClass}-main`);\n if ($el.length > 1) {\n bullets.each((index, bullet) => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n if (bulletIndex === firstIndex) {\n $bullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n }\n if (bulletIndex === lastIndex) {\n $bullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize);\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n if (params.type === 'fraction') {\n $el.find(`.${params.currentClass}`).text(params.formatFractionCurrent(current + 1));\n $el.find(`.${params.totalClass}`).text(params.formatFractionTotal(total));\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n $el.find(`.${params.progressbarFillClass}`).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', swiper, $el[0]);\n } else {\n swiper.emit('paginationUpdate', swiper, $el[0]);\n }\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render() {\n // Render Container\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n if (params.type === 'bullets') {\n const numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(`.${params.bulletClass}`);\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = ``\n + ' / '\n + ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el) return;\n\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (\n swiper.params.uniqueNavElements\n && typeof params.el === 'string'\n && $el.length > 1\n ) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n swiper.pagination.dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', `.${params.bulletClass}`, function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Utils.extend(swiper.pagination, {\n $el,\n el: $el[0],\n });\n },\n destroy() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const $el = swiper.pagination.$el;\n\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n if (params.clickable) {\n $el.off('click', `.${params.bulletClass}`);\n }\n },\n};\n\nvar pagination = {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: (number) => number,\n formatFractionTotal: (number) => number,\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-', // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable', // NEW\n lockClass: 'swiper-pagination-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n pagination: {\n init: Pagination.init.bind(swiper),\n render: Pagination.render.bind(swiper),\n update: Pagination.update.bind(swiper),\n destroy: Pagination.destroy.bind(swiper),\n dynamicBulletIndex: 0,\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy() {\n const swiper = this;\n swiper.pagination.destroy();\n },\n click(e) {\n const swiper = this;\n if (\n swiper.params.pagination.el\n && swiper.params.pagination.hideOnClick\n && swiper.pagination.$el.length > 0\n && !$(e.target).hasClass(swiper.params.pagination.bulletClass)\n ) {\n const isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n swiper.emit('paginationShow', swiper);\n } else {\n swiper.emit('paginationHide', swiper);\n }\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n },\n },\n};\n\nconst Scrollbar = {\n setTranslate() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const { scrollbar, rtlTranslate: rtl, progress } = swiper;\n const {\n dragSize, trackSize, $dragEl, $el,\n } = scrollbar;\n const params = swiper.params.scrollbar;\n\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n $dragEl[0].style.width = `${newSize}px`;\n } else {\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n $dragEl[0].style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n\n const { scrollbar } = swiper;\n const { $dragEl, $el } = scrollbar;\n\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n const trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n\n const divider = swiper.size / swiper.virtualSize;\n const moveDivider = divider * (trackSize / swiper.size);\n let dragSize;\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = `${dragSize}px`;\n } else {\n $dragEl[0].style.height = `${dragSize}px`;\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n Utils.extend(scrollbar, {\n trackSize,\n divider,\n moveDivider,\n dragSize,\n });\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n },\n getPointerPosition(e) {\n const swiper = this;\n if (swiper.isHorizontal()) {\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].clientX : e.clientX);\n }\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].clientY : e.clientY);\n },\n setDragPosition(e) {\n const swiper = this;\n const { scrollbar, rtlTranslate: rtl } = swiper;\n const {\n $el,\n dragSize,\n trackSize,\n dragStartPos,\n } = scrollbar;\n\n let positionRatio;\n positionRatio = ((scrollbar.getPointerPosition(e)) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top']\n - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n const position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio);\n\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart(e) {\n const swiper = this;\n const params = swiper.params.scrollbar;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = (e.target === $dragEl[0] || e.target === $dragEl)\n ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n\n clearTimeout(swiper.scrollbar.dragTimeout);\n\n $el.transition(0);\n if (params.hide) {\n $el.css('opacity', 1);\n }\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove(e) {\n const swiper = this;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd(e) {\n const swiper = this;\n\n const params = swiper.params.scrollbar;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = Utils.nextTick(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n swiper.emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const {\n scrollbar, touchEventsTouch, touchEventsDesktop, params,\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n const passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document$1.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document$1.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const {\n scrollbar, touchEventsTouch, touchEventsDesktop, params,\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n const passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document$1.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document$1.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const { scrollbar, $el: $swiperEl } = swiper;\n const params = swiper.params.scrollbar;\n\n let $el = $(params.el);\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n if ($dragEl.length === 0) {\n $dragEl = $(`
      `);\n $el.append($dragEl);\n }\n\n Utils.extend(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0],\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.disableDraggable();\n },\n};\n\nvar scrollbar = {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n scrollbar: {\n init: Scrollbar.init.bind(swiper),\n destroy: Scrollbar.destroy.bind(swiper),\n updateSize: Scrollbar.updateSize.bind(swiper),\n setTranslate: Scrollbar.setTranslate.bind(swiper),\n setTransition: Scrollbar.setTransition.bind(swiper),\n enableDraggable: Scrollbar.enableDraggable.bind(swiper),\n disableDraggable: Scrollbar.disableDraggable.bind(swiper),\n setDragPosition: Scrollbar.setDragPosition.bind(swiper),\n getPointerPosition: Scrollbar.getPointerPosition.bind(swiper),\n onDragStart: Scrollbar.onDragStart.bind(swiper),\n onDragMove: Scrollbar.onDragMove.bind(swiper),\n onDragEnd: Scrollbar.onDragEnd.bind(swiper),\n isTouched: false,\n timeout: null,\n dragTimeout: null,\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n resize() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n observerUpdate() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n setTranslate() {\n const swiper = this;\n swiper.scrollbar.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n swiper.scrollbar.setTransition(duration);\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.destroy();\n },\n },\n};\n\nconst Parallax = {\n setTransform(el, progress) {\n const swiper = this;\n const { rtl } = swiper;\n\n const $el = $(el);\n const rtlFactor = rtl ? -1 : 1;\n\n const p = $el.attr('data-swiper-parallax') || '0';\n let x = $el.attr('data-swiper-parallax-x');\n let y = $el.attr('data-swiper-parallax-y');\n const scale = $el.attr('data-swiper-parallax-scale');\n const opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if ((x).indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if ((y).indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - ((opacity - 1) * (1 - Math.abs(progress)));\n $el[0].style.opacity = currentOpacity;\n }\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\n } else {\n const currentScale = scale - ((scale - 1) * (1 - Math.abs(progress)));\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n }\n },\n setTranslate() {\n const swiper = this;\n const {\n $el, slides, progress, snapGrid,\n } = swiper;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each((index, el) => {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each((slideIndex, slideEl) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1));\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each((index, el) => {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition(duration = this.params.speed) {\n const swiper = this;\n const { $el } = swiper;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each((index, parallaxEl) => {\n const $parallaxEl = $(parallaxEl);\n let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n },\n};\n\nvar parallax = {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n parallax: {\n setTransform: Parallax.setTransform.bind(swiper),\n setTranslate: Parallax.setTranslate.bind(swiper),\n setTransition: Parallax.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTransition(duration);\n },\n },\n};\n\nconst Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n const x1 = e.targetTouches[0].pageX;\n const y1 = e.targetTouches[0].pageY;\n const x2 = e.targetTouches[1].pageX;\n const y2 = e.targetTouches[1].pageY;\n const distance = Math.sqrt(((x2 - x1) ** 2) + ((y2 - y1) ** 2));\n return distance;\n },\n // Events\n onGestureStart(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n if (!Support.gestures) {\n if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n swiper.zoom.isScaling = true;\n },\n onGestureChange(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!Support.gestures) {\n if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (Support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale;\n }\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = (gesture.maxRatio - 1) + (((zoom.scale - gesture.maxRatio) + 1) ** 0.5);\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = (params.minRatio + 1) - (((params.minRatio - zoom.scale) + 1) ** 0.5);\n }\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n onGestureEnd(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!Support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) {\n return;\n }\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n },\n onTouchStart(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (Device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !zoom.isScaling) {\n if (\n swiper.isHorizontal()\n && (\n (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x)\n || (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)\n )\n ) {\n image.isTouched = false;\n return;\n } if (\n !swiper.isHorizontal()\n && (\n (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y)\n || (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)\n )\n ) {\n image.isTouched = false;\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n image.isMoved = true;\n image.currentX = (image.touchesCurrent.x - image.touchesStart.x) + image.startX;\n image.currentY = (image.touchesCurrent.y - image.touchesStart.y) + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = (image.minX + 1) - (((image.minX - image.currentX) + 1) ** 0.8);\n }\n if (image.currentX > image.maxX) {\n image.currentX = (image.maxX - 1) + (((image.currentX - image.maxX) + 1) ** 0.8);\n }\n\n if (image.currentY < image.minY) {\n image.currentY = (image.minY + 1) - (((image.minY - image.currentY) + 1) ** 0.8);\n }\n if (image.currentY > image.maxY) {\n image.currentY = (image.maxY - 1) + (((image.currentY - image.maxY) + 1) ** 0.8);\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTouchEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n\n gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTransitionEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in(e) {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture, image } = zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left;\n offsetY = gesture.$slideEl.offset().top;\n diffX = (offsetX + (slideWidth / 2)) - touchX;\n diffY = (offsetY + (slideHeight / 2)) - touchY;\n\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n\n translateMinX = Math.min(((slideWidth / 2) - (scaledWidth / 2)), 0);\n translateMinY = Math.min(((slideHeight / 2) - (scaledHeight / 2)), 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);\n gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n out() {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture } = zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\n gesture.$slideEl = undefined;\n },\n // Attach/Detach Events\n enable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n const activeListenerWithCapture = Support.passiveListener ? { passive: false, capture: true } : true;\n\n const slideSelector = `.${swiper.params.slideClass}`;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.on('gesturestart', slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on('gesturechange', slideSelector, zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on('gestureend', slideSelector, zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n }\n\n // Move image\n swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove, activeListenerWithCapture);\n },\n disable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n\n swiper.zoom.enabled = false;\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n const activeListenerWithCapture = Support.passiveListener ? { passive: false, capture: true } : true;\n\n const slideSelector = `.${swiper.params.slideClass}`;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.off('gesturestart', slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off('gesturechange', slideSelector, zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off('gestureend', slideSelector, zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n }\n\n // Move image\n swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove, activeListenerWithCapture);\n },\n};\n\nvar zoom = {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed',\n },\n },\n create() {\n const swiper = this;\n const zoom = {\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3,\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {},\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined,\n },\n };\n\n ('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach((methodName) => {\n zoom[methodName] = Zoom[methodName].bind(swiper);\n });\n Utils.extend(swiper, {\n zoom,\n });\n\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n const slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.zoom.disable();\n },\n touchStart(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap(e) {\n const swiper = this;\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n swiper.zoom.onTransitionEnd();\n }\n },\n },\n};\n\nconst Lazy = {\n loadInSlide(index, loadInDuplicate = true) {\n const swiper = this;\n const params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n const $slideEl = isVirtual\n ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`)\n : swiper.slides.eq(index);\n\n let $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images = $images.add($slideEl[0]);\n }\n if ($images.length === 0) return;\n\n $images.each((imageIndex, imageEl) => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n const $pictureEl = $imageEl.parent('picture');\n\n swiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, () => {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) return;\n if (background) {\n $imageEl.css('background-image', `url(\"${background}\")`);\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n if ($pictureEl.length) {\n $pictureEl.children('source').each((sourceIndex, sourceEl) => {\n const $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load() {\n const swiper = this;\n const {\n $wrapperEl, params: swiperParams, slides, activeIndex,\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n\n let slidesPerView = swiperParams.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`).length) {\n return true;\n }\n } else if (slides[index]) return true;\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((elIndex, slideEl) => {\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {\n const amount = params.loadPrevNextAmount;\n const spv = slidesPerView;\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\n // Next Slides\n for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n // Prev Slides\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n },\n};\n\nvar lazy = {\n name: 'lazy',\n params: {\n lazy: {\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n lazy: {\n initialImageLoaded: false,\n load: Lazy.load.bind(swiper),\n loadInSlide: Lazy.loadInSlide.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n swiper.lazy.load();\n }\n },\n scroll() {\n const swiper = this;\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n resize() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n scrollbarDragMove() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.cssMode) {\n swiper.lazy.load();\n }\n },\n },\n};\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\nconst Controller = {\n LinearSpline: function LinearSpline(x, y) {\n const binarySearch = (function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }());\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1];\n };\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction(c) {\n const swiper = this;\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop\n ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid)\n : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate(setTranslate, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = ((translate - swiper.minTranslate()) * multiplier) + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition(duration, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n Utils.nextTick(() => {\n c.updateAutoHeight();\n });\n }\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n },\n};\nvar controller = {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide', // or 'container'\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n controller: {\n control: swiper.params.controller.control,\n getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper),\n setTranslate: Controller.setTranslate.bind(swiper),\n setTransition: Controller.setTransition.bind(swiper),\n },\n });\n },\n on: {\n update() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate(translate, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n },\n },\n};\n\nconst a11y = {\n makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterKey(e) {\n const swiper = this;\n const params = swiper.params.a11y;\n if (e.keyCode !== 13) return;\n const $targetEl = $(e.target);\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && $targetEl.is(`.${swiper.params.pagination.bulletClass}`)) {\n $targetEl[0].click();\n }\n },\n notify(message) {\n const swiper = this;\n const notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation() {\n const swiper = this;\n\n if (swiper.params.loop || !swiper.navigation) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination() {\n const swiper = this;\n const params = swiper.params.a11y;\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each((bulletIndex, bulletEl) => {\n const $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n });\n }\n },\n init() {\n const swiper = this;\n\n swiper.$el.append(swiper.a11y.liveRegion);\n\n // Navigation\n const params = swiper.params.a11y;\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n swiper.a11y.makeElFocusable($nextEl);\n swiper.a11y.addElRole($nextEl, 'button');\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n swiper.a11y.makeElFocusable($prevEl);\n swiper.a11y.addElRole($prevEl, 'button');\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n }\n },\n};\nvar a11y$1 = {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n a11y: {\n liveRegion: $(``),\n },\n });\n Object.keys(a11y).forEach((methodName) => {\n swiper.a11y[methodName] = a11y[methodName].bind(swiper);\n });\n },\n on: {\n init() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n },\n },\n};\n\nconst History = {\n init() {\n const swiper = this;\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n const history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues();\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState() {\n const swiper = this;\n swiper.history.paths = History.getPathValues();\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues() {\n const pathArray = window.location.pathname.slice(1).split('/').filter((part) => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return { key, value };\n },\n setHistory(key, index) {\n const swiper = this;\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n const slide = swiper.slides.eq(index);\n let value = History.slugify(slide.attr('data-history'));\n if (!window.location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({ value }, null, value);\n } else {\n window.history.pushState({ value }, null, value);\n }\n },\n slugify(text) {\n return text.toString()\n .replace(/\\s+/g, '-')\n .replace(/[^\\w-]+/g, '')\n .replace(/--+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '');\n },\n scrollToSlide(speed, value, runCallbacks) {\n const swiper = this;\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHistory = History.slugify(slide.attr('data-history'));\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n },\n};\n\nvar history = {\n name: 'history',\n params: {\n history: {\n enabled: false,\n replaceState: false,\n key: 'slides',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n history: {\n init: History.init.bind(swiper),\n setHistory: History.setHistory.bind(swiper),\n setHistoryPopState: History.setHistoryPopState.bind(swiper),\n scrollToSlide: History.scrollToSlide.bind(swiper),\n destroy: History.destroy.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.history.initialized && swiper.params.cssMode) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n },\n};\n\nconst HashNavigation = {\n onHashCange() {\n const swiper = this;\n swiper.emit('hashChange');\n const newHash = document$1.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`).index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n },\n setHash() {\n const swiper = this;\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, (`#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || ''));\n swiper.emit('hashSet');\n } else {\n const slide = swiper.slides.eq(swiper.activeIndex);\n const hash = slide.attr('data-hash') || slide.attr('data-history');\n document$1.location.hash = hash || '';\n swiper.emit('hashSet');\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)) return;\n swiper.hashNavigation.initialized = true;\n const hash = document$1.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n};\nvar hashNavigation = {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n hashNavigation: {\n initialized: false,\n init: HashNavigation.init.bind(swiper),\n destroy: HashNavigation.destroy.bind(swiper),\n setHash: HashNavigation.setHash.bind(swiper),\n onHashCange: HashNavigation.onHashCange.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.hashNavigation.initialized && swiper.params.cssMode) {\n swiper.hashNavigation.setHash();\n }\n },\n },\n};\n\n/* eslint no-underscore-dangle: \"off\" */\n\nconst Autoplay = {\n run() {\n const swiper = this;\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = Utils.nextTick(() => {\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();\n }, delay);\n },\n start() {\n const swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop() {\n const swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause(speed) {\n const swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n};\n\nvar autoplay = {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n autoplay: {\n running: false,\n paused: false,\n run: Autoplay.run.bind(swiper),\n start: Autoplay.start.bind(swiper),\n stop: Autoplay.stop.bind(swiper),\n pause: Autoplay.pause.bind(swiper),\n onVisibilityChange() {\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n },\n beforeTransitionStart(speed, internal) {\n const swiper = this;\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove() {\n const swiper = this;\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd() {\n const swiper = this;\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n },\n },\n};\n\nconst Fade = {\n setTranslate() {\n const swiper = this;\n const { slides } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset = $slideEl[0].swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade\n ? Math.max(1 - Math.abs($slideEl[0].progress), 0)\n : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl\n .css({\n opacity: slideOpacity,\n })\n .transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, $wrapperEl } = swiper;\n slides.transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n slides.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nvar effectFade = {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n fadeEffect: {\n setTranslate: Fade.setTranslate.bind(swiper),\n setTransition: Fade.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}fade`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n },\n },\n};\n\nconst Cube = {\n setTranslate() {\n const swiper = this;\n const {\n $el, $wrapperEl, slides, width: swiperWidth, height: swiperHeight, rtlTranslate: rtl, size: swiperSize,\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let $cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
      ');\n $wrapperEl.append($cubeShadowEl);\n }\n $cubeShadowEl.css({ height: `${swiperWidth}px` });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
      ');\n $el.append($cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + (round * 4 * swiperSize);\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = (3 * swiperSize) + (swiperSize * 4 * round);\n }\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = (slideIndex * 90) + (progress * 90);\n if (rtl) wrapperRotate = (-slideIndex * 90) - (progress * 90);\n }\n $slideEl.transform(transform);\n if (params.slideShadows) {\n // Set shadows\n let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(`
      `);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(`
      `);\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n $wrapperEl.css({\n '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-moz-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-ms-transform-origin': `50% 50% -${swiperSize / 2}px`,\n 'transform-origin': `50% 50% -${swiperSize / 2}px`,\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(`translate3d(0px, ${(swiperWidth / 2) + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - (Math.floor(Math.abs(wrapperRotate) / 90) * 90);\n const multiplier = 1.5 - (\n (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2)\n + (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2)\n );\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${(swiperHeight / 2) + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);\n }\n }\n const zFactor = (Browser.isSafari || Browser.isWebView) ? (-swiperSize / 2) : 0;\n $wrapperEl\n .transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\n },\n setTransition(duration) {\n const swiper = this;\n const { $el, slides } = swiper;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n },\n};\n\nvar effectCube = {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n cubeEffect: {\n setTranslate: Cube.setTranslate.bind(swiper),\n setTransition: Cube.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}cube`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n },\n },\n};\n\nconst Flip = {\n setTranslate() {\n const swiper = this;\n const { slides, rtlTranslate: rtl } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n const offset = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = -offset;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(`
      `);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(`
      `);\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n $slideEl\n .transform(`translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, activeIndex, $wrapperEl } = swiper;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n // eslint-disable-next-line\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nvar effectFlip = {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n flipEffect: {\n setTranslate: Flip.setTranslate.bind(swiper),\n setTransition: Flip.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}flip`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n },\n },\n};\n\nconst Coverflow = {\n setTranslate() {\n const swiper = this;\n const {\n width: swiperWidth, height: swiperHeight, slides, $wrapperEl, slidesSizesGrid,\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + (swiperWidth / 2) : -transform + (swiperHeight / 2);\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideSize = slidesSizesGrid[i];\n const slideOffset = $slideEl[0].swiperSlideOffset;\n const offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier;\n\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n\n let stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = ((parseFloat(params.stretch) / 100) * slideSize);\n }\n let translateY = isHorizontal ? 0 : stretch * (offsetMultiplier);\n let translateX = isHorizontal ? stretch * (offsetMultiplier) : 0;\n\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $(`
      `);\n $slideEl.append($shadowBeforeEl);\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(`
      `);\n $slideEl.append($shadowAfterEl);\n }\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0;\n }\n }\n\n // Set correct perspective for IE10\n if (Support.pointerEvents || Support.prefixedPointerEvents) {\n const ws = $wrapperEl[0].style;\n ws.perspectiveOrigin = `${center}px 50%`;\n }\n },\n setTransition(duration) {\n const swiper = this;\n swiper.slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n },\n};\n\nvar effectCoverflow = {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n coverflowEffect: {\n setTranslate: Coverflow.setTranslate.bind(swiper),\n setTransition: Coverflow.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n\n swiper.classNames.push(`${swiper.params.containerModifierClass}coverflow`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n },\n },\n};\n\nconst Thumbs = {\n init() {\n const swiper = this;\n const { thumbs: thumbsParams } = swiper.params;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Utils.extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n Utils.extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n } else if (Utils.isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(Utils.extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n }));\n swiper.thumbs.swiperCreated = true;\n }\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n },\n onThumbClick() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;\n else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;\n else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;\n else slideToIndex = prevIndex;\n }\n swiper.slideTo(slideToIndex);\n },\n update(initial) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto'\n ? thumbsSwiper.slidesPerViewDynamic()\n : thumbsSwiper.params.slidesPerView;\n\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix();\n // eslint-disable-next-line\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n }\n // Find actual thumbs index to slide to\n const prevThumbsIndex = thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0)\n .index();\n const nextThumbsIndex = thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0)\n .index();\n if (typeof prevThumbsIndex === 'undefined') newThumbsIndex = nextThumbsIndex;\n else if (typeof nextThumbsIndex === 'undefined') newThumbsIndex = prevThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) newThumbsIndex = currentThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) newThumbsIndex = nextThumbsIndex;\n else newThumbsIndex = prevThumbsIndex;\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n if (thumbsSwiper.params.loop || (thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled)) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n },\n};\nvar thumbs = {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n thumbs: {\n swiper: null,\n init: Thumbs.init.bind(swiper),\n update: Thumbs.update.bind(swiper),\n onThumbClick: Thumbs.onThumbClick.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n const { thumbs } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition(duration) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n },\n },\n};\n\n// Swiper Class\n\nconst components = [\n Device$1,\n Support$1,\n Browser$1,\n Resize,\n Observer$1,\n \n];\n\nif (typeof Swiper.use === 'undefined') {\n Swiper.use = Swiper.Class.use;\n Swiper.installModule = Swiper.Class.installModule;\n}\n\nSwiper.use(components);\n\nexport { a11y$1 as A11y, autoplay as Autoplay, controller as Controller, effectCoverflow as EffectCoverflow, effectCube as EffectCube, effectFade as EffectFade, effectFlip as EffectFlip, hashNavigation as HashNavigation, history as History, keyboard as Keyboard, lazy as Lazy, mousewheel as Mousewheel, navigation as Navigation, pagination as Pagination, parallax as Parallax, scrollbar as Scrollbar, Swiper, thumbs as Thumbs, virtual as Virtual, zoom as Zoom };\n//# sourceMappingURL=swiper.esm.js.map\n","import Swiper from 'swiper';\r\nimport { Autoplay } from 'swiper/js/swiper.esm';\r\n\r\njQuery(document).ready(function($){\r\n\r\n\tconst stopVideo = () => {\r\n\t\tlet iframe = $('.sliderMedia__item iframe'),\r\n\t\tvideo = $('.sliderMedia__item video');\r\n \r\n\t\t$.each(video, function(){\r\n\t\t\t$(this).get(0).pause();\r\n\t\t});\r\n \r\n\t\t$.each(iframe, function () {\r\n\t\t\t$(this).attr('src', $(this).attr('src'));\r\n\t\t});\r\n\t};\r\n\r\n\t//Media Slider\r\n\tlet lenghtMS = $('.sliderMedia .swiper-slide').length;\r\n\t\r\n\tif(lenghtMS > 0){\r\n\t\t\r\n\t\tlet video_ids = [];\r\n \r\n\t\t$('.ctb-video-box').each(function(){\r\n\t\t\tlet id = $(this).data('video-id');\r\n\t\t\tvideo_ids.push(id);\r\n\t\t});\r\n\r\n\t\t$('.sliderMedia').each(function(){\r\n\t\t\t\r\n\t\t\t$(this).find('.sliderMedia__wrap').removeClass('lessOnePosts');\r\n \r\n\t\t\tlet sliderMedia = new Swiper($(this).find('.sliderMedia__wrap'), {\r\n\t\t\t\teffect: 'coverflow',\r\n\t\t\t\tcenteredSlides: true,\r\n\t\t\t\tslidesPerView: 'auto',\r\n\t\t\t\tallowTouchMove: false,\r\n\t\t\t\tloop: false,\r\n\t\t\t\tspeed: 600,\r\n\t\t\t\tcoverflowEffect: {\r\n\t\t\t\t\trotate: 0,\r\n\t\t\t\t\tstretch: 690,\r\n\t\t\t\t\tdepth: 120,\r\n\t\t\t\t\tmodifier: 1,\r\n\t\t\t\t\tslideShadows: false,\r\n\t\t\t\t\tscale: 1,\r\n\t\t\t\t},\r\n\t\t\t\tnavigation: {\r\n\t\t\t\t\tnextEl: $(this).find('.swiper-button-next'),\r\n\t\t\t\t\tprevEl: $(this).find('.swiper-button-prev'),\r\n\t\t\t\t},\r\n\t\t\t\tpagination: {\r\n\t\t\t\t\tel: $(this).find('.swiper-pag-sm'),\r\n\t\t\t\t\tclickable: true,\r\n\t\t\t\t\tdraggable: false,\r\n\t\t\t\t\ttype: 'bullets',\r\n\t\t\t\t},\r\n\t\t\t\tbreakpoints: {\r\n\t\t\t\t\t320: {\r\n\t\t\t\t\t\tallowTouchMove: true,\r\n\t\t\t\t\t\tcoverflowEffect: {\r\n\t\t\t\t\t\t\tstretch: 290,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\t400: {\r\n\t\t\t\t\t\tallowTouchMove: true,\r\n\t\t\t\t\t\tcoverflowEffect: {\r\n\t\t\t\t\t\t\tstretch: 280,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\t767: {\r\n\t\t\t\t\t\tallowTouchMove: true,\r\n\t\t\t\t\t\tcoverflowEffect: {\r\n\t\t\t\t\t\t\tstretch: 465,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\t991: {\r\n\t\t\t\t\t\tallowTouchMove: false,\r\n\t\t\t\t\t\tcoverflowEffect: {\r\n\t\t\t\t\t\t\tstretch: 490,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\t1199: {\r\n\t\t\t\t\t\tcoverflowEffect: {\r\n\t\t\t\t\t\t\tstretch: 690,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t});\r\n \r\n\t\t\t//slider on change slide\r\n\t\t\tsliderMedia.on('slideChange', function(){\r\n\r\n\t\t\t\t$('.sliderMedia__item').removeClass('play-iframe');\r\n\t\t\t\t\r\n\t\t\t\t$('.ctb-video-box[data-frame-type=\"youtube\"] iframe').each(function(){\r\n\t\t\t\t\t\r\n\t\t\t\t\tlet src_attr = $(this).attr('src');\r\n\t\t\t\t\tlet launchIframe = src_attr.replace('autoplay=1', 'autoplay=0');\r\n\t\t\t\t\t$(this).attr('src', launchIframe);\r\n\t\t\t\t});\r\n \r\n\t\t\t\t$('.ctb-video-box[data-frame-type=\"other\"] iframe').each(function(){\r\n\t\t\t\t\t\r\n\t\t\t\t\tlet src_attr = $(this).attr('src');\r\n\t\t\t\t\tlet launchIframe = src_attr.replace('autoplay=1', 'autoplay=0');\r\n\t\t\t\t\t$(this).attr('src', launchIframe);\r\n\t\t\t\t});\r\n \r\n\t\t\t\tstopVideo();\r\n \r\n\t\t\t\twindow._wq = window._wq || [];\r\n\t\t\t\tvideo_ids.forEach(video_id => {\r\n\t\t\t\t\t_wq.push({\r\n\t\t\t\t\t\tid: video_id,\r\n\t\t\t\t\t\tonReady: function(video){\r\n\t\t\t\t\t\t\tvideo.pause();\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n if($('.JS-shows-slider').length !== 0){\r\n $('.JS-shows-slider').each(function(){\r\n\r\n new Swiper($(this).find('.swiper-container'),{\r\n slidesPerView: \"auto\",\r\n spaceBetween: 100,\r\n loop: true,\r\n centeredSlides: true,\r\n navigation: {\r\n nextEl: $(this).find('.swiper-button-next'),\r\n prevEl: $(this).find('.swiper-button-prev')\r\n },\r\n });\r\n });\r\n }\r\n\r\n if($('.JS-shows-head-slider').length !== 0){\r\n $('.JS-shows-head-slider').each(function(){\r\n\r\n $(this).find('.swiper-button-next').hover(function(){\r\n $('.JS-shows-head-slider').each(function(){\r\n $(this).find('.swiper-slide-next').css(\"transition\", \"transform 1s\")\r\n .css(\"transform\", \"translate(-20%, 0)\")\r\n .css(\"z-index\", \"100\");\r\n });\r\n }, function(){\r\n $('.JS-shows-head-slider').each(function(){\r\n $('.swiper-slide-next').css(\"transform\", \"translate(0,0)\");\r\n });\r\n });\r\n\r\n $(this).find('.swiper-button-next').on('click', function(){\r\n $('.JS-shows-head-slider').each(function(){\r\n $('.swiper-slide-next').css(\"transform\", \"translate(0,0)\")\r\n .css(\"transition\", \"transform 0s\");\r\n });\r\n });\r\n\r\n $(this).find('.swiper-button-prev').hover(function(){\r\n $('.JS-shows-head-slider').each(function(){\r\n $('.swiper-slide-prev').css(\"transition\", \"transform 1s\")\r\n .css(\"transform\", \"translate(20%, 0)\")\r\n .css(\"z-index\", \"100\");\r\n });\r\n }, function(){\r\n $('.JS-shows-head-slider').each(function(){\r\n $('.swiper-slide-prev').css(\"transform\", \"translate(0,0)\");\r\n });\r\n });\r\n\r\n $(this).find('.swiper-button-prev').on('click', function(){\r\n $('.JS-shows-head-slider').each(function(){\r\n $('.swiper-slide-prev').css(\"transform\", \"translate(0,0)\")\r\n .css(\"transition\", \"transform 0s\");\r\n });\r\n });\r\n\r\n if($(this).find('.s-shows-head__card').length > 1){\r\n $(this).find('.swiper-button-next').css(\"display\", \"flex\");\r\n $(this).find('.swiper-button-prev').css(\"display\", \"flex\");\r\n\r\n new Swiper($(this).find('.swiper-container'), {\r\n slidesPerView: 1,\r\n spaceBetween: 0,\r\n loop: true,\r\n navigation: {\r\n nextEl: $(this).find('.swiper-button-next'),\r\n prevEl: $(this).find('.swiper-button-prev')\r\n },\r\n });\r\n }\r\n });\r\n }\r\n\r\n if($('.JS-cards-slider').length !== 0){\r\n $('.JS-cards-slider').each(function(){\r\n\r\n new Swiper($(this).find('.swiper-container'), {\r\n slidesPerView: 1,\r\n spaceBetween: 0,\r\n loop: true,\r\n touchRatio: 0,\r\n breakpoints: {\r\n 768: {\r\n slidesPerView: 2,\r\n },\r\n 992: {\r\n slidesPerView: 3,\r\n },\r\n },\r\n on: {\r\n init: () => {\r\n $(this).addClass('s-online-learning__cards-slider--gradient-right');\r\n },\r\n slideChange: () => {\r\n if ($(this).find('.swiper-button-next').hasClass('swiper-button-disabled')) {\r\n $(this).removeClass('s-online-learning__cards-slider--gradient-right');\r\n } else {\r\n $(this).addClass('s-online-learning__cards-slider--gradient-right');\r\n };\r\n\r\n if ($(this).find('.swiper-button-prev').hasClass('swiper-button-disabled')) {\r\n $(this).removeClass('s-online-learning__cards-slider--gradient-left');\r\n } else {\r\n $(this).addClass('s-online-learning__cards-slider--gradient-left');\r\n };\r\n }\r\n },\r\n navigation: {\r\n nextEl: $(this).find('.swiper-button-next'),\r\n prevEl: $(this).find('.swiper-button-prev')\r\n },\r\n });\r\n });\r\n }\r\n\r\n\tif($('.JS-contributor-images-slider').length !== 0){\r\n\t\t$('.JS-contributor-images-slider').each(function(){\r\n\t\t\t\r\n\t\t\tnew Swiper($(this).find('.swiper-container'), {\r\n\t\t\t\t\tpagination: {\r\n\t\t\t\t\t\tel: $(this).find('.swiper-pag-si'),\r\n\t\t\t\t\t\tclickable: true,\r\n\t\t\t\t\t\tdraggable: false,\r\n\t\t\t\t\t\ttype: 'bullets',\r\n\t\t\t\t\t},\r\n\t\t\t\t\tnavigation: {\r\n\t\t\t\t\t\tnextEl: $(this).find('.swiper-button-next'),\r\n\t\t\t\t\t\tprevEl: $(this).find('.swiper-button-prev'),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbreakpoints: {\r\n\t\t\t\t\t\t320: {\r\n\t\t\t\t\t\t\tslidesPerView: 1,\r\n\t\t\t\t\t\t\tspaceBetween: 15,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t767: {\r\n\t\t\t\t\t\t\tslidesPerView: 2,\r\n\t\t\t\t\t\t\tspaceBetween: 30,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t1024: {\r\n\t\t\t\t\t\t\tslidesPerView: 3,\r\n\t\t\t\t\t\t\tspaceBetween: 30,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n if($('.JS-show-cards-slider').length !== 0){\r\n $('.JS-show-cards-slider').each(function(){\r\n \r\n\t\t\tif($(this).closest('.s-show-page-cards').hasClass('no_video_slider')){\r\n \r\n\t\t\t\tnew Swiper($(this).find('.swiper-container'), {\r\n spaceBetween: 30,\r\n\t\t\t\t\tloop: false,\r\n breakpoints: {\r\n 500: {\r\n slidesPerView: 1,\r\n allowTouchMove: true // Enable touch move for 500px breakpoint\r\n },\r\n 768: {\r\n slidesPerView: 2,\r\n allowTouchMove: true // Enable touch move for 768px breakpoint\r\n },\r\n 992: {\r\n slidesPerView: 3,\r\n allowTouchMove: false // Disable touch move for 992px breakpoint and below\r\n },\r\n 1250: {\r\n slidesPerView: 4,\r\n allowTouchMove: false // Disable touch move for 1250px breakpoint and below\r\n },\r\n },\r\n on: {\r\n init: () => {\r\n $(this).addClass('s-online-learning__cards-slider--gradient-right');\r\n },\r\n slideChange: () => {\r\n if ($(this).find('.swiper-button-next').hasClass('swiper-button-disabled')) {\r\n $(this).removeClass('s-online-learning__cards-slider--gradient-right');\r\n } else {\r\n $(this).addClass('s-online-learning__cards-slider--gradient-right');\r\n };\r\n\r\n if ($(this).find('.swiper-button-prev').hasClass('swiper-button-disabled')) {\r\n $(this).removeClass('s-online-learning__cards-slider--gradient-left');\r\n } else {\r\n $(this).addClass('s-online-learning__cards-slider--gradient-left');\r\n };\r\n }\r\n },\r\n navigation: {\r\n nextEl: $(this).find('.swiper-button-next'),\r\n prevEl: $(this).find('.swiper-button-prev')\r\n },\r\n });\r\n\t\t\t\t\r\n } else {\r\n \r\n\t\t\t\tnew Swiper($(this).find('.swiper-container'), {\r\n slidesPerView: 1,\r\n spaceBetween: 0,\r\n loop: false,\r\n breakpoints: {\r\n 768: {\r\n\t\t\t\t\t\t\tslidesPerView: 2,\r\n },\r\n 992: {\r\n\t\t\t\t\t\t\tslidesPerView: 3,\r\n },\r\n 1250: {\r\n slidesPerView: 3.5,\r\n },\r\n },\r\n on: {\r\n init: () => {\r\n $(this).addClass('s-online-learning__cards-slider--gradient-right');\r\n },\r\n slideChange: () => {\r\n if ($(this).find('.swiper-button-next').hasClass('swiper-button-disabled')) {\r\n $(this).removeClass('s-online-learning__cards-slider--gradient-right');\r\n } else {\r\n $(this).addClass('s-online-learning__cards-slider--gradient-right');\r\n };\r\n\r\n if ($(this).find('.swiper-button-prev').hasClass('swiper-button-disabled')) {\r\n $(this).removeClass('s-online-learning__cards-slider--gradient-left');\r\n } else {\r\n $(this).addClass('s-online-learning__cards-slider--gradient-left');\r\n };\r\n }\r\n },\r\n navigation: {\r\n nextEl: $(this).find('.swiper-button-next'),\r\n prevEl: $(this).find('.swiper-button-prev')\r\n },\r\n });\r\n }\r\n });\r\n }\r\n\r\n if($('.JS-home-events').length !== 0){\r\n $('.JS-home-events').each(function(){\r\n\r\n if ($(this).parents('.s-home-black-friday').length){\r\n \r\n\t\t\t\tnew Swiper($(this).find('.swiper-container'), {\r\n slidesPerView: 1,\r\n spaceBetween: 15,\r\n loop: true,\r\n navigation: {\r\n nextEl: $(this).find('.swiper-button-next'),\r\n prevEl: $(this).find('.swiper-button-prev')\r\n },\r\n });\r\n\t\t\t\t\r\n } else {\r\n \r\n\t\t\t\tnew Swiper($(this).find('.swiper-container'), {\r\n slidesPerView: 1,\r\n spaceBetween: 15,\r\n loop: true,\r\n breakpoints: {\r\n 960: {\r\n slidesPerView: 2,\r\n },\r\n },\r\n navigation: {\r\n nextEl: $(this).find('.swiper-button-next'),\r\n prevEl: $(this).find('.swiper-button-prev')\r\n },\r\n });\r\n }\r\n });\r\n }\r\n\r\n\tfunction sliderArrowTopPosition(){\r\n\t\t\r\n $('.JS-home-events, .JS-cards-slider, .JS-show-cards-slider, .JS-contributor-images-slider, .JS-contributor-media-slider').each(function(i,el){\r\n setTimeout(function(){\r\n let height = parseInt($(el).find('.swiper-slide-active .swiper-slide-height-image').outerHeight());\r\n let paddingTop = parseInt($(el).find('.swiper-slide-active .swiper-slide-padding-top').css('padding-top'), 10);\r\n let button = parseInt($(el).find('.swiper-button-next').height());\r\n let positionTop = (height+paddingTop)/2 - button/2;\r\n \r\n $(el).find('.swiper-button-prev, .swiper-button-next').css('margin-top', 'auto');\r\n $(el).find('.swiper-button-prev, .swiper-button-next').css('top', positionTop + 'px');\r\n }, 500);\r\n });\r\n\t}\r\n\r\n\t$(window).on('resize', function(){\r\n\t\tsliderArrowTopPosition();\r\n\t});\r\n\r\n\t$(window).trigger('resize');\r\n\r\n});","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Private TransitionEnd Helpers\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n\n return undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * Public Util API\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (_) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value) ?\n 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.2): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * Constants\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.6.2'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\n/**\n * Class definition\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(SELECTOR_DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n event => this.hide(event)\n )\n\n $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {\n $(this._element).one(EVENT_MOUSEUP_DISMISS, event => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(EVENT_FOCUSIN)\n\n $(this._element).removeClass(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, event => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n $(document).off(EVENT_FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.isDefaultPrevented()) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n $(this._element).off(Util.TRANSITION_END)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n .emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(EVENT_RESIZE, event => this.handleUpdate(event))\n } else {\n $(window).off(EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * Data API implementation\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY) ?\n 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(EVENT_SHOW, showEvent => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(EVENT_HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * jQuery\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n","/*!\n * jQuery JavaScript Library v3.7.1\n * https://jquery.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-08-28T13:37Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar version = \"3.7.1\",\n\n\trhtmlSuffix = /HTML$/i,\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\n\t// Retrieve the text value of an array of DOM nodes\n\ttext: function( elem ) {\n\t\tvar node,\n\t\t\tret = \"\",\n\t\t\ti = 0,\n\t\t\tnodeType = elem.nodeType;\n\n\t\tif ( !nodeType ) {\n\n\t\t\t// If no nodeType, this is expected to be an array\n\t\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t\t// Do not traverse comment nodes\n\t\t\t\tret += jQuery.text( node );\n\t\t\t}\n\t\t}\n\t\tif ( nodeType === 1 || nodeType === 11 ) {\n\t\t\treturn elem.textContent;\n\t\t}\n\t\tif ( nodeType === 9 ) {\n\t\t\treturn elem.documentElement.textContent;\n\t\t}\n\t\tif ( nodeType === 3 || nodeType === 4 ) {\n\t\t\treturn elem.nodeValue;\n\t\t}\n\n\t\t// Do not include comment or processing instruction nodes\n\n\t\treturn ret;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tisXMLDoc: function( elem ) {\n\t\tvar namespace = elem && elem.namespaceURI,\n\t\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t\t// Assume HTML when documentElement doesn't yet exist, such as inside\n\t\t// document fragments.\n\t\treturn !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar pop = arr.pop;\n\n\nvar sort = arr.sort;\n\n\nvar splice = arr.splice;\n\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n// Note: an element does not contain itself\njQuery.contains = function( a, b ) {\n\tvar bup = b && b.parentNode;\n\n\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE doesn't have `contains` on SVG.\n\t\ta.contains ?\n\t\t\ta.contains( bup ) :\n\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t) );\n};\n\n\n\n\n// CSS string/identifier serialization\n// https://drafts.csswg.org/cssom/#common-serializing-idioms\nvar rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n\nfunction fcssescape( ch, asCodePoint ) {\n\tif ( asCodePoint ) {\n\n\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\tif ( ch === \"\\0\" ) {\n\t\t\treturn \"\\uFFFD\";\n\t\t}\n\n\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t}\n\n\t// Other potentially-special ASCII characters get backslash-escaped\n\treturn \"\\\\\" + ch;\n}\n\njQuery.escapeSelector = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\n\n\n\nvar preferredDoc = document,\n\tpushNative = push;\n\n( function() {\n\nvar i,\n\tExpr,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\tpush = pushNative,\n\n\t// Local document vars\n\tdocument,\n\tdocumentElement,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\tmatches,\n\n\t// Instance-specific data\n\texpando = jQuery.expando,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|\" +\n\t\t\"loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" +\n\t\twhitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\tID: new RegExp( \"^#(\" + identifier + \")\" ),\n\t\tCLASS: new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\tTAG: new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\tATTR: new RegExp( \"^\" + attributes ),\n\t\tPSEUDO: new RegExp( \"^\" + pseudos ),\n\t\tCHILD: new RegExp(\n\t\t\t\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\tbool: new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\tneedsContext: new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\tif ( nonHex ) {\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\treturn nonHex;\n\t\t}\n\n\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t// Support: IE <=11+\n\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t// surrogate pair\n\t\treturn high < 0 ?\n\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes; see `setDocument`.\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE/Edge.\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && nodeName( elem, \"fieldset\" );\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android <=4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = {\n\t\tapply: function( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t},\n\t\tcall: function( target ) {\n\t\t\tpushNative.apply( target, slice.call( arguments, 1 ) );\n\t\t}\n\t};\n}\n\nfunction find( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tfind.contains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( !nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when\n\t\t\t\t\t// strict-comparing two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( newContext != context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = jQuery.escapeSelector( nid );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrimCSS, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties\n\t\t// (see https://github.com/jquery/sizzle/issues/157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by jQuery selector module\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn nodeName( elem, \"input\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn ( nodeName( elem, \"input\" ) || nodeName( elem, \"button\" ) ) &&\n\t\t\telem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11+\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a jQuery selector context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [node] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nfunction setDocument( node ) {\n\tvar subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocumentElement = document.documentElement;\n\tdocumentIsHTML = !jQuery.isXMLDoc( document );\n\n\t// Support: iOS 7 only, IE 9 - 11+\n\t// Older browsers didn't support unprefixed `matches`.\n\tmatches = documentElement.matches ||\n\t\tdocumentElement.webkitMatchesSelector ||\n\t\tdocumentElement.msMatchesSelector;\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors\n\t// (see trac-13936).\n\t// Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`,\n\t// all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well.\n\tif ( documentElement.msMatchesSelector &&\n\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tpreferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t\tsubWindow.addEventListener( \"unload\", unloadHandler );\n\t}\n\n\t// Support: IE <10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocumentElement.appendChild( el ).id = jQuery.expando;\n\t\treturn !document.getElementsByName ||\n\t\t\t!document.getElementsByName( jQuery.expando ).length;\n\t} );\n\n\t// Support: IE 9 only\n\t// Check to see if it's possible to do matchesSelector\n\t// on a disconnected node.\n\tsupport.disconnectedMatch = assert( function( el ) {\n\t\treturn matches.call( el, \"*\" );\n\t} );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// IE/Edge don't support the :scope pseudo-class.\n\tsupport.scope = assert( function() {\n\t\treturn document.querySelectorAll( \":scope\" );\n\t} );\n\n\t// Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only\n\t// Make sure the `:has()` argument is parsed unforgivingly.\n\t// We include `*` in the test to detect buggy implementations that are\n\t// _selectively_ forgiving (specifically when the list includes at least\n\t// one valid selector).\n\t// Note that we treat complete lack of support for `:has()` as if it were\n\t// spec-compliant support, which is fine because use of `:has()` in such\n\t// environments will fail in the qSA path and fall back to jQuery traversal\n\t// anyway.\n\tsupport.cssHas = assert( function() {\n\t\ttry {\n\t\t\tdocument.querySelector( \":has(*,:jqfake)\" );\n\t\t\treturn false;\n\t\t} catch ( e ) {\n\t\t\treturn true;\n\t\t}\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find.TAG = function( tag, context ) {\n\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t// DocumentFragment nodes don't have gEBTN\n\t\t} else {\n\t\t\treturn context.querySelectorAll( tag );\n\t\t}\n\t};\n\n\t// Class\n\tExpr.find.CLASS = function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\trbuggyQSA = [];\n\n\t// Build QSA regex\n\t// Regex strategy adopted from Diego Perini\n\tassert( function( el ) {\n\n\t\tvar input;\n\n\t\tdocumentElement.appendChild( el ).innerHTML =\n\t\t\t\"\" +\n\t\t\t\"\";\n\n\t\t// Support: iOS <=7 - 8 only\n\t\t// Boolean attributes and \"value\" are not treated correctly in some XML documents\n\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t}\n\n\t\t// Support: iOS <=7 - 8 only\n\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\trbuggyQSA.push( \"~=\" );\n\t\t}\n\n\t\t// Support: iOS 8 only\n\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t}\n\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\trbuggyQSA.push( \":checked\" );\n\t\t}\n\n\t\t// Support: Windows 8 Native Apps\n\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tdocumentElement.appendChild( el ).disabled = true;\n\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t}\n\n\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t// Adding a temporary attribute to the document before the selection works\n\t\t// around the issue.\n\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"name\", \"\" );\n\t\tel.appendChild( input );\n\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t}\n\t} );\n\n\tif ( !support.cssHas ) {\n\n\t\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t\t// Our regular `try-catch` mechanism fails to detect natively-unsupported\n\t\t// pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n\t\t// in browsers that parse the `:has()` argument as a forgiving selector list.\n\t\t// https://drafts.csswg.org/selectors/#relational now requires the argument\n\t\t// to be parsed unforgivingly, but browsers have not yet fully adjusted.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = function( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a === document || a.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b === document || b.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t};\n\n\treturn document;\n}\n\nfind.matches = function( expr, elements ) {\n\treturn find( expr, null, null, elements );\n};\n\nfind.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn find( expr, document, null, [ elem ] ).length > 0;\n};\n\nfind.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn jQuery.contains( context, elem );\n};\n\n\nfind.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (see trac-13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\tif ( val !== undefined ) {\n\t\treturn val;\n\t}\n\n\treturn elem.getAttribute( name );\n};\n\nfind.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\njQuery.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\t//\n\t// Support: Android <=4.0+\n\t// Testing for detecting duplicates is unpredictable so instead assume we can't\n\t// depend on duplicate detection in all browsers without a stable sort.\n\thasDuplicate = !support.sortStable;\n\tsortInput = !support.sortStable && slice.call( results, 0 );\n\tsort.call( results, sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tsplice.call( results, duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\njQuery.fn.uniqueSort = function() {\n\treturn this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );\n};\n\nExpr = jQuery.expr = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\tATTR: function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || \"\" )\n\t\t\t\t.replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\tCHILD: function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" )\n\t\t\t\t);\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\tPSEUDO: function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr.CHILD.test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\tTAG: function( nodeNameSelector ) {\n\t\t\tvar expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn nodeName( elem, expectedNodeName );\n\t\t\t\t};\n\t\t},\n\n\t\tCLASS: function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace + \")\" + className +\n\t\t\t\t\t\"(\" + whitespace + \"|$)\" ) ) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\tATTR: function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = find.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\tif ( operator === \"=\" ) {\n\t\t\t\t\treturn result === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"!=\" ) {\n\t\t\t\t\treturn result !== check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"^=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) === 0;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"*=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"$=\" ) {\n\t\t\t\t\treturn check && result.slice( -check.length ) === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"~=\" ) {\n\t\t\t\t\treturn ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" )\n\t\t\t\t\t\t.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"|=\" ) {\n\t\t\t\t\treturn result === check || result.slice( 0, check.length + 1 ) === check + \"-\";\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t};\n\t\t},\n\n\t\tCHILD: function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || ( parent[ expando ] = {} );\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\t\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\t\t\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\tPSEUDO: function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// https://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tfind.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as jQuery does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf.call( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\tnot: markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrimCSS, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element\n\t\t\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\thas: markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn find( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\tcontains: markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// https://www.w3.org/TR/selectors/#lang-pseudo\n\t\tlang: markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tfind.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\ttarget: function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\troot: function( elem ) {\n\t\t\treturn elem === documentElement;\n\t\t},\n\n\t\tfocus: function( elem ) {\n\t\t\treturn elem === safeActiveElement() &&\n\t\t\t\tdocument.hasFocus() &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\tenabled: createDisabledPseudo( false ),\n\t\tdisabled: createDisabledPseudo( true ),\n\n\t\tchecked: function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\treturn ( nodeName( elem, \"input\" ) && !!elem.checked ) ||\n\t\t\t\t( nodeName( elem, \"option\" ) && !!elem.selected );\n\t\t},\n\n\t\tselected: function( elem ) {\n\n\t\t\t// Support: IE <=11+\n\t\t\t// Accessing the selectedIndex property\n\t\t\t// forces the browser to treat the default option as\n\t\t\t// selected when in an optgroup.\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\tempty: function( elem ) {\n\n\t\t\t// https://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\tparent: function( elem ) {\n\t\t\treturn !Expr.pseudos.empty( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\theader: function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\tinput: function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\tbutton: function( elem ) {\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"button\" ||\n\t\t\t\tnodeName( elem, \"button\" );\n\t\t},\n\n\t\ttext: function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear\n\t\t\t\t// with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\tfirst: createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\tlast: createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\teq: createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\teven: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\todd: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tlt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i;\n\n\t\t\tif ( argument < 0 ) {\n\t\t\t\ti = argument + length;\n\t\t\t} else if ( argument > length ) {\n\t\t\t\ti = length;\n\t\t\t} else {\n\t\t\t\ti = argument;\n\t\t\t}\n\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tgt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos.nth = Expr.pseudos.eq;\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\nfunction tokenize( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rleadingCombinator.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrimCSS, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\tif ( parseOnly ) {\n\t\treturn soFar.length;\n\t}\n\n\treturn soFar ?\n\t\tfind.error( selector ) :\n\n\t\t// Cache the tokens\n\t\ttokenCache( selector, groups ).slice( 0 );\n}\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\tif ( skip && nodeName( elem, skip ) ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = outerCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tfind( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem, matcherOut,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed ||\n\t\t\t\tmultipleContexts( selector || \"*\",\n\t\t\t\t\tcontext.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems;\n\n\t\tif ( matcher ) {\n\n\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter\n\t\t\t// or preexisting results,\n\t\t\tmatcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t[] :\n\n\t\t\t\t// ...otherwise use results directly\n\t\t\t\tresults;\n\n\t\t\t// Find primary matches\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t} else {\n\t\t\tmatcherOut = matcherIn;\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tvar ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element\n\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 )\n\t\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrimCSS, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find.TAG( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: iOS <=7 - 9 only\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching\n\t\t\t// elements by id. (see trac-14142)\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tjQuery.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\nfunction compile( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n}\n\n/**\n * A low-level selection function that works with jQuery's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with jQuery selector compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nfunction select( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find.ID(\n\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\tcontext\n\t\t\t) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr.needsContext.test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) &&\n\t\t\t\t\t\ttestContext( context.parentNode ) || context\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n}\n\n// One-time assignments\n\n// Support: Android <=4.0 - 4.1+\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Android <=4.0 - 4.1+\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\njQuery.find = find;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.unique = jQuery.uniqueSort;\n\n// These have always been private, but they used to be documented as part of\n// Sizzle so let's maintain them for now for backwards compatibility purposes.\nfind.compile = compile;\nfind.select = select;\nfind.setDocument = setDocument;\nfind.tokenize = tokenize;\n\nfind.escape = jQuery.escapeSelector;\nfind.getText = jQuery.text;\nfind.isXML = jQuery.isXMLDoc;\nfind.selectors = jQuery.expr;\nfind.support = jQuery.support;\nfind.uniqueSort = jQuery.uniqueSort;\n\n\t/* eslint-enable */\n\n} )();\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to jQuery#find\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.error );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the error, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getErrorHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getErrorHook();\n\n\t\t\t\t\t\t\t\t// The deprecated alias of the above. While the name suggests\n\t\t\t\t\t\t\t\t// returning the stack, not an error instance, jQuery just passes\n\t\t\t\t\t\t\t\t// it directly to `console.warn` so both will work; an instance\n\t\t\t\t\t\t\t\t// just better cooperates with source maps.\n\t\t\t\t\t\t\t\t} else if ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error\n// captured before the async barrier to get the original error cause\n// which may otherwise be hidden.\njQuery.Deferred.exceptionHook = function( error, asyncError ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message,\n\t\t\terror.stack, asyncError );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
      \" ],\n\tcol: [ 2, \"\", \"
      \" ],\n\ttr: [ 2, \"\", \"
      \" ],\n\ttd: [ 3, \"\", \"
      \" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", true );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, isSetup ) {\n\n\t// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !isSetup ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\tif ( !saved ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tdataPriv.set( this, type, false );\n\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering\n\t\t\t\t// the native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, jQuery.event.trigger(\n\t\t\t\t\tsaved[ 0 ],\n\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\tthis\n\t\t\t\t) );\n\n\t\t\t\t// Abort handling of the native event by all jQuery handlers while allowing\n\t\t\t\t// native handlers on the same element to run. On target, this is achieved\n\t\t\t\t// by stopping immediate propagation just on the jQuery event. However,\n\t\t\t\t// the native event is re-wrapped by a jQuery one on each level of the\n\t\t\t\t// propagation so the only way to stop it for jQuery is to stop it for\n\t\t\t\t// everyone via native `stopPropagation()`. This is not a problem for\n\t\t\t\t// focus/blur which don't bubble, but it does also stop click on checkboxes\n\t\t\t\t// and radios. We accept this limitation.\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.isImmediatePropagationStopped = returnTrue;\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\n\tfunction focusMappedHandler( nativeEvent ) {\n\t\tif ( document.documentMode ) {\n\n\t\t\t// Support: IE 11+\n\t\t\t// Attach a single focusin/focusout handler on the document while someone wants\n\t\t\t// focus/blur. This is because the former are synchronous in IE while the latter\n\t\t\t// are async. In other browsers, all those handlers are invoked synchronously.\n\n\t\t\t// `handle` from private data would already wrap the event, but we need\n\t\t\t// to change the `type` here.\n\t\t\tvar handle = dataPriv.get( this, \"handle\" ),\n\t\t\t\tevent = jQuery.event.fix( nativeEvent );\n\t\t\tevent.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n\t\t\tevent.isSimulated = true;\n\n\t\t\t// First, handle focusin/focusout\n\t\t\thandle( nativeEvent );\n\n\t\t\t// ...then, handle focus/blur\n\t\t\t//\n\t\t\t// focus/blur don't bubble while focusin/focusout do; simulate the former by only\n\t\t\t// invoking the handler at the lower level.\n\t\t\tif ( event.target === event.currentTarget ) {\n\n\t\t\t\t// The setup part calls `leverageNative`, which, in turn, calls\n\t\t\t\t// `jQuery.event.add`, so event handle will already have been set\n\t\t\t\t// by this point.\n\t\t\t\thandle( event );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// For non-IE browsers, attach a single capturing handler on the document\n\t\t\t// while someone wants focusin/focusout.\n\t\t\tjQuery.event.simulate( delegateType, nativeEvent.target,\n\t\t\t\tjQuery.event.fix( nativeEvent ) );\n\t\t}\n\t}\n\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\tvar attaches;\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, true );\n\n\t\t\tif ( document.documentMode ) {\n\n\t\t\t\t// Support: IE 9 - 11+\n\t\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\t\tattaches = dataPriv.get( this, delegateType );\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t}\n\t\t\t\tdataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );\n\t\t\t} else {\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tvar attaches;\n\n\t\t\tif ( document.documentMode ) {\n\t\t\t\tattaches = dataPriv.get( this, delegateType ) - 1;\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t\tdataPriv.remove( this, delegateType );\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.set( this, delegateType, attaches );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Return false to indicate standard teardown should be applied\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n\n\t// Support: Firefox <=44\n\t// Firefox doesn't have focus(in | out) events\n\t// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n\t//\n\t// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n\t// focus(in | out) events fire after focus & blur events,\n\t// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n\t// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\t//\n\t// Support: IE 9 - 11+\n\t// To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n\t// attach a single handler for both events in IE.\n\tjQuery.event.special[ delegateType ] = {\n\t\tsetup: function() {\n\n\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType );\n\n\t\t\t// Support: IE 9 - 11+\n\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.addEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t\tdataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );\n\t\t},\n\t\tteardown: function() {\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType ) - 1;\n\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.removeEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( dataHolder, delegateType );\n\t\t\t} else {\n\t\t\t\tdataPriv.set( dataHolder, delegateType, attaches );\n\t\t\t}\n\t\t}\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Re-enable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew jQuery#find here for performance reasons:\n\t\t\t// https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"box-sizing:content-box;border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is `display: block`\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0,\n\t\tmarginDelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\t// Count margin delta separately to only add it after scroll gutter adjustment.\n\t\t// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n\t\tif ( box === \"margin\" ) {\n\t\t\tmarginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta + marginDelta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\tanimationIterationCount: true,\n\t\taspectRatio: true,\n\t\tborderImageSlice: true,\n\t\tcolumnCount: true,\n\t\tflexGrow: true,\n\t\tflexShrink: true,\n\t\tfontWeight: true,\n\t\tgridArea: true,\n\t\tgridColumn: true,\n\t\tgridColumnEnd: true,\n\t\tgridColumnStart: true,\n\t\tgridRow: true,\n\t\tgridRowEnd: true,\n\t\tgridRowStart: true,\n\t\tlineHeight: true,\n\t\topacity: true,\n\t\torder: true,\n\t\torphans: true,\n\t\tscale: true,\n\t\twidows: true,\n\t\tzIndex: true,\n\t\tzoom: true,\n\n\t\t// SVG-related\n\t\tfillOpacity: true,\n\t\tfloodOpacity: true,\n\t\tstopOpacity: true,\n\t\tstrokeMiterlimit: true,\n\t\tstrokeOpacity: true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (trac-2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// trac-1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"