Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9313306
guided_tour.6fdb762b8416936b3c84.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
73 KB
Subscribers
None
guided_tour.6fdb762b8416936b3c84.js
View Options
/*! For license information please see guided_tour.6fdb762b8416936b3c84.js.LICENSE.txt */
!
function
(
t
,
e
){
"object"
==
typeof
exports
&&
"object"
==
typeof
module
?
module
.
exports
=
e
()
:
"function"
==
typeof
define
&&
define
.
amd
?
define
([],
e
)
:
"object"
==
typeof
exports
?
exports
.
swh
=
e
()
:
(
t
.
swh
=
t
.
swh
||
{},
t
.
swh
.
guided_tour
=
e
())}(
self
,(
function
(){
return
function
(){
"use strict"
;
var
t
=
{
68277
:
function
(
t
,
e
,
n
){
n
.
d
(
e
,{
V
:
function
(){
return
c
},
t
:
function
(){
return
u
}});
var
o
=
{
38
:
1
,
40
:
1
,
32
:
1
,
33
:
1
,
34
:
1
,
35
:
1
,
36
:
1
};
function
i
(
t
){
t
.
preventDefault
()}
function
r
(
t
){
if
(
o
[
t
.
keyCode
])
return
i
(
t
),
!
1
}
var
a
=!
1
;
try
{
window
.
addEventListener
(
"test"
,
null
,
Object
.
defineProperty
({},
"passive"
,{
get
:
function
(){
a
=!
0
}}))}
catch
(
t
){}
var
s
=!!
a
&&
{
passive
:!
1
},
l
=
"onwheel"
in
document
.
createElement
(
"div"
)
?
"wheel"
:
"mousewheel"
;
function
c
(){
window
.
addEventListener
(
"DOMMouseScroll"
,
i
,
!
1
),
window
.
addEventListener
(
l
,
i
,
s
),
window
.
addEventListener
(
"touchmove"
,
i
,
s
),
window
.
addEventListener
(
"keydown"
,
r
,
!
1
)}
function
u
(){
window
.
removeEventListener
(
"DOMMouseScroll"
,
i
,
!
1
),
window
.
removeEventListener
(
l
,
i
,
s
),
window
.
removeEventListener
(
"touchmove"
,
i
,
s
),
window
.
removeEventListener
(
"keydown"
,
r
,
!
1
)}},
61378
:
function
(
t
,
e
,
n
){
function
o
(
t
){
return
(
o
=
"function"
==
typeof
Symbol
&&
"symbol"
==
typeof
Symbol
.
iterator
?
function
(
t
){
return
typeof
t
}
:
function
(
t
){
return
t
&&
"function"
==
typeof
Symbol
&&
t
.
constructor
===
Symbol
&&
t
!==
Symbol
.
prototype
?
"symbol"
:
typeof
t
})(
t
)}
function
i
(
t
,
e
,
n
){
return
e
in
t
?
Object
.
defineProperty
(
t
,
e
,{
value
:
n
,
enumerable
:!
0
,
configurable
:!
0
,
writable
:!
0
})
:
t
[
e
]
=
n
,
t
}
function
r
(
t
,
e
){
return
function
(
t
){
if
(
Array
.
isArray
(
t
))
return
t
}(
t
)
||
function
(
t
,
e
){
var
n
=
null
==
t
?
null
:
"undefined"
!=
typeof
Symbol
&&
t
[
Symbol
.
iterator
]
||
t
[
"@@iterator"
];
if
(
null
!=
n
){
var
o
,
i
,
r
=
[],
a
=!
0
,
s
=!
1
;
try
{
for
(
n
=
n
.
call
(
t
);
!
(
a
=
(
o
=
n
.
next
()).
done
)
&&
(
r
.
push
(
o
.
value
),
!
e
||
r
.
length
!==
e
);
a
=!
0
);}
catch
(
t
){
s
=!
0
,
i
=
t
}
finally
{
try
{
a
||
null
==
n
.
return
||
n
.
return
()}
finally
{
if
(
s
)
throw
i
}}
return
r
}}(
t
,
e
)
||
function
(
t
,
e
){
if
(
t
){
if
(
"string"
==
typeof
t
)
return
a
(
t
,
e
);
var
n
=
Object
.
prototype
.
toString
.
call
(
t
).
slice
(
8
,
-
1
);
return
"Object"
===
n
&&
t
.
constructor
&&
(
n
=
t
.
constructor
.
name
),
"Map"
===
n
||
"Set"
===
n
?
Array
.
from
(
t
)
:
"Arguments"
===
n
||
/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/
.
test
(
n
)
?
a
(
t
,
e
)
:
void
0
}}(
t
,
e
)
||
function
(){
throw
new
TypeError
(
"Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
)}()}
function
a
(
t
,
e
){(
null
==
e
||
e
>
t
.
length
)
&&
(
e
=
t
.
length
);
for
(
var
n
=
0
,
o
=
new
Array
(
e
);
n
<
e
;
n
++
)
o
[
n
]
=
t
[
n
];
return
o
}
n
.
d
(
e
,{
Z
:
function
(){
return
la
}});
var
s
=
function
(){
var
t
=
{};
return
function
(
e
){
var
n
=
arguments
.
length
>
1
&&
void
0
!==
arguments
[
1
]
?
arguments
[
1
]
:
"introjs-stamp"
;
return
t
[
n
]
=
t
[
n
]
||
0
,
void
0
===
e
[
n
]
&&
(
e
[
n
]
=
t
[
n
]
++
),
e
[
n
]}}();
function
l
(
t
,
e
,
n
){
if
(
t
)
for
(
var
o
=
0
,
i
=
t
.
length
;
o
<
i
;
o
++
)
e
(
t
[
o
],
o
);
"function"
==
typeof
n
&&
n
()}
var
c
=
new
function
(){
var
t
=
"introjs_event"
;
this
.
_id
=
function
(
t
,
e
,
n
,
o
){
return
e
+
s
(
n
)
+
(
o
?
"_"
.
concat
(
s
(
o
))
:
""
)},
this
.
on
=
function
(
e
,
n
,
o
,
i
,
r
){
var
a
=
this
.
_id
.
apply
(
this
,
arguments
),
s
=
function
(
t
){
return
o
.
call
(
i
||
e
,
t
||
window
.
event
)};
"addEventListener"
in
e
?
e
.
addEventListener
(
n
,
s
,
r
)
:
"attachEvent"
in
e
&&
e
.
attachEvent
(
"on"
.
concat
(
n
),
s
),
e
[
t
]
=
e
[
t
]
||
{},
e
[
t
][
a
]
=
s
},
this
.
off
=
function
(
e
,
n
,
o
,
i
,
r
){
var
a
=
this
.
_id
.
apply
(
this
,
arguments
),
s
=
e
[
t
]
&&
e
[
t
][
a
];
s
&&
(
"removeEventListener"
in
e
?
e
.
removeEventListener
(
n
,
s
,
r
)
:
"detachEvent"
in
e
&&
e
.
detachEvent
(
"on"
.
concat
(
n
),
s
),
e
[
t
][
a
]
=
null
)}},
u
=
"undefined"
!=
typeof
globalThis
?
globalThis
:
"undefined"
!=
typeof
window
?
window
:
void
0
!==
n
.
g
?
n
.
g
:
"undefined"
!=
typeof
self
?
self
:
{};
function
h
(
t
,
e
){
return
t
(
e
=
{
exports
:
{}},
e
.
exports
),
e
.
exports
}
var
f
,
d
,
p
=
function
(
t
){
return
t
&&
t
.
Math
==
Math
&&
t
},
g
=
p
(
"object"
==
typeof
globalThis
&&
globalThis
)
||
p
(
"object"
==
typeof
window
&&
window
)
||
p
(
"object"
==
typeof
self
&&
self
)
||
p
(
"object"
==
typeof
u
&&
u
)
||
function
(){
return
this
}()
||
Function
(
"return this"
)(),
b
=
function
(
t
){
try
{
return
!!
t
()}
catch
(
t
){
return
!
0
}},
m
=!
b
((
function
(){
return
7
!=
Object
.
defineProperty
({},
1
,{
get
:
function
(){
return
7
}})[
1
]})),
v
=!
b
((
function
(){
var
t
=
function
(){}.
bind
();
return
"function"
!=
typeof
t
||
t
.
hasOwnProperty
(
"prototype"
)})),
w
=
Function
.
prototype
.
call
,
y
=
v
?
w
.
bind
(
w
)
:
function
(){
return
w
.
apply
(
w
,
arguments
)},
S
=
{}.
propertyIsEnumerable
,
_
=
Object
.
getOwnPropertyDescriptor
,
x
=
{
f
:
_
&&!
S
.
call
({
1
:
2
},
1
)
?
function
(
t
){
var
e
=
_
(
this
,
t
);
return
!!
e
&&
e
.
enumerable
}
:
S
},
j
=
function
(
t
,
e
){
return
{
enumerable
:!
(
1
&
t
),
configurable
:!
(
2
&
t
),
writable
:!
(
4
&
t
),
value
:
e
}},
C
=
Function
.
prototype
,
k
=
C
.
bind
,
A
=
C
.
call
,
E
=
v
&&
k
.
bind
(
A
,
A
),
I
=
v
?
function
(
t
){
return
t
&&
E
(
t
)}
:
function
(
t
){
return
t
&&
function
(){
return
A
.
apply
(
t
,
arguments
)}},
T
=
I
({}.
toString
),
L
=
I
(
""
.
slice
),
O
=
function
(
t
){
return
L
(
T
(
t
),
8
,
-
1
)},
P
=
g
.
Object
,
N
=
I
(
""
.
split
),
R
=
b
((
function
(){
return
!
P
(
"z"
).
propertyIsEnumerable
(
0
)}))
?
function
(
t
){
return
"String"
==
O
(
t
)
?
N
(
t
,
""
)
:
P
(
t
)}
:
P
,
H
=
g
.
TypeError
,
B
=
function
(
t
){
if
(
null
==
t
)
throw
H
(
"Can't call method on "
+
t
);
return
t
},
M
=
function
(
t
){
return
R
(
B
(
t
))},
q
=
function
(
t
){
return
"function"
==
typeof
t
},
D
=
function
(
t
){
return
"object"
==
typeof
t
?
null
!==
t
:
q
(
t
)},
W
=
function
(
t
){
return
q
(
t
)
?
t
:
void
0
},
$
=
function
(
t
,
e
){
return
arguments
.
length
<
2
?
W
(
g
[
t
])
:
g
[
t
]
&&
g
[
t
][
e
]},
F
=
I
({}.
isPrototypeOf
),
Y
=
$
(
"navigator"
,
"userAgent"
)
||
""
,
U
=
g
.
process
,
G
=
g
.
Deno
,
V
=
U
&&
U
.
versions
||
G
&&
G
.
version
,
z
=
V
&&
V
.
v8
;
z
&&
(
d
=
(
f
=
z
.
split
(
"."
))[
0
]
>
0
&&
f
[
0
]
<
4
?
1
:+
(
f
[
0
]
+
f
[
1
])),
!
d
&&
Y
&&
(
!
(
f
=
Y
.
match
(
/Edge\/(\d+)/
))
||
f
[
1
]
>=
74
)
&&
(
f
=
Y
.
match
(
/Chrome\/(\d+)/
))
&&
(
d
=+
f
[
1
]);
var
J
=
d
,
K
=!!
Object
.
getOwnPropertySymbols
&&!
b
((
function
(){
var
t
=
Symbol
();
return
!
String
(
t
)
||!
(
Object
(
t
)
instanceof
Symbol
)
||!
Symbol
.
sham
&&
J
&&
J
<
41
})),
X
=
K
&&!
Symbol
.
sham
&&
"symbol"
==
typeof
Symbol
.
iterator
,
Q
=
g
.
Object
,
Z
=
X
?
function
(
t
){
return
"symbol"
==
typeof
t
}
:
function
(
t
){
var
e
=
$
(
"Symbol"
);
return
q
(
e
)
&&
F
(
e
.
prototype
,
Q
(
t
))},
tt
=
g
.
String
,
et
=
function
(
t
){
try
{
return
tt
(
t
)}
catch
(
t
){
return
"Object"
}},
nt
=
g
.
TypeError
,
ot
=
function
(
t
){
if
(
q
(
t
))
return
t
;
throw
nt
(
et
(
t
)
+
" is not a function"
)},
it
=
function
(
t
,
e
){
var
n
=
t
[
e
];
return
null
==
n
?
void
0
:
ot
(
n
)},
rt
=
g
.
TypeError
,
at
=
Object
.
defineProperty
,
st
=
function
(
t
,
e
){
try
{
at
(
g
,
t
,{
value
:
e
,
configurable
:!
0
,
writable
:!
0
})}
catch
(
n
){
g
[
t
]
=
e
}
return
e
},
lt
=
g
[
"__core-js_shared__"
]
||
st
(
"__core-js_shared__"
,{}),
ct
=
h
((
function
(
t
){(
t
.
exports
=
function
(
t
,
e
){
return
lt
[
t
]
||
(
lt
[
t
]
=
void
0
!==
e
?
e
:
{})})(
"versions"
,[]).
push
({
version
:
"3.21.1"
,
mode
:
"global"
,
copyright
:
"© 2014-2022 Denis Pushkarev (zloirock.ru)"
,
license
:
"https://github.com/zloirock/core-js/blob/v3.21.1/LICENSE"
,
source
:
"https://github.com/zloirock/core-js"
})})),
ut
=
g
.
Object
,
ht
=
function
(
t
){
return
ut
(
B
(
t
))},
ft
=
I
({}.
hasOwnProperty
),
dt
=
Object
.
hasOwn
||
function
(
t
,
e
){
return
ft
(
ht
(
t
),
e
)},
pt
=
0
,
gt
=
Math
.
random
(),
bt
=
I
(
1.
.
toString
),
mt
=
function
(
t
){
return
"Symbol("
+
(
void
0
===
t
?
""
:
t
)
+
")_"
+
bt
(
++
pt
+
gt
,
36
)},
vt
=
ct
(
"wks"
),
wt
=
g
.
Symbol
,
yt
=
wt
&&
wt
.
for
,
St
=
X
?
wt
:
wt
&&
wt
.
withoutSetter
||
mt
,
_t
=
function
(
t
){
if
(
!
dt
(
vt
,
t
)
||!
K
&&
"string"
!=
typeof
vt
[
t
]){
var
e
=
"Symbol."
+
t
;
K
&&
dt
(
wt
,
t
)
?
vt
[
t
]
=
wt
[
t
]
:
vt
[
t
]
=
X
&&
yt
?
yt
(
e
)
:
St
(
e
)}
return
vt
[
t
]},
xt
=
g
.
TypeError
,
jt
=
_t
(
"toPrimitive"
),
Ct
=
function
(
t
){
var
e
=
function
(
t
,
e
){
if
(
!
D
(
t
)
||
Z
(
t
))
return
t
;
var
n
,
o
=
it
(
t
,
jt
);
if
(
o
){
if
(
void
0
===
e
&&
(
e
=
"default"
),
n
=
y
(
o
,
t
,
e
),
!
D
(
n
)
||
Z
(
n
))
return
n
;
throw
xt
(
"Can't convert object to primitive value"
)}
return
void
0
===
e
&&
(
e
=
"number"
),
function
(
t
,
e
){
var
n
,
o
;
if
(
"string"
===
e
&&
q
(
n
=
t
.
toString
)
&&!
D
(
o
=
y
(
n
,
t
)))
return
o
;
if
(
q
(
n
=
t
.
valueOf
)
&&!
D
(
o
=
y
(
n
,
t
)))
return
o
;
if
(
"string"
!==
e
&&
q
(
n
=
t
.
toString
)
&&!
D
(
o
=
y
(
n
,
t
)))
return
o
;
throw
rt
(
"Can't convert object to primitive value"
)}(
t
,
e
)}(
t
,
"string"
);
return
Z
(
e
)
?
e
:
e
+
""
},
kt
=
g
.
document
,
At
=
D
(
kt
)
&&
D
(
kt
.
createElement
),
Et
=
function
(
t
){
return
At
?
kt
.
createElement
(
t
)
:
{}},
It
=!
m
&&!
b
((
function
(){
return
7
!=
Object
.
defineProperty
(
Et
(
"div"
),
"a"
,{
get
:
function
(){
return
7
}}).
a
})),
Tt
=
Object
.
getOwnPropertyDescriptor
,
Lt
=
{
f
:
m
?
Tt
:
function
(
t
,
e
){
if
(
t
=
M
(
t
),
e
=
Ct
(
e
),
It
)
try
{
return
Tt
(
t
,
e
)}
catch
(
t
){}
if
(
dt
(
t
,
e
))
return
j
(
!
y
(
x
.
f
,
t
,
e
),
t
[
e
])}},
Ot
=
m
&&
b
((
function
(){
return
42
!=
Object
.
defineProperty
((
function
(){}),
"prototype"
,{
value
:
42
,
writable
:!
1
}).
prototype
})),
Pt
=
g
.
String
,
Nt
=
g
.
TypeError
,
Rt
=
function
(
t
){
if
(
D
(
t
))
return
t
;
throw
Nt
(
Pt
(
t
)
+
" is not an object"
)},
Ht
=
g
.
TypeError
,
Bt
=
Object
.
defineProperty
,
Mt
=
Object
.
getOwnPropertyDescriptor
,
qt
=
{
f
:
m
?
Ot
?
function
(
t
,
e
,
n
){
if
(
Rt
(
t
),
e
=
Ct
(
e
),
Rt
(
n
),
"function"
==
typeof
t
&&
"prototype"
===
e
&&
"value"
in
n
&&
"writable"
in
n
&&!
n
.
writable
){
var
o
=
Mt
(
t
,
e
);
o
&&
o
.
writable
&&
(
t
[
e
]
=
n
.
value
,
n
=
{
configurable
:
"configurable"
in
n
?
n
.
configurable
:
o
.
configurable
,
enumerable
:
"enumerable"
in
n
?
n
.
enumerable
:
o
.
enumerable
,
writable
:!
1
})}
return
Bt
(
t
,
e
,
n
)}
:
Bt
:
function
(
t
,
e
,
n
){
if
(
Rt
(
t
),
e
=
Ct
(
e
),
Rt
(
n
),
It
)
try
{
return
Bt
(
t
,
e
,
n
)}
catch
(
t
){}
if
(
"get"
in
n
||
"set"
in
n
)
throw
Ht
(
"Accessors not supported"
);
return
"value"
in
n
&&
(
t
[
e
]
=
n
.
value
),
t
}},
Dt
=
m
?
function
(
t
,
e
,
n
){
return
qt
.
f
(
t
,
e
,
j
(
1
,
n
))}
:
function
(
t
,
e
,
n
){
return
t
[
e
]
=
n
,
t
},
Wt
=
I
(
Function
.
toString
);
q
(
lt
.
inspectSource
)
||
(
lt
.
inspectSource
=
function
(
t
){
return
Wt
(
t
)});
var
$t
,
Ft
,
Yt
,
Ut
=
lt
.
inspectSource
,
Gt
=
g
.
WeakMap
,
Vt
=
q
(
Gt
)
&&
/native code/
.
test
(
Ut
(
Gt
)),
zt
=
ct
(
"keys"
),
Jt
=
function
(
t
){
return
zt
[
t
]
||
(
zt
[
t
]
=
mt
(
t
))},
Kt
=
{},
Xt
=
g
.
TypeError
,
Qt
=
g
.
WeakMap
;
if
(
Vt
||
lt
.
state
){
var
Zt
=
lt
.
state
||
(
lt
.
state
=
new
Qt
),
te
=
I
(
Zt
.
get
),
ee
=
I
(
Zt
.
has
),
ne
=
I
(
Zt
.
set
);
$t
=
function
(
t
,
e
){
if
(
ee
(
Zt
,
t
))
throw
new
Xt
(
"Object already initialized"
);
return
e
.
facade
=
t
,
ne
(
Zt
,
t
,
e
),
e
},
Ft
=
function
(
t
){
return
te
(
Zt
,
t
)
||
{}},
Yt
=
function
(
t
){
return
ee
(
Zt
,
t
)}}
else
{
var
oe
=
Jt
(
"state"
);
Kt
[
oe
]
=!
0
,
$t
=
function
(
t
,
e
){
if
(
dt
(
t
,
oe
))
throw
new
Xt
(
"Object already initialized"
);
return
e
.
facade
=
t
,
Dt
(
t
,
oe
,
e
),
e
},
Ft
=
function
(
t
){
return
dt
(
t
,
oe
)
?
t
[
oe
]
:
{}},
Yt
=
function
(
t
){
return
dt
(
t
,
oe
)}}
var
ie
=
{
set
:
$t
,
get
:
Ft
,
has
:
Yt
,
enforce
:
function
(
t
){
return
Yt
(
t
)
?
Ft
(
t
)
:
$t
(
t
,{})},
getterFor
:
function
(
t
){
return
function
(
e
){
var
n
;
if
(
!
D
(
e
)
||
(
n
=
Ft
(
e
)).
type
!==
t
)
throw
Xt
(
"Incompatible receiver, "
+
t
+
" required"
);
return
n
}}},
re
=
Function
.
prototype
,
ae
=
m
&&
Object
.
getOwnPropertyDescriptor
,
se
=
dt
(
re
,
"name"
),
le
=
{
EXISTS
:
se
,
PROPER
:
se
&&
"something"
===
function
(){}.
name
,
CONFIGURABLE
:
se
&&
(
!
m
||
m
&&
ae
(
re
,
"name"
).
configurable
)},
ce
=
h
((
function
(
t
){
var
e
=
le
.
CONFIGURABLE
,
n
=
ie
.
get
,
o
=
ie
.
enforce
,
i
=
String
(
String
).
split
(
"String"
);(
t
.
exports
=
function
(
t
,
n
,
r
,
a
){
var
s
,
l
=!!
a
&&!!
a
.
unsafe
,
c
=!!
a
&&!!
a
.
enumerable
,
u
=!!
a
&&!!
a
.
noTargetGet
,
h
=
a
&&
void
0
!==
a
.
name
?
a
.
name
:
n
;
q
(
r
)
&&
(
"Symbol("
===
String
(
h
).
slice
(
0
,
7
)
&&
(
h
=
"["
+
String
(
h
).
replace
(
/^Symbol\(([^)]*)\)/
,
"$1"
)
+
"]"
),(
!
dt
(
r
,
"name"
)
||
e
&&
r
.
name
!==
h
)
&&
Dt
(
r
,
"name"
,
h
),(
s
=
o
(
r
)).
source
||
(
s
.
source
=
i
.
join
(
"string"
==
typeof
h
?
h
:
""
))),
t
!==
g
?
(
l
?!
u
&&
t
[
n
]
&&
(
c
=!
0
)
:
delete
t
[
n
],
c
?
t
[
n
]
=
r
:
Dt
(
t
,
n
,
r
))
:
c
?
t
[
n
]
=
r
:
st
(
n
,
r
)})(
Function
.
prototype
,
"toString"
,(
function
(){
return
q
(
this
)
&&
n
(
this
).
source
||
Ut
(
this
)}))})),
ue
=
Math
.
ceil
,
he
=
Math
.
floor
,
fe
=
function
(
t
){
var
e
=+
t
;
return
e
!=
e
||
0
===
e
?
0
:
(
e
>
0
?
he
:
ue
)(
e
)},
de
=
Math
.
max
,
pe
=
Math
.
min
,
ge
=
function
(
t
,
e
){
var
n
=
fe
(
t
);
return
n
<
0
?
de
(
n
+
e
,
0
)
:
pe
(
n
,
e
)},
be
=
Math
.
min
,
me
=
function
(
t
){
return
t
>
0
?
be
(
fe
(
t
),
9007199254740991
)
:
0
},
ve
=
function
(
t
){
return
me
(
t
.
length
)},
we
=
function
(
t
){
return
function
(
e
,
n
,
o
){
var
i
,
r
=
M
(
e
),
a
=
ve
(
r
),
s
=
ge
(
o
,
a
);
if
(
t
&&
n
!=
n
){
for
(;
a
>
s
;)
if
((
i
=
r
[
s
++
])
!=
i
)
return
!
0
}
else
for
(;
a
>
s
;
s
++
)
if
((
t
||
s
in
r
)
&&
r
[
s
]
===
n
)
return
t
||
s
||
0
;
return
!
t
&&-
1
}},
ye
=
{
includes
:
we
(
!
0
),
indexOf
:
we
(
!
1
)},
Se
=
ye
.
indexOf
,
_e
=
I
([].
push
),
xe
=
function
(
t
,
e
){
var
n
,
o
=
M
(
t
),
i
=
0
,
r
=
[];
for
(
n
in
o
)
!
dt
(
Kt
,
n
)
&&
dt
(
o
,
n
)
&&
_e
(
r
,
n
);
for
(;
e
.
length
>
i
;)
dt
(
o
,
n
=
e
[
i
++
])
&&
(
~
Se
(
r
,
n
)
||
_e
(
r
,
n
));
return
r
},
je
=
[
"constructor"
,
"hasOwnProperty"
,
"isPrototypeOf"
,
"propertyIsEnumerable"
,
"toLocaleString"
,
"toString"
,
"valueOf"
],
Ce
=
je
.
concat
(
"length"
,
"prototype"
),
ke
=
{
f
:
Object
.
getOwnPropertyNames
||
function
(
t
){
return
xe
(
t
,
Ce
)}},
Ae
=
{
f
:
Object
.
getOwnPropertySymbols
},
Ee
=
I
([].
concat
),
Ie
=
$
(
"Reflect"
,
"ownKeys"
)
||
function
(
t
){
var
e
=
ke
.
f
(
Rt
(
t
)),
n
=
Ae
.
f
;
return
n
?
Ee
(
e
,
n
(
t
))
:
e
},
Te
=
function
(
t
,
e
,
n
){
for
(
var
o
=
Ie
(
e
),
i
=
qt
.
f
,
r
=
Lt
.
f
,
a
=
0
;
a
<
o
.
length
;
a
++
){
var
s
=
o
[
a
];
dt
(
t
,
s
)
||
n
&&
dt
(
n
,
s
)
||
i
(
t
,
s
,
r
(
e
,
s
))}},
Le
=
/#|\.prototype\./
,
Oe
=
function
(
t
,
e
){
var
n
=
Ne
[
Pe
(
t
)];
return
n
==
He
||
n
!=
Re
&&
(
q
(
e
)
?
b
(
e
)
:!!
e
)},
Pe
=
Oe
.
normalize
=
function
(
t
){
return
String
(
t
).
replace
(
Le
,
"."
).
toLowerCase
()},
Ne
=
Oe
.
data
=
{},
Re
=
Oe
.
NATIVE
=
"N"
,
He
=
Oe
.
POLYFILL
=
"P"
,
Be
=
Oe
,
Me
=
Lt
.
f
,
qe
=
function
(
t
,
e
){
var
n
,
o
,
i
,
r
,
a
,
s
=
t
.
target
,
l
=
t
.
global
,
c
=
t
.
stat
;
if
(
n
=
l
?
g
:
c
?
g
[
s
]
||
st
(
s
,{})
:
(
g
[
s
]
||
{}).
prototype
)
for
(
o
in
e
){
if
(
r
=
e
[
o
],
i
=
t
.
noTargetGet
?
(
a
=
Me
(
n
,
o
))
&&
a
.
value
:
n
[
o
],
!
Be
(
l
?
o
:
s
+
(
c
?
"."
:
"#"
)
+
o
,
t
.
forced
)
&&
void
0
!==
i
){
if
(
typeof
r
==
typeof
i
)
continue
;
Te
(
r
,
i
)}(
t
.
sham
||
i
&&
i
.
sham
)
&&
Dt
(
r
,
"sham"
,
!
0
),
ce
(
n
,
o
,
r
,
t
)}},
De
=
{};
De
[
_t
(
"toStringTag"
)]
=
"z"
;
var
We
,
$e
=
"[object z]"
===
String
(
De
),
Fe
=
_t
(
"toStringTag"
),
Ye
=
g
.
Object
,
Ue
=
"Arguments"
==
O
(
function
(){
return
arguments
}()),
Ge
=
$e
?
O
:
function
(
t
){
var
e
,
n
,
o
;
return
void
0
===
t
?
"Undefined"
:
null
===
t
?
"Null"
:
"string"
==
typeof
(
n
=
function
(
t
,
e
){
try
{
return
t
[
e
]}
catch
(
t
){}}(
e
=
Ye
(
t
),
Fe
))
?
n
:
Ue
?
O
(
e
)
:
"Object"
==
(
o
=
O
(
e
))
&&
q
(
e
.
callee
)
?
"Arguments"
:
o
},
Ve
=
g
.
String
,
ze
=
function
(
t
){
if
(
"Symbol"
===
Ge
(
t
))
throw
TypeError
(
"Cannot convert a Symbol value to a string"
);
return
Ve
(
t
)},
Je
=
function
(){
var
t
=
Rt
(
this
),
e
=
""
;
return
t
.
global
&&
(
e
+=
"g"
),
t
.
ignoreCase
&&
(
e
+=
"i"
),
t
.
multiline
&&
(
e
+=
"m"
),
t
.
dotAll
&&
(
e
+=
"s"
),
t
.
unicode
&&
(
e
+=
"u"
),
t
.
sticky
&&
(
e
+=
"y"
),
e
},
Ke
=
g
.
RegExp
,
Xe
=
b
((
function
(){
var
t
=
Ke
(
"a"
,
"y"
);
return
t
.
lastIndex
=
2
,
null
!=
t
.
exec
(
"abcd"
)})),
Qe
=
Xe
||
b
((
function
(){
return
!
Ke
(
"a"
,
"y"
).
sticky
})),
Ze
=
{
BROKEN_CARET
:
Xe
||
b
((
function
(){
var
t
=
Ke
(
"^r"
,
"gy"
);
return
t
.
lastIndex
=
2
,
null
!=
t
.
exec
(
"str"
)})),
MISSED_STICKY
:
Qe
,
UNSUPPORTED_Y
:
Xe
},
tn
=
Object
.
keys
||
function
(
t
){
return
xe
(
t
,
je
)},
en
=
{
f
:
m
&&!
Ot
?
Object
.
defineProperties
:
function
(
t
,
e
){
Rt
(
t
);
for
(
var
n
,
o
=
M
(
e
),
i
=
tn
(
e
),
r
=
i
.
length
,
a
=
0
;
r
>
a
;)
qt
.
f
(
t
,
n
=
i
[
a
++
],
o
[
n
]);
return
t
}},
nn
=
$
(
"document"
,
"documentElement"
),
on
=
Jt
(
"IE_PROTO"
),
rn
=
function
(){},
an
=
function
(
t
){
return
"<script>"
+
t
+
"<\/script>"
},
sn
=
function
(
t
){
t
.
write
(
an
(
""
)),
t
.
close
();
var
e
=
t
.
parentWindow
.
Object
;
return
t
=
null
,
e
},
ln
=
function
(){
try
{
We
=
new
ActiveXObject
(
"htmlfile"
)}
catch
(
t
){}
var
t
,
e
;
ln
=
"undefined"
!=
typeof
document
?
document
.
domain
&&
We
?
sn
(
We
)
:
((
e
=
Et
(
"iframe"
)).
style
.
display
=
"none"
,
nn
.
appendChild
(
e
),
e
.
src
=
String
(
"javascript:"
),(
t
=
e
.
contentWindow
.
document
).
open
(),
t
.
write
(
an
(
"document.F=Object"
)),
t
.
close
(),
t
.
F
)
:
sn
(
We
);
for
(
var
n
=
je
.
length
;
n
--
;)
delete
ln
.
prototype
[
je
[
n
]];
return
ln
()};
Kt
[
on
]
=!
0
;
var
cn
,
un
,
hn
=
Object
.
create
||
function
(
t
,
e
){
var
n
;
return
null
!==
t
?
(
rn
.
prototype
=
Rt
(
t
),
n
=
new
rn
,
rn
.
prototype
=
null
,
n
[
on
]
=
t
)
:
n
=
ln
(),
void
0
===
e
?
n
:
en
.
f
(
n
,
e
)},
fn
=
g
.
RegExp
,
dn
=
b
((
function
(){
var
t
=
fn
(
"."
,
"s"
);
return
!
(
t
.
dotAll
&&
t
.
exec
(
"\n"
)
&&
"s"
===
t
.
flags
)})),
pn
=
g
.
RegExp
,
gn
=
b
((
function
(){
var
t
=
pn
(
"(?<a>b)"
,
"g"
);
return
"b"
!==
t
.
exec
(
"b"
).
groups
.
a
||
"bc"
!==
"b"
.
replace
(
t
,
"$<a>c"
)})),
bn
=
ie
.
get
,
mn
=
ct
(
"native-string-replace"
,
String
.
prototype
.
replace
),
vn
=
RegExp
.
prototype
.
exec
,
wn
=
vn
,
yn
=
I
(
""
.
charAt
),
Sn
=
I
(
""
.
indexOf
),
_n
=
I
(
""
.
replace
),
xn
=
I
(
""
.
slice
),
jn
=
(
un
=
/b*/g
,
y
(
vn
,
cn
=
/a/
,
"a"
),
y
(
vn
,
un
,
"a"
),
0
!==
cn
.
lastIndex
||
0
!==
un
.
lastIndex
),
Cn
=
Ze
.
BROKEN_CARET
,
kn
=
void
0
!==
/()??/
.
exec
(
""
)[
1
];(
jn
||
kn
||
Cn
||
dn
||
gn
)
&&
(
wn
=
function
(
t
){
var
e
,
n
,
o
,
i
,
r
,
a
,
s
,
l
=
this
,
c
=
bn
(
l
),
u
=
ze
(
t
),
h
=
c
.
raw
;
if
(
h
)
return
h
.
lastIndex
=
l
.
lastIndex
,
e
=
y
(
wn
,
h
,
u
),
l
.
lastIndex
=
h
.
lastIndex
,
e
;
var
f
=
c
.
groups
,
d
=
Cn
&&
l
.
sticky
,
p
=
y
(
Je
,
l
),
g
=
l
.
source
,
b
=
0
,
m
=
u
;
if
(
d
&&
(
p
=
_n
(
p
,
"y"
,
""
),
-
1
===
Sn
(
p
,
"g"
)
&&
(
p
+=
"g"
),
m
=
xn
(
u
,
l
.
lastIndex
),
l
.
lastIndex
>
0
&&
(
!
l
.
multiline
||
l
.
multiline
&&
"\n"
!==
yn
(
u
,
l
.
lastIndex
-
1
))
&&
(
g
=
"(?: "
+
g
+
")"
,
m
=
" "
+
m
,
b
++
),
n
=
new
RegExp
(
"^(?:"
+
g
+
")"
,
p
)),
kn
&&
(
n
=
new
RegExp
(
"^"
+
g
+
"$(?!\\s)"
,
p
)),
jn
&&
(
o
=
l
.
lastIndex
),
i
=
y
(
vn
,
d
?
n
:
l
,
m
),
d
?
i
?
(
i
.
input
=
xn
(
i
.
input
,
b
),
i
[
0
]
=
xn
(
i
[
0
],
b
),
i
.
index
=
l
.
lastIndex
,
l
.
lastIndex
+=
i
[
0
].
length
)
:
l
.
lastIndex
=
0
:
jn
&&
i
&&
(
l
.
lastIndex
=
l
.
global
?
i
.
index
+
i
[
0
].
length
:
o
),
kn
&&
i
&&
i
.
length
>
1
&&
y
(
mn
,
i
[
0
],
n
,(
function
(){
for
(
r
=
1
;
r
<
arguments
.
length
-
2
;
r
++
)
void
0
===
arguments
[
r
]
&&
(
i
[
r
]
=
void
0
)})),
i
&&
f
)
for
(
i
.
groups
=
a
=
hn
(
null
),
r
=
0
;
r
<
f
.
length
;
r
++
)
a
[(
s
=
f
[
r
])[
0
]]
=
i
[
s
[
1
]];
return
i
});
var
An
=
wn
;
qe
({
target
:
"RegExp"
,
proto
:!
0
,
forced
:
/./
.
exec
!==
An
},{
exec
:
An
});
var
En
=
_t
(
"species"
),
In
=
RegExp
.
prototype
,
Tn
=
function
(
t
,
e
,
n
,
o
){
var
i
=
_t
(
t
),
r
=!
b
((
function
(){
var
e
=
{};
return
e
[
i
]
=
function
(){
return
7
},
7
!=
""
[
t
](
e
)})),
a
=
r
&&!
b
((
function
(){
var
e
=!
1
,
n
=
/a/
;
return
"split"
===
t
&&
((
n
=
{}).
constructor
=
{},
n
.
constructor
[
En
]
=
function
(){
return
n
},
n
.
flags
=
""
,
n
[
i
]
=
/./
[
i
]),
n
.
exec
=
function
(){
return
e
=!
0
,
null
},
n
[
i
](
""
),
!
e
}));
if
(
!
r
||!
a
||
n
){
var
s
=
I
(
/./
[
i
]),
l
=
e
(
i
,
""
[
t
],(
function
(
t
,
e
,
n
,
o
,
i
){
var
a
=
I
(
t
),
l
=
e
.
exec
;
return
l
===
An
||
l
===
In
.
exec
?
r
&&!
i
?
{
done
:!
0
,
value
:
s
(
e
,
n
,
o
)}
:
{
done
:!
0
,
value
:
a
(
n
,
e
,
o
)}
:
{
done
:!
1
}}));
ce
(
String
.
prototype
,
t
,
l
[
0
]),
ce
(
In
,
i
,
l
[
1
])}
o
&&
Dt
(
In
[
i
],
"sham"
,
!
0
)},
Ln
=
I
(
""
.
charAt
),
On
=
I
(
""
.
charCodeAt
),
Pn
=
I
(
""
.
slice
),
Nn
=
function
(
t
){
return
function
(
e
,
n
){
var
o
,
i
,
r
=
ze
(
B
(
e
)),
a
=
fe
(
n
),
s
=
r
.
length
;
return
a
<
0
||
a
>=
s
?
t
?
""
:
void
0
:
(
o
=
On
(
r
,
a
))
<
55296
||
o
>
56319
||
a
+
1
===
s
||
(
i
=
On
(
r
,
a
+
1
))
<
56320
||
i
>
57343
?
t
?
Ln
(
r
,
a
)
:
o
:
t
?
Pn
(
r
,
a
,
a
+
2
)
:
i
-
56320
+
(
o
-
55296
<<
10
)
+
65536
}},
Rn
=
(
Nn
(
!
1
),
Nn
(
!
0
)),
Hn
=
function
(
t
,
e
,
n
){
return
e
+
(
n
?
Rn
(
t
,
e
).
length
:
1
)},
Bn
=
g
.
TypeError
,
Mn
=
function
(
t
,
e
){
var
n
=
t
.
exec
;
if
(
q
(
n
)){
var
o
=
y
(
n
,
t
,
e
);
return
null
!==
o
&&
Rt
(
o
),
o
}
if
(
"RegExp"
===
O
(
t
))
return
y
(
An
,
t
,
e
);
throw
Bn
(
"RegExp#exec called on incompatible receiver"
)};
Tn
(
"match"
,(
function
(
t
,
e
,
n
){
return
[
function
(
e
){
var
n
=
B
(
this
),
o
=
null
==
e
?
void
0
:
it
(
e
,
t
);
return
o
?
y
(
o
,
e
,
n
)
:
new
RegExp
(
e
)[
t
](
ze
(
n
))},
function
(
t
){
var
o
=
Rt
(
this
),
i
=
ze
(
t
),
r
=
n
(
e
,
o
,
i
);
if
(
r
.
done
)
return
r
.
value
;
if
(
!
o
.
global
)
return
Mn
(
o
,
i
);
var
a
=
o
.
unicode
;
o
.
lastIndex
=
0
;
for
(
var
s
,
l
=
[],
c
=
0
;
null
!==
(
s
=
Mn
(
o
,
i
));){
var
u
=
ze
(
s
[
0
]);
l
[
c
]
=
u
,
""
===
u
&&
(
o
.
lastIndex
=
Hn
(
i
,
me
(
o
.
lastIndex
),
a
)),
c
++
}
return
0
===
c
?
null
:
l
}]}));
var
qn
=
Array
.
isArray
||
function
(
t
){
return
"Array"
==
O
(
t
)},
Dn
=
function
(
t
,
e
,
n
){
var
o
=
Ct
(
e
);
o
in
t
?
qt
.
f
(
t
,
o
,
j
(
0
,
n
))
:
t
[
o
]
=
n
},
Wn
=
function
(){},
$n
=
[],
Fn
=
$
(
"Reflect"
,
"construct"
),
Yn
=
/^\s*(?:class|function)\b/
,
Un
=
I
(
Yn
.
exec
),
Gn
=!
Yn
.
exec
(
Wn
),
Vn
=
function
(
t
){
if
(
!
q
(
t
))
return
!
1
;
try
{
return
Fn
(
Wn
,
$n
,
t
),
!
0
}
catch
(
t
){
return
!
1
}},
zn
=
function
(
t
){
if
(
!
q
(
t
))
return
!
1
;
switch
(
Ge
(
t
)){
case
"AsyncFunction"
:
case
"GeneratorFunction"
:
case
"AsyncGeneratorFunction"
:
return
!
1
}
try
{
return
Gn
||!!
Un
(
Yn
,
Ut
(
t
))}
catch
(
t
){
return
!
0
}};
zn
.
sham
=!
0
;
var
Jn
=!
Fn
||
b
((
function
(){
var
t
;
return
Vn
(
Vn
.
call
)
||!
Vn
(
Object
)
||!
Vn
((
function
(){
t
=!
0
}))
||
t
}))
?
zn
:
Vn
,
Kn
=
_t
(
"species"
),
Xn
=
g
.
Array
,
Qn
=
function
(
t
,
e
){
return
new
(
function
(
t
){
var
e
;
return
qn
(
t
)
&&
(
e
=
t
.
constructor
,(
Jn
(
e
)
&&
(
e
===
Xn
||
qn
(
e
.
prototype
))
||
D
(
e
)
&&
null
===
(
e
=
e
[
Kn
]))
&&
(
e
=
void
0
)),
void
0
===
e
?
Xn
:
e
}(
t
))(
0
===
e
?
0
:
e
)},
Zn
=
_t
(
"species"
),
to
=
function
(
t
){
return
J
>=
51
||!
b
((
function
(){
var
e
=
[];
return
(
e
.
constructor
=
{})[
Zn
]
=
function
(){
return
{
foo
:
1
}},
1
!==
e
[
t
](
Boolean
).
foo
}))},
eo
=
_t
(
"isConcatSpreadable"
),
no
=
g
.
TypeError
,
oo
=
J
>=
51
||!
b
((
function
(){
var
t
=
[];
return
t
[
eo
]
=!
1
,
t
.
concat
()[
0
]
!==
t
})),
io
=
to
(
"concat"
),
ro
=
function
(
t
){
if
(
!
D
(
t
))
return
!
1
;
var
e
=
t
[
eo
];
return
void
0
!==
e
?!!
e
:
qn
(
t
)};
qe
({
target
:
"Array"
,
proto
:!
0
,
forced
:!
oo
||!
io
},{
concat
:
function
(
t
){
var
e
,
n
,
o
,
i
,
r
,
a
=
ht
(
this
),
s
=
Qn
(
a
,
0
),
l
=
0
;
for
(
e
=-
1
,
o
=
arguments
.
length
;
e
<
o
;
e
++
)
if
(
ro
(
r
=-
1
===
e
?
a
:
arguments
[
e
])){
if
(
l
+
(
i
=
ve
(
r
))
>
9007199254740991
)
throw
no
(
"Maximum allowed index exceeded"
);
for
(
n
=
0
;
n
<
i
;
n
++
,
l
++
)
n
in
r
&&
Dn
(
s
,
l
,
r
[
n
])}
else
{
if
(
l
>=
9007199254740991
)
throw
no
(
"Maximum allowed index exceeded"
);
Dn
(
s
,
l
++
,
r
)}
return
s
.
length
=
l
,
s
}});
var
ao
=
$e
?
{}.
toString
:
function
(){
return
"[object "
+
Ge
(
this
)
+
"]"
};
$e
||
ce
(
Object
.
prototype
,
"toString"
,
ao
,{
unsafe
:!
0
});
var
so
=
le
.
PROPER
,
lo
=
RegExp
.
prototype
,
co
=
lo
.
toString
,
uo
=
I
(
Je
),
ho
=
b
((
function
(){
return
"/a/b"
!=
co
.
call
({
source
:
"a"
,
flags
:
"b"
})})),
fo
=
so
&&
"toString"
!=
co
.
name
;(
ho
||
fo
)
&&
ce
(
RegExp
.
prototype
,
"toString"
,(
function
(){
var
t
=
Rt
(
this
),
e
=
ze
(
t
.
source
),
n
=
t
.
flags
;
return
"/"
+
e
+
"/"
+
ze
(
void
0
===
n
&&
F
(
lo
,
t
)
&&!
(
"flags"
in
lo
)
?
uo
(
t
)
:
n
)}),{
unsafe
:!
0
});
var
po
=
Function
.
prototype
,
go
=
po
.
apply
,
bo
=
po
.
call
,
mo
=
"object"
==
typeof
Reflect
&&
Reflect
.
apply
||
(
v
?
bo
.
bind
(
go
)
:
function
(){
return
bo
.
apply
(
go
,
arguments
)}),
vo
=
_t
(
"match"
),
wo
=
function
(
t
){
var
e
;
return
D
(
t
)
&&
(
void
0
!==
(
e
=
t
[
vo
])
?!!
e
:
"RegExp"
==
O
(
t
))},
yo
=
g
.
TypeError
,
So
=
_t
(
"species"
),
_o
=
g
.
Array
,
xo
=
Math
.
max
,
jo
=
function
(
t
,
e
,
n
){
for
(
var
o
=
ve
(
t
),
i
=
ge
(
e
,
o
),
r
=
ge
(
void
0
===
n
?
o
:
n
,
o
),
a
=
_o
(
xo
(
r
-
i
,
0
)),
s
=
0
;
i
<
r
;
i
++
,
s
++
)
Dn
(
a
,
s
,
t
[
i
]);
return
a
.
length
=
s
,
a
},
Co
=
Ze
.
UNSUPPORTED_Y
,
ko
=
Math
.
min
,
Ao
=
[].
push
,
Eo
=
I
(
/./
.
exec
),
Io
=
I
(
Ao
),
To
=
I
(
""
.
slice
);
function
Lo
(
t
,
e
){
if
(
t
instanceof
SVGElement
){
var
n
=
t
.
getAttribute
(
"class"
)
||
""
;
n
.
match
(
e
)
||
t
.
setAttribute
(
"class"
,
""
.
concat
(
n
,
" "
).
concat
(
e
))}
else
void
0
!==
t
.
classList
?
l
(
e
.
split
(
" "
),(
function
(
e
){
t
.
classList
.
add
(
e
)}))
:
t
.
className
.
match
(
e
)
||
(
t
.
className
+=
" "
.
concat
(
e
))}
function
Oo
(
t
,
e
){
var
n
=
""
;
return
t
.
currentStyle
?
n
=
t
.
currentStyle
[
e
]
:
document
.
defaultView
&&
document
.
defaultView
.
getComputedStyle
&&
(
n
=
document
.
defaultView
.
getComputedStyle
(
t
,
null
).
getPropertyValue
(
e
)),
n
&&
n
.
toLowerCase
?
n
.
toLowerCase
()
:
n
}
function
Po
(
t
){
var
e
=
t
.
element
;
if
(
this
.
_options
.
scrollToElement
){
var
n
=
function
(
t
){
var
e
=
window
.
getComputedStyle
(
t
),
n
=
"absolute"
===
e
.
position
,
o
=
/(auto|scroll)/
;
if
(
"fixed"
===
e
.
position
)
return
document
.
body
;
for
(
var
i
=
t
;
i
=
i
.
parentElement
;)
if
(
e
=
window
.
getComputedStyle
(
i
),(
!
n
||
"static"
!==
e
.
position
)
&&
o
.
test
(
e
.
overflow
+
e
.
overflowY
+
e
.
overflowX
))
return
i
;
return
document
.
body
}(
e
);
n
!==
document
.
body
&&
(
n
.
scrollTop
=
e
.
offsetTop
-
n
.
offsetTop
)}}
function
No
(){
if
(
void
0
!==
window
.
innerWidth
)
return
{
width
:
window
.
innerWidth
,
height
:
window
.
innerHeight
};
var
t
=
document
.
documentElement
;
return
{
width
:
t
.
clientWidth
,
height
:
t
.
clientHeight
}}
function
Ro
(
t
,
e
,
n
){
var
o
,
i
=
e
.
element
;
if
(
"off"
!==
t
&&
this
.
_options
.
scrollToElement
&&
(
o
=
"tooltip"
===
t
?
n
.
getBoundingClientRect
()
:
i
.
getBoundingClientRect
(),
!
function
(
t
){
var
e
=
t
.
getBoundingClientRect
();
return
e
.
top
>=
0
&&
e
.
left
>=
0
&&
e
.
bottom
+
80
<=
window
.
innerHeight
&&
e
.
right
<=
window
.
innerWidth
}(
i
))){
var
r
=
No
().
height
;
o
.
bottom
-
(
o
.
bottom
-
o
.
top
)
<
0
||
i
.
clientHeight
>
r
?
window
.
scrollBy
(
0
,
o
.
top
-
(
r
/
2
-
o
.
height
/
2
)
-
this
.
_options
.
scrollPadding
)
:
window
.
scrollBy
(
0
,
o
.
top
-
(
r
/
2
-
o
.
height
/
2
)
+
this
.
_options
.
scrollPadding
)}}
function
Ho
(
t
){
t
.
setAttribute
(
"role"
,
"button"
),
t
.
tabIndex
=
0
}
Tn
(
"split"
,(
function
(
t
,
e
,
n
){
var
o
;
return
o
=
"c"
==
"abbc"
.
split
(
/(b)*/
)[
1
]
||
4
!=
"test"
.
split
(
/(?:)/
,
-
1
).
length
||
2
!=
"ab"
.
split
(
/(?:ab)*/
).
length
||
4
!=
"."
.
split
(
/(.?)(.?)/
).
length
||
"."
.
split
(
/()()/
).
length
>
1
||
""
.
split
(
/.?/
).
length
?
function
(
t
,
n
){
var
o
=
ze
(
B
(
this
)),
i
=
void
0
===
n
?
4294967295
:
n
>>>
0
;
if
(
0
===
i
)
return
[];
if
(
void
0
===
t
)
return
[
o
];
if
(
!
wo
(
t
))
return
y
(
e
,
o
,
t
,
i
);
for
(
var
r
,
a
,
s
,
l
=
[],
c
=
(
t
.
ignoreCase
?
"i"
:
""
)
+
(
t
.
multiline
?
"m"
:
""
)
+
(
t
.
unicode
?
"u"
:
""
)
+
(
t
.
sticky
?
"y"
:
""
),
u
=
0
,
h
=
new
RegExp
(
t
.
source
,
c
+
"g"
);(
r
=
y
(
An
,
h
,
o
))
&&!
((
a
=
h
.
lastIndex
)
>
u
&&
(
Io
(
l
,
To
(
o
,
u
,
r
.
index
)),
r
.
length
>
1
&&
r
.
index
<
o
.
length
&&
mo
(
Ao
,
l
,
jo
(
r
,
1
)),
s
=
r
[
0
].
length
,
u
=
a
,
l
.
length
>=
i
));)
h
.
lastIndex
===
r
.
index
&&
h
.
lastIndex
++
;
return
u
===
o
.
length
?!
s
&&
Eo
(
h
,
""
)
||
Io
(
l
,
""
)
:
Io
(
l
,
To
(
o
,
u
)),
l
.
length
>
i
?
jo
(
l
,
0
,
i
)
:
l
}
:
"0"
.
split
(
void
0
,
0
).
length
?
function
(
t
,
n
){
return
void
0
===
t
&&
0
===
n
?
[]
:
y
(
e
,
this
,
t
,
n
)}
:
e
,[
function
(
e
,
n
){
var
i
=
B
(
this
),
r
=
null
==
e
?
void
0
:
it
(
e
,
t
);
return
r
?
y
(
r
,
e
,
i
,
n
)
:
y
(
o
,
ze
(
i
),
e
,
n
)},
function
(
t
,
i
){
var
r
=
Rt
(
this
),
a
=
ze
(
t
),
s
=
n
(
o
,
r
,
a
,
i
,
o
!==
e
);
if
(
s
.
done
)
return
s
.
value
;
var
l
=
function
(
t
,
e
){
var
n
,
o
=
Rt
(
t
).
constructor
;
return
void
0
===
o
||
null
==
(
n
=
Rt
(
o
)[
So
])
?
e
:
function
(
t
){
if
(
Jn
(
t
))
return
t
;
throw
yo
(
et
(
t
)
+
" is not a constructor"
)}(
n
)}(
r
,
RegExp
),
c
=
r
.
unicode
,
u
=
(
r
.
ignoreCase
?
"i"
:
""
)
+
(
r
.
multiline
?
"m"
:
""
)
+
(
r
.
unicode
?
"u"
:
""
)
+
(
Co
?
"g"
:
"y"
),
h
=
new
l
(
Co
?
"^(?:"
+
r
.
source
+
")"
:
r
,
u
),
f
=
void
0
===
i
?
4294967295
:
i
>>>
0
;
if
(
0
===
f
)
return
[];
if
(
0
===
a
.
length
)
return
null
===
Mn
(
h
,
a
)
?
[
a
]
:
[];
for
(
var
d
=
0
,
p
=
0
,
g
=
[];
p
<
a
.
length
;){
h
.
lastIndex
=
Co
?
0
:
p
;
var
b
,
m
=
Mn
(
h
,
Co
?
To
(
a
,
p
)
:
a
);
if
(
null
===
m
||
(
b
=
ko
(
me
(
h
.
lastIndex
+
(
Co
?
p
:
0
)),
a
.
length
))
===
d
)
p
=
Hn
(
a
,
p
,
c
);
else
{
if
(
Io
(
g
,
To
(
a
,
d
,
p
)),
g
.
length
===
f
)
return
g
;
for
(
var
v
=
1
;
v
<=
m
.
length
-
1
;
v
++
)
if
(
Io
(
g
,
m
[
v
]),
g
.
length
===
f
)
return
g
;
p
=
d
=
b
}}
return
Io
(
g
,
To
(
a
,
d
)),
g
}]}),
!!
b
((
function
(){
var
t
=
/(?:)/
,
e
=
t
.
exec
;
t
.
exec
=
function
(){
return
e
.
apply
(
this
,
arguments
)};
var
n
=
"ab"
.
split
(
t
);
return
2
!==
n
.
length
||
"a"
!==
n
[
0
]
||
"b"
!==
n
[
1
]})),
Co
);
var
Bo
=
Object
.
assign
,
Mo
=
Object
.
defineProperty
,
qo
=
I
([].
concat
),
Do
=!
Bo
||
b
((
function
(){
if
(
m
&&
1
!==
Bo
({
b
:
1
},
Bo
(
Mo
({},
"a"
,{
enumerable
:!
0
,
get
:
function
(){
Mo
(
this
,
"b"
,{
value
:
3
,
enumerable
:!
1
})}}),{
b
:
2
})).
b
)
return
!
0
;
var
t
=
{},
e
=
{},
n
=
Symbol
(),
o
=
"abcdefghijklmnopqrst"
;
return
t
[
n
]
=
7
,
o
.
split
(
""
).
forEach
((
function
(
t
){
e
[
t
]
=
t
})),
7
!=
Bo
({},
t
)[
n
]
||
tn
(
Bo
({},
e
)).
join
(
""
)
!=
o
}))
?
function
(
t
,
e
){
for
(
var
n
=
ht
(
t
),
o
=
arguments
.
length
,
i
=
1
,
r
=
Ae
.
f
,
a
=
x
.
f
;
o
>
i
;)
for
(
var
s
,
l
=
R
(
arguments
[
i
++
]),
c
=
r
?
qo
(
tn
(
l
),
r
(
l
))
:
tn
(
l
),
u
=
c
.
length
,
h
=
0
;
u
>
h
;)
s
=
c
[
h
++
],
m
&&!
y
(
a
,
l
,
s
)
||
(
n
[
s
]
=
l
[
s
]);
return
n
}
:
Bo
;
function
Wo
(
t
){
var
e
=
t
.
parentNode
;
return
!
(
!
e
||
"HTML"
===
e
.
nodeName
)
&&
(
"fixed"
===
Oo
(
t
,
"position"
)
||
Wo
(
e
))}
function
$o
(
t
,
e
){
var
n
=
document
.
body
,
o
=
document
.
documentElement
,
i
=
window
.
pageYOffset
||
o
.
scrollTop
||
n
.
scrollTop
,
r
=
window
.
pageXOffset
||
o
.
scrollLeft
||
n
.
scrollLeft
;
e
=
e
||
n
;
var
a
=
t
.
getBoundingClientRect
(),
s
=
e
.
getBoundingClientRect
(),
l
=
Oo
(
e
,
"position"
),
c
=
{
width
:
a
.
width
,
height
:
a
.
height
};
return
"body"
!==
e
.
tagName
.
toLowerCase
()
&&
"relative"
===
l
||
"sticky"
===
l
?
Object
.
assign
(
c
,{
top
:
a
.
top
-
s
.
top
,
left
:
a
.
left
-
s
.
left
})
:
Wo
(
t
)
?
Object
.
assign
(
c
,{
top
:
a
.
top
,
left
:
a
.
left
})
:
Object
.
assign
(
c
,{
top
:
a
.
top
+
i
,
left
:
a
.
left
+
r
})}
qe
({
target
:
"Object"
,
stat
:!
0
,
forced
:
Object
.
assign
!==
Do
},{
assign
:
Do
});
var
Fo
=
Math
.
floor
,
Yo
=
I
(
""
.
charAt
),
Uo
=
I
(
""
.
replace
),
Go
=
I
(
""
.
slice
),
Vo
=
/\$([$&'`]|\d{1,2}|<[^>]*>)/g
,
zo
=
/\$([$&'`]|\d{1,2})/g
,
Jo
=
function
(
t
,
e
,
n
,
o
,
i
,
r
){
var
a
=
n
+
t
.
length
,
s
=
o
.
length
,
l
=
zo
;
return
void
0
!==
i
&&
(
i
=
ht
(
i
),
l
=
Vo
),
Uo
(
r
,
l
,(
function
(
r
,
l
){
var
c
;
switch
(
Yo
(
l
,
0
)){
case
"$"
:
return
"$"
;
case
"&"
:
return
t
;
case
"`"
:
return
Go
(
e
,
0
,
n
);
case
"'"
:
return
Go
(
e
,
a
);
case
"<"
:
c
=
i
[
Go
(
l
,
1
,
-
1
)];
break
;
default
:
var
u
=+
l
;
if
(
0
===
u
)
return
r
;
if
(
u
>
s
){
var
h
=
Fo
(
u
/
10
);
return
0
===
h
?
r
:
h
<=
s
?
void
0
===
o
[
h
-
1
]
?
Yo
(
l
,
1
)
:
o
[
h
-
1
]
+
Yo
(
l
,
1
)
:
r
}
c
=
o
[
u
-
1
]}
return
void
0
===
c
?
""
:
c
}))},
Ko
=
_t
(
"replace"
),
Xo
=
Math
.
max
,
Qo
=
Math
.
min
,
Zo
=
I
([].
concat
),
ti
=
I
([].
push
),
ei
=
I
(
""
.
indexOf
),
ni
=
I
(
""
.
slice
),
oi
=
"$0"
===
"a"
.
replace
(
/./
,
"$0"
),
ii
=!!
/./
[
Ko
]
&&
""
===
/./
[
Ko
](
"a"
,
"$0"
);
function
ri
(
t
,
e
){
if
(
t
instanceof
SVGElement
){
var
n
=
t
.
getAttribute
(
"class"
)
||
""
;
t
.
setAttribute
(
"class"
,
n
.
replace
(
e
,
""
).
replace
(
/^\s+|\s+$/g
,
""
))}
else
t
.
className
=
t
.
className
.
replace
(
e
,
""
).
replace
(
/^\s+|\s+$/g
,
""
)}
function
ai
(
t
,
e
){
var
n
=
""
;
if
(
t
.
style
.
cssText
&&
(
n
+=
t
.
style
.
cssText
),
"string"
==
typeof
e
)
n
+=
e
;
else
for
(
var
o
in
e
)
n
+=
""
.
concat
(
o
,
":"
).
concat
(
e
[
o
],
";"
);
t
.
style
.
cssText
=
n
}
function
si
(
t
){
if
(
t
){
if
(
!
this
.
_introItems
[
this
.
_currentStep
])
return
;
var
e
=
this
.
_introItems
[
this
.
_currentStep
],
n
=
$o
(
e
.
element
,
this
.
_targetElement
),
o
=
this
.
_options
.
helperElementPadding
;
Wo
(
e
.
element
)
?
Lo
(
t
,
"introjs-fixedTooltip"
)
:
ri
(
t
,
"introjs-fixedTooltip"
),
"floating"
===
e
.
position
&&
(
o
=
0
),
ai
(
t
,{
width
:
""
.
concat
(
n
.
width
+
o
,
"px"
),
height
:
""
.
concat
(
n
.
height
+
o
,
"px"
),
top
:
""
.
concat
(
n
.
top
-
o
/
2
,
"px"
),
left
:
""
.
concat
(
n
.
left
-
o
/
2
,
"px"
)})}}
Tn
(
"replace"
,(
function
(
t
,
e
,
n
){
var
o
=
ii
?
"$"
:
"$0"
;
return
[
function
(
t
,
n
){
var
o
=
B
(
this
),
i
=
null
==
t
?
void
0
:
it
(
t
,
Ko
);
return
i
?
y
(
i
,
t
,
o
,
n
)
:
y
(
e
,
ze
(
o
),
t
,
n
)},
function
(
t
,
i
){
var
r
=
Rt
(
this
),
a
=
ze
(
t
);
if
(
"string"
==
typeof
i
&&-
1
===
ei
(
i
,
o
)
&&-
1
===
ei
(
i
,
"$<"
)){
var
s
=
n
(
e
,
r
,
a
,
i
);
if
(
s
.
done
)
return
s
.
value
}
var
l
=
q
(
i
);
l
||
(
i
=
ze
(
i
));
var
c
=
r
.
global
;
if
(
c
){
var
u
=
r
.
unicode
;
r
.
lastIndex
=
0
}
for
(
var
h
=
[];;){
var
f
=
Mn
(
r
,
a
);
if
(
null
===
f
)
break
;
if
(
ti
(
h
,
f
),
!
c
)
break
;
""
===
ze
(
f
[
0
])
&&
(
r
.
lastIndex
=
Hn
(
a
,
me
(
r
.
lastIndex
),
u
))}
for
(
var
d
,
p
=
""
,
g
=
0
,
b
=
0
;
b
<
h
.
length
;
b
++
){
for
(
var
m
=
ze
((
f
=
h
[
b
])[
0
]),
v
=
Xo
(
Qo
(
fe
(
f
.
index
),
a
.
length
),
0
),
w
=
[],
y
=
1
;
y
<
f
.
length
;
y
++
)
ti
(
w
,
void
0
===
(
d
=
f
[
y
])
?
d
:
String
(
d
));
var
S
=
f
.
groups
;
if
(
l
){
var
_
=
Zo
([
m
],
w
,
v
,
a
);
void
0
!==
S
&&
ti
(
_
,
S
);
var
x
=
ze
(
mo
(
i
,
void
0
,
_
))}
else
x
=
Jo
(
m
,
a
,
v
,
w
,
S
,
i
);
v
>=
g
&&
(
p
+=
ni
(
a
,
g
,
v
)
+
x
,
g
=
v
+
m
.
length
)}
return
p
+
ni
(
a
,
g
)}]}),
!!
b
((
function
(){
var
t
=
/./
;
return
t
.
exec
=
function
(){
var
t
=
[];
return
t
.
groups
=
{
a
:
"7"
},
t
},
"7"
!==
""
.
replace
(
t
,
"$<a>"
)}))
||!
oi
||
ii
);
var
li
=
_t
(
"unscopables"
),
ci
=
Array
.
prototype
;
null
==
ci
[
li
]
&&
qt
.
f
(
ci
,
li
,{
configurable
:!
0
,
value
:
hn
(
null
)});
var
ui
=
ye
.
includes
;
qe
({
target
:
"Array"
,
proto
:!
0
},{
includes
:
function
(
t
){
return
ui
(
this
,
t
,
arguments
.
length
>
1
?
arguments
[
1
]
:
void
0
)}}),
ci
[
li
].
includes
=!
0
;
var
hi
=
I
([].
slice
),
fi
=
to
(
"slice"
),
di
=
_t
(
"species"
),
pi
=
g
.
Array
,
gi
=
Math
.
max
;
qe
({
target
:
"Array"
,
proto
:!
0
,
forced
:!
fi
},{
slice
:
function
(
t
,
e
){
var
n
,
o
,
i
,
r
=
M
(
this
),
a
=
ve
(
r
),
s
=
ge
(
t
,
a
),
l
=
ge
(
void
0
===
e
?
a
:
e
,
a
);
if
(
qn
(
r
)
&&
(
n
=
r
.
constructor
,(
Jn
(
n
)
&&
(
n
===
pi
||
qn
(
n
.
prototype
))
||
D
(
n
)
&&
null
===
(
n
=
n
[
di
]))
&&
(
n
=
void
0
),
n
===
pi
||
void
0
===
n
))
return
hi
(
r
,
s
,
l
);
for
(
o
=
new
(
void
0
===
n
?
pi
:
n
)(
gi
(
l
-
s
,
0
)),
i
=
0
;
s
<
l
;
s
++
,
i
++
)
s
in
r
&&
Dn
(
o
,
i
,
r
[
s
]);
return
o
.
length
=
i
,
o
}});
var
bi
=
g
.
TypeError
,
mi
=
function
(
t
){
if
(
wo
(
t
))
throw
bi
(
"The method doesn't accept regular expressions"
);
return
t
},
vi
=
_t
(
"match"
),
wi
=
I
(
""
.
indexOf
);
qe
({
target
:
"String"
,
proto
:!
0
,
forced
:!
function
(
t
){
var
e
=
/./
;
try
{
"/./"
[
t
](
e
)}
catch
(
n
){
try
{
return
e
[
vi
]
=!
1
,
"/./"
[
t
](
e
)}
catch
(
t
){}}
return
!
1
}(
"includes"
)},{
includes
:
function
(
t
){
return
!!~
wi
(
ze
(
B
(
this
)),
ze
(
mi
(
t
)),
arguments
.
length
>
1
?
arguments
[
1
]
:
void
0
)}});
var
yi
=
function
(
t
,
e
){
var
n
=
[][
t
];
return
!!
n
&&
b
((
function
(){
n
.
call
(
null
,
e
||
function
(){
return
1
},
1
)}))},
Si
=
I
([].
join
),
_i
=
R
!=
Object
,
xi
=
yi
(
"join"
,
","
);
qe
({
target
:
"Array"
,
proto
:!
0
,
forced
:
_i
||!
xi
},{
join
:
function
(
t
){
return
Si
(
M
(
this
),
void
0
===
t
?
","
:
t
)}});
var
ji
=
I
(
I
.
bind
),
Ci
=
I
([].
push
),
ki
=
function
(
t
){
var
e
=
1
==
t
,
n
=
2
==
t
,
o
=
3
==
t
,
i
=
4
==
t
,
r
=
6
==
t
,
a
=
7
==
t
,
s
=
5
==
t
||
r
;
return
function
(
l
,
c
,
u
,
h
){
for
(
var
f
,
d
,
p
=
ht
(
l
),
g
=
R
(
p
),
b
=
function
(
t
,
e
){
return
ot
(
t
),
void
0
===
e
?
t
:
v
?
ji
(
t
,
e
)
:
function
(){
return
t
.
apply
(
e
,
arguments
)}}(
c
,
u
),
m
=
ve
(
g
),
w
=
0
,
y
=
h
||
Qn
,
S
=
e
?
y
(
l
,
m
)
:
n
||
a
?
y
(
l
,
0
)
:
void
0
;
m
>
w
;
w
++
)
if
((
s
||
w
in
g
)
&&
(
d
=
b
(
f
=
g
[
w
],
w
,
p
),
t
))
if
(
e
)
S
[
w
]
=
d
;
else
if
(
d
)
switch
(
t
){
case
3
:
return
!
0
;
case
5
:
return
f
;
case
6
:
return
w
;
case
2
:
Ci
(
S
,
f
)}
else
switch
(
t
){
case
4
:
return
!
1
;
case
7
:
Ci
(
S
,
f
)}
return
r
?-
1
:
o
||
i
?
i
:
S
}},
Ai
=
{
forEach
:
ki
(
0
),
map
:
ki
(
1
),
filter
:
ki
(
2
),
some
:
ki
(
3
),
every
:
ki
(
4
),
find
:
ki
(
5
),
findIndex
:
ki
(
6
),
filterReject
:
ki
(
7
)},
Ei
=
Ai
.
filter
;
function
Ii
(
t
,
e
,
n
,
o
,
i
){
return
t
.
left
+
e
+
n
.
width
>
o
.
width
?
(
i
.
style
.
left
=
""
.
concat
(
o
.
width
-
n
.
width
-
t
.
left
,
"px"
),
!
1
)
:
(
i
.
style
.
left
=
""
.
concat
(
e
,
"px"
),
!
0
)}
function
Ti
(
t
,
e
,
n
,
o
){
return
t
.
left
+
t
.
width
-
e
-
n
.
width
<
0
?
(
o
.
style
.
left
=
""
.
concat
(
-
t
.
left
,
"px"
),
!
1
)
:
(
o
.
style
.
right
=
""
.
concat
(
e
,
"px"
),
!
0
)}
qe
({
target
:
"Array"
,
proto
:!
0
,
forced
:!
to
(
"filter"
)},{
filter
:
function
(
t
){
return
Ei
(
this
,
t
,
arguments
.
length
>
1
?
arguments
[
1
]
:
void
0
)}});
var
Li
=
to
(
"splice"
),
Oi
=
g
.
TypeError
,
Pi
=
Math
.
max
,
Ni
=
Math
.
min
;
function
Ri
(
t
,
e
){
t
.
includes
(
e
)
&&
t
.
splice
(
t
.
indexOf
(
e
),
1
)}
function
Hi
(
t
,
e
,
n
){
var
o
=
this
.
_options
.
positionPrecedence
.
slice
(),
i
=
No
(),
r
=
$o
(
e
).
height
+
10
,
a
=
$o
(
e
).
width
+
20
,
s
=
t
.
getBoundingClientRect
(),
l
=
"floating"
;
s
.
bottom
+
r
>
i
.
height
&&
Ri
(
o
,
"bottom"
),
s
.
top
-
r
<
0
&&
Ri
(
o
,
"top"
),
s
.
right
+
a
>
i
.
width
&&
Ri
(
o
,
"right"
),
s
.
left
-
a
<
0
&&
Ri
(
o
,
"left"
);
var
c
,
u
,
h
=-
1
!==
(
u
=
(
c
=
n
||
""
).
indexOf
(
"-"
))
?
c
.
substr
(
u
)
:
""
;
return
n
&&
(
n
=
n
.
split
(
"-"
)[
0
]),
o
.
length
&&
(
l
=
o
.
includes
(
n
)
?
n
:
o
[
0
]),[
"top"
,
"bottom"
].
includes
(
l
)
&&
(
l
+=
function
(
t
,
e
,
n
,
o
){
var
i
=
n
.
width
,
r
=
e
/
2
,
a
=
Math
.
min
(
i
,
window
.
screen
.
width
),
s
=
[
"-left-aligned"
,
"-middle-aligned"
,
"-right-aligned"
];
return
a
-
t
<
e
&&
Ri
(
s
,
"-left-aligned"
),(
t
<
r
||
a
-
t
<
r
)
&&
Ri
(
s
,
"-middle-aligned"
),
t
<
e
&&
Ri
(
s
,
"-right-aligned"
),
s
.
length
?
s
.
includes
(
o
)
?
o
:
s
[
0
]
:
"-middle-aligned"
}(
s
.
left
,
a
,
i
,
h
)),
l
}
function
Bi
(
t
,
e
,
n
,
o
){
var
i
,
r
,
a
,
s
,
l
,
c
=
""
;
if
(
o
=
o
||!
1
,
e
.
style
.
top
=
null
,
e
.
style
.
right
=
null
,
e
.
style
.
bottom
=
null
,
e
.
style
.
left
=
null
,
e
.
style
.
marginLeft
=
null
,
e
.
style
.
marginTop
=
null
,
n
.
style
.
display
=
"inherit"
,
this
.
_introItems
[
this
.
_currentStep
])
switch
(
c
=
"string"
==
typeof
(
i
=
this
.
_introItems
[
this
.
_currentStep
]).
tooltipClass
?
i
.
tooltipClass
:
this
.
_options
.
tooltipClass
,
e
.
className
=
[
"introjs-tooltip"
,
c
].
filter
(
Boolean
).
join
(
" "
),
e
.
setAttribute
(
"role"
,
"dialog"
),
"floating"
!==
(
l
=
this
.
_introItems
[
this
.
_currentStep
].
position
)
&&
this
.
_options
.
autoPosition
&&
(
l
=
Hi
.
call
(
this
,
t
,
e
,
l
)),
a
=
$o
(
t
),
r
=
$o
(
e
),
s
=
No
(),
Lo
(
e
,
"introjs-"
.
concat
(
l
)),
l
){
case
"top-right-aligned"
:
n
.
className
=
"introjs-arrow bottom-right"
;
var
u
=
0
;
Ti
(
a
,
u
,
r
,
e
),
e
.
style
.
bottom
=
""
.
concat
(
a
.
height
+
20
,
"px"
);
break
;
case
"top-middle-aligned"
:
n
.
className
=
"introjs-arrow bottom-middle"
;
var
h
=
a
.
width
/
2
-
r
.
width
/
2
;
o
&&
(
h
+=
5
),
Ti
(
a
,
h
,
r
,
e
)
&&
(
e
.
style
.
right
=
null
,
Ii
(
a
,
h
,
r
,
s
,
e
)),
e
.
style
.
bottom
=
""
.
concat
(
a
.
height
+
20
,
"px"
);
break
;
case
"top-left-aligned"
:
case
"top"
:
n
.
className
=
"introjs-arrow bottom"
,
Ii
(
a
,
o
?
0
:
15
,
r
,
s
,
e
),
e
.
style
.
bottom
=
""
.
concat
(
a
.
height
+
20
,
"px"
);
break
;
case
"right"
:
e
.
style
.
left
=
""
.
concat
(
a
.
width
+
20
,
"px"
),
a
.
top
+
r
.
height
>
s
.
height
?
(
n
.
className
=
"introjs-arrow left-bottom"
,
e
.
style
.
top
=
"-"
.
concat
(
r
.
height
-
a
.
height
-
20
,
"px"
))
:
n
.
className
=
"introjs-arrow left"
;
break
;
case
"left"
:
o
||!
0
!==
this
.
_options
.
showStepNumbers
||
(
e
.
style
.
top
=
"15px"
),
a
.
top
+
r
.
height
>
s
.
height
?
(
e
.
style
.
top
=
"-"
.
concat
(
r
.
height
-
a
.
height
-
20
,
"px"
),
n
.
className
=
"introjs-arrow right-bottom"
)
:
n
.
className
=
"introjs-arrow right"
,
e
.
style
.
right
=
""
.
concat
(
a
.
width
+
20
,
"px"
);
break
;
case
"floating"
:
n
.
style
.
display
=
"none"
,
e
.
style
.
left
=
"50%"
,
e
.
style
.
top
=
"50%"
,
e
.
style
.
marginLeft
=
"-"
.
concat
(
r
.
width
/
2
,
"px"
),
e
.
style
.
marginTop
=
"-"
.
concat
(
r
.
height
/
2
,
"px"
);
break
;
case
"bottom-right-aligned"
:
n
.
className
=
"introjs-arrow top-right"
,
Ti
(
a
,
u
=
0
,
r
,
e
),
e
.
style
.
top
=
""
.
concat
(
a
.
height
+
20
,
"px"
);
break
;
case
"bottom-middle-aligned"
:
n
.
className
=
"introjs-arrow top-middle"
,
h
=
a
.
width
/
2
-
r
.
width
/
2
,
o
&&
(
h
+=
5
),
Ti
(
a
,
h
,
r
,
e
)
&&
(
e
.
style
.
right
=
null
,
Ii
(
a
,
h
,
r
,
s
,
e
)),
e
.
style
.
top
=
""
.
concat
(
a
.
height
+
20
,
"px"
);
break
;
default
:
n
.
className
=
"introjs-arrow top"
,
Ii
(
a
,
0
,
r
,
s
,
e
),
e
.
style
.
top
=
""
.
concat
(
a
.
height
+
20
,
"px"
)}}
function
Mi
(){
l
(
document
.
querySelectorAll
(
".introjs-showElement"
),(
function
(
t
){
ri
(
t
,
/introjs-[a-zA-Z]+/g
)}))}
function
qi
(
t
,
e
){
var
n
=
document
.
createElement
(
t
);
e
=
e
||
{};
var
o
=
/^(?:role|data-|aria-)/
;
for
(
var
i
in
e
){
var
r
=
e
[
i
];
"style"
===
i
?
ai
(
n
,
r
)
:
i
.
match
(
o
)
?
n
.
setAttribute
(
i
,
r
)
:
n
[
i
]
=
r
}
return
n
}
function
Di
(
t
,
e
,
n
){
if
(
n
){
var
o
=
e
.
style
.
opacity
||
"1"
;
ai
(
e
,{
opacity
:
"0"
}),
window
.
setTimeout
((
function
(){
ai
(
e
,{
opacity
:
o
})}),
10
)}
t
.
appendChild
(
e
)}
function
Wi
(){
return
parseInt
(
this
.
_currentStep
+
1
,
10
)
/
this
.
_introItems
.
length
*
100
}
function
$i
(){
var
t
=
document
.
querySelector
(
".introjs-disableInteraction"
);
null
===
t
&&
(
t
=
qi
(
"div"
,{
className
:
"introjs-disableInteraction"
}),
this
.
_targetElement
.
appendChild
(
t
)),
si
.
call
(
this
,
t
)}
function
Fi
(
t
){
var
e
=
this
,
n
=
qi
(
"div"
,{
className
:
"introjs-bullets"
});
!
1
===
this
.
_options
.
showBullets
&&
(
n
.
style
.
display
=
"none"
);
var
o
=
qi
(
"ul"
);
o
.
setAttribute
(
"role"
,
"tablist"
);
var
i
=
function
(){
e
.
goToStep
(
this
.
getAttribute
(
"data-step-number"
))};
return
l
(
this
.
_introItems
,(
function
(
e
,
n
){
var
r
=
e
.
step
,
a
=
qi
(
"li"
),
s
=
qi
(
"a"
);
a
.
setAttribute
(
"role"
,
"presentation"
),
s
.
setAttribute
(
"role"
,
"tab"
),
s
.
onclick
=
i
,
n
===
t
.
step
-
1
&&
(
s
.
className
=
"active"
),
Ho
(
s
),
s
.
innerHTML
=
" "
,
s
.
setAttribute
(
"data-step-number"
,
r
),
a
.
appendChild
(
s
),
o
.
appendChild
(
a
)})),
n
.
appendChild
(
o
),
n
}
function
Yi
(
t
,
e
){
if
(
this
.
_options
.
showBullets
){
var
n
=
document
.
querySelector
(
".introjs-bullets"
);
n
&&
n
.
parentNode
.
replaceChild
(
Fi
.
call
(
this
,
e
),
n
)}}
function
Ui
(
t
,
e
){
this
.
_options
.
showBullets
&&
(
t
.
querySelector
(
".introjs-bullets li > a.active"
).
className
=
""
,
t
.
querySelector
(
'.introjs-bullets li > a[data-step-number="'
.
concat
(
e
.
step
,
'"]'
)).
className
=
"active"
)}
function
Gi
(){
var
t
=
qi
(
"div"
);
t
.
className
=
"introjs-progress"
,
!
1
===
this
.
_options
.
showProgress
&&
(
t
.
style
.
display
=
"none"
);
var
e
=
qi
(
"div"
,{
className
:
"introjs-progressbar"
});
return
this
.
_options
.
progressBarAdditionalClass
&&
(
e
.
className
+=
" "
+
this
.
_options
.
progressBarAdditionalClass
),
e
.
setAttribute
(
"role"
,
"progress"
),
e
.
setAttribute
(
"aria-valuemin"
,
0
),
e
.
setAttribute
(
"aria-valuemax"
,
100
),
e
.
setAttribute
(
"aria-valuenow"
,
Wi
.
call
(
this
)),
e
.
style
.
cssText
=
"width:"
.
concat
(
Wi
.
call
(
this
),
"%;"
),
t
.
appendChild
(
e
),
t
}
function
Vi
(
t
){
t
.
querySelector
(
".introjs-progress .introjs-progressbar"
).
style
.
cssText
=
"width:"
.
concat
(
Wi
.
call
(
this
),
"%;"
),
t
.
querySelector
(
".introjs-progress .introjs-progressbar"
).
setAttribute
(
"aria-valuenow"
,
Wi
.
call
(
this
))}
function
zi
(
t
){
var
e
=
this
;
void
0
!==
this
.
_introChangeCallback
&&
this
.
_introChangeCallback
.
call
(
this
,
t
.
element
);
var
n
,
o
,
i
,
r
=
this
,
a
=
document
.
querySelector
(
".introjs-helperLayer"
),
s
=
document
.
querySelector
(
".introjs-tooltipReferenceLayer"
),
l
=
"introjs-helperLayer"
;
if
(
"string"
==
typeof
t
.
highlightClass
&&
(
l
+=
" "
.
concat
(
t
.
highlightClass
)),
"string"
==
typeof
this
.
_options
.
highlightClass
&&
(
l
+=
" "
.
concat
(
this
.
_options
.
highlightClass
)),
null
!==
a
&&
null
!==
s
){
var
c
=
s
.
querySelector
(
".introjs-helperNumberLayer"
),
u
=
s
.
querySelector
(
".introjs-tooltiptext"
),
h
=
s
.
querySelector
(
".introjs-tooltip-title"
),
f
=
s
.
querySelector
(
".introjs-arrow"
),
d
=
s
.
querySelector
(
".introjs-tooltip"
);
i
=
s
.
querySelector
(
".introjs-skipbutton"
),
o
=
s
.
querySelector
(
".introjs-prevbutton"
),
n
=
s
.
querySelector
(
".introjs-nextbutton"
),
a
.
className
=
l
,
d
.
style
.
opacity
=
0
,
d
.
style
.
display
=
"none"
,
Po
.
call
(
r
,
t
),
si
.
call
(
r
,
a
),
si
.
call
(
r
,
s
),
Mi
(),
r
.
_lastShowElementTimer
&&
window
.
clearTimeout
(
r
.
_lastShowElementTimer
),
r
.
_lastShowElementTimer
=
window
.
setTimeout
((
function
(){
null
!==
c
&&
(
c
.
innerHTML
=
""
.
concat
(
t
.
step
,
" "
).
concat
(
e
.
_options
.
stepNumbersOfLabel
,
" "
).
concat
(
e
.
_introItems
.
length
)),
u
.
innerHTML
=
t
.
intro
,
h
.
innerHTML
=
t
.
title
,
d
.
style
.
display
=
"block"
,
Bi
.
call
(
r
,
t
.
element
,
d
,
f
),
Ui
.
call
(
r
,
s
,
t
),
Vi
.
call
(
r
,
s
),
d
.
style
.
opacity
=
1
,(
null
!=
n
&&
/introjs-donebutton/gi
.
test
(
n
.
className
)
||
null
!=
n
)
&&
n
.
focus
(),
Ro
.
call
(
r
,
t
.
scrollTo
,
t
,
u
)}),
350
)}
else
{
var
p
=
qi
(
"div"
,{
className
:
l
}),
g
=
qi
(
"div"
,{
className
:
"introjs-tooltipReferenceLayer"
}),
b
=
qi
(
"div"
,{
className
:
"introjs-arrow"
}),
m
=
qi
(
"div"
,{
className
:
"introjs-tooltip"
}),
v
=
qi
(
"div"
,{
className
:
"introjs-tooltiptext"
}),
w
=
qi
(
"div"
,{
className
:
"introjs-tooltip-header"
}),
y
=
qi
(
"h1"
,{
className
:
"introjs-tooltip-title"
}),
S
=
qi
(
"div"
);
if
(
ai
(
p
,{
"box-shadow"
:
"0 0 1px 2px rgba(33, 33, 33, 0.8), rgba(33, 33, 33, "
.
concat
(
r
.
_options
.
overlayOpacity
.
toString
(),
") 0 0 0 5000px"
)}),
Po
.
call
(
r
,
t
),
si
.
call
(
r
,
p
),
si
.
call
(
r
,
g
),
Di
(
this
.
_targetElement
,
p
,
!
0
),
Di
(
this
.
_targetElement
,
g
),
v
.
innerHTML
=
t
.
intro
,
y
.
innerHTML
=
t
.
title
,
S
.
className
=
"introjs-tooltipbuttons"
,
!
1
===
this
.
_options
.
showButtons
&&
(
S
.
style
.
display
=
"none"
),
w
.
appendChild
(
y
),
m
.
appendChild
(
w
),
m
.
appendChild
(
v
),
this
.
_options
.
dontShowAgain
){
var
_
=
qi
(
"div"
,{
className
:
"introjs-dontShowAgain"
}),
x
=
qi
(
"input"
,{
type
:
"checkbox"
,
id
:
"introjs-dontShowAgain"
,
name
:
"introjs-dontShowAgain"
});
x
.
onchange
=
function
(
t
){
e
.
setDontShowAgain
(
t
.
target
.
checked
)};
var
j
=
qi
(
"label"
,{
htmlFor
:
"introjs-dontShowAgain"
});
j
.
innerText
=
this
.
_options
.
dontShowAgainLabel
,
_
.
appendChild
(
x
),
_
.
appendChild
(
j
),
m
.
appendChild
(
_
)}
m
.
appendChild
(
Fi
.
call
(
this
,
t
)),
m
.
appendChild
(
Gi
.
call
(
this
));
var
C
=
qi
(
"div"
);
!
0
===
this
.
_options
.
showStepNumbers
&&
(
C
.
className
=
"introjs-helperNumberLayer"
,
C
.
innerHTML
=
""
.
concat
(
t
.
step
,
" "
).
concat
(
this
.
_options
.
stepNumbersOfLabel
,
" "
).
concat
(
this
.
_introItems
.
length
),
m
.
appendChild
(
C
)),
m
.
appendChild
(
b
),
g
.
appendChild
(
m
),(
n
=
qi
(
"a"
)).
onclick
=
function
(){
r
.
_introItems
.
length
-
1
!==
r
.
_currentStep
?
Xi
.
call
(
r
)
:
/introjs-donebutton/gi
.
test
(
n
.
className
)
&&
(
"function"
==
typeof
r
.
_introCompleteCallback
&&
r
.
_introCompleteCallback
.
call
(
r
,
r
.
_currentStep
,
"done"
),
Hr
.
call
(
r
,
r
.
_targetElement
))},
Ho
(
n
),
n
.
innerHTML
=
this
.
_options
.
nextLabel
,(
o
=
qi
(
"a"
)).
onclick
=
function
(){
0
!==
r
.
_currentStep
&&
Qi
.
call
(
r
)},
Ho
(
o
),
o
.
innerHTML
=
this
.
_options
.
prevLabel
,
Ho
(
i
=
qi
(
"a"
,{
className
:
"introjs-skipbutton"
})),
i
.
innerHTML
=
this
.
_options
.
skipLabel
,
i
.
onclick
=
function
(){
r
.
_introItems
.
length
-
1
===
r
.
_currentStep
&&
"function"
==
typeof
r
.
_introCompleteCallback
&&
r
.
_introCompleteCallback
.
call
(
r
,
r
.
_currentStep
,
"skip"
),
"function"
==
typeof
r
.
_introSkipCallback
&&
r
.
_introSkipCallback
.
call
(
r
),
Hr
.
call
(
r
,
r
.
_targetElement
)},
w
.
appendChild
(
i
),
this
.
_introItems
.
length
>
1
&&
S
.
appendChild
(
o
),
S
.
appendChild
(
n
),
m
.
appendChild
(
S
),
Bi
.
call
(
r
,
t
.
element
,
m
,
b
),
Ro
.
call
(
this
,
t
.
scrollTo
,
t
,
m
)}
var
k
=
r
.
_targetElement
.
querySelector
(
".introjs-disableInteraction"
);
k
&&
k
.
parentNode
.
removeChild
(
k
),
t
.
disableInteraction
&&
$i
.
call
(
r
),
0
===
this
.
_currentStep
&&
this
.
_introItems
.
length
>
1
?
(
null
!=
n
&&
(
n
.
className
=
""
.
concat
(
this
.
_options
.
buttonClass
,
" introjs-nextbutton"
),
n
.
innerHTML
=
this
.
_options
.
nextLabel
),
!
0
===
this
.
_options
.
hidePrev
?
(
null
!=
o
&&
(
o
.
className
=
""
.
concat
(
this
.
_options
.
buttonClass
,
" introjs-prevbutton introjs-hidden"
)),
null
!=
n
&&
Lo
(
n
,
"introjs-fullbutton"
))
:
null
!=
o
&&
(
o
.
className
=
""
.
concat
(
this
.
_options
.
buttonClass
,
" introjs-prevbutton introjs-disabled"
)))
:
this
.
_introItems
.
length
-
1
===
this
.
_currentStep
||
1
===
this
.
_introItems
.
length
?
(
null
!=
o
&&
(
o
.
className
=
""
.
concat
(
this
.
_options
.
buttonClass
,
" introjs-prevbutton"
)),
!
0
===
this
.
_options
.
hideNext
?
(
null
!=
n
&&
(
n
.
className
=
""
.
concat
(
this
.
_options
.
buttonClass
,
" introjs-nextbutton introjs-hidden"
)),
null
!=
o
&&
Lo
(
o
,
"introjs-fullbutton"
))
:
null
!=
n
&&
(
!
0
===
this
.
_options
.
nextToDone
?
(
n
.
innerHTML
=
this
.
_options
.
doneLabel
,
Lo
(
n
,
""
.
concat
(
this
.
_options
.
buttonClass
,
" introjs-nextbutton introjs-donebutton"
)))
:
n
.
className
=
""
.
concat
(
this
.
_options
.
buttonClass
,
" introjs-nextbutton introjs-disabled"
)))
:
(
null
!=
o
&&
(
o
.
className
=
""
.
concat
(
this
.
_options
.
buttonClass
,
" introjs-prevbutton"
)),
null
!=
n
&&
(
n
.
className
=
""
.
concat
(
this
.
_options
.
buttonClass
,
" introjs-nextbutton"
),
n
.
innerHTML
=
this
.
_options
.
nextLabel
)),
null
!=
o
&&
o
.
setAttribute
(
"role"
,
"button"
),
null
!=
n
&&
n
.
setAttribute
(
"role"
,
"button"
),
null
!=
i
&&
i
.
setAttribute
(
"role"
,
"button"
),
null
!=
n
&&
n
.
focus
(),
function
(
t
){
var
e
=
t
.
element
;
Lo
(
e
,
"introjs-showElement"
);
var
n
=
Oo
(
e
,
"position"
);
"absolute"
!==
n
&&
"relative"
!==
n
&&
"sticky"
!==
n
&&
"fixed"
!==
n
&&
Lo
(
e
,
"introjs-relativePosition"
)}(
t
),
void
0
!==
this
.
_introAfterChangeCallback
&&
this
.
_introAfterChangeCallback
.
call
(
this
,
t
.
element
)}
function
Ji
(
t
){
this
.
_currentStep
=
t
-
2
,
void
0
!==
this
.
_introItems
&&
Xi
.
call
(
this
)}
function
Ki
(
t
){
this
.
_currentStepNumber
=
t
,
void
0
!==
this
.
_introItems
&&
Xi
.
call
(
this
)}
function
Xi
(){
var
t
=
this
;
this
.
_direction
=
"forward"
,
void
0
!==
this
.
_currentStepNumber
&&
l
(
this
.
_introItems
,(
function
(
e
,
n
){
e
.
step
===
t
.
_currentStepNumber
&&
(
t
.
_currentStep
=
n
-
1
,
t
.
_currentStepNumber
=
void
0
)})),
void
0
===
this
.
_currentStep
?
this
.
_currentStep
=
0
:++
this
.
_currentStep
;
var
e
=
this
.
_introItems
[
this
.
_currentStep
],
n
=!
0
;
return
void
0
!==
this
.
_introBeforeChangeCallback
&&
(
n
=
this
.
_introBeforeChangeCallback
.
call
(
this
,
e
&&
e
.
element
)),
!
1
===
n
?
(
--
this
.
_currentStep
,
!
1
)
:
this
.
_introItems
.
length
<=
this
.
_currentStep
?
(
"function"
==
typeof
this
.
_introCompleteCallback
&&
this
.
_introCompleteCallback
.
call
(
this
,
this
.
_currentStep
,
"end"
),
void
Hr
.
call
(
this
,
this
.
_targetElement
))
:
void
zi
.
call
(
this
,
e
)}
function
Qi
(){
if
(
this
.
_direction
=
"backward"
,
0
===
this
.
_currentStep
)
return
!
1
;
--
this
.
_currentStep
;
var
t
=
this
.
_introItems
[
this
.
_currentStep
],
e
=!
0
;
if
(
void
0
!==
this
.
_introBeforeChangeCallback
&&
(
e
=
this
.
_introBeforeChangeCallback
.
call
(
this
,
t
&&
t
.
element
)),
!
1
===
e
)
return
++
this
.
_currentStep
,
!
1
;
zi
.
call
(
this
,
t
)}
function
Zi
(){
return
this
.
_currentStep
}
function
tr
(
t
){
var
e
=
void
0
===
t
.
code
?
t
.
which
:
t
.
code
;
if
(
null
===
e
&&
(
e
=
null
===
t
.
charCode
?
t
.
keyCode
:
t
.
charCode
),
"Escape"
!==
e
&&
27
!==
e
||!
0
!==
this
.
_options
.
exitOnEsc
){
if
(
"ArrowLeft"
===
e
||
37
===
e
)
Qi
.
call
(
this
);
else
if
(
"ArrowRight"
===
e
||
39
===
e
)
Xi
.
call
(
this
);
else
if
(
"Enter"
===
e
||
"NumpadEnter"
===
e
||
13
===
e
){
var
n
=
t
.
target
||
t
.
srcElement
;
n
&&
n
.
className
.
match
(
"introjs-prevbutton"
)
?
Qi
.
call
(
this
)
:
n
&&
n
.
className
.
match
(
"introjs-skipbutton"
)
?
(
this
.
_introItems
.
length
-
1
===
this
.
_currentStep
&&
"function"
==
typeof
this
.
_introCompleteCallback
&&
this
.
_introCompleteCallback
.
call
(
this
,
this
.
_currentStep
,
"skip"
),
Hr
.
call
(
this
,
this
.
_targetElement
))
:
n
&&
n
.
getAttribute
(
"data-step-number"
)
?
n
.
click
()
:
Xi
.
call
(
this
),
t
.
preventDefault
?
t
.
preventDefault
()
:
t
.
returnValue
=!
1
}}
else
Hr
.
call
(
this
,
this
.
_targetElement
)}
function
er
(
t
){
if
(
null
===
t
||
"object"
!==
o
(
t
)
||
void
0
!==
t
.
nodeType
)
return
t
;
var
e
=
{};
for
(
var
n
in
t
)
void
0
!==
window
.
jQuery
&&
t
[
n
]
instanceof
window
.
jQuery
?
e
[
n
]
=
t
[
n
]
:
e
[
n
]
=
er
(
t
[
n
]);
return
e
}
function
nr
(
t
){
var
e
=
document
.
querySelector
(
".introjs-hints"
);
return
e
?
e
.
querySelectorAll
(
t
)
:
[]}
function
or
(
t
){
var
e
=
nr
(
'.introjs-hint[data-step="'
.
concat
(
t
,
'"]'
))[
0
];
fr
.
call
(
this
),
e
&&
Lo
(
e
,
"introjs-hidehint"
),
void
0
!==
this
.
_hintCloseCallback
&&
this
.
_hintCloseCallback
.
call
(
this
,
t
)}
function
ir
(){
var
t
=
this
;
l
(
nr
(
".introjs-hint"
),(
function
(
e
){
or
.
call
(
t
,
e
.
getAttribute
(
"data-step"
))}))}
function
rr
(){
var
t
=
this
,
e
=
nr
(
".introjs-hint"
);
e
&&
e
.
length
?
l
(
e
,(
function
(
e
){
ar
.
call
(
t
,
e
.
getAttribute
(
"data-step"
))}))
:
dr
.
call
(
this
,
this
.
_targetElement
)}
function
ar
(
t
){
var
e
=
nr
(
'.introjs-hint[data-step="'
.
concat
(
t
,
'"]'
))[
0
];
e
&&
ri
(
e
,
/introjs-hidehint/g
)}
function
sr
(){
var
t
=
this
;
l
(
nr
(
".introjs-hint"
),(
function
(
e
){
lr
.
call
(
t
,
e
.
getAttribute
(
"data-step"
))})),
c
.
off
(
document
,
"click"
,
fr
,
this
,
!
1
),
c
.
off
(
window
,
"resize"
,
pr
,
this
,
!
0
),
this
.
_hintsAutoRefreshFunction
&&
c
.
off
(
window
,
"scroll"
,
this
.
_hintsAutoRefreshFunction
,
this
,
!
0
)}
function
lr
(
t
){
var
e
=
nr
(
'.introjs-hint[data-step="'
.
concat
(
t
,
'"]'
))[
0
];
e
&&
e
.
parentNode
.
removeChild
(
e
)}
function
cr
(){
var
t
=
this
,
e
=
this
,
n
=
document
.
querySelector
(
".introjs-hints"
);
null
===
n
&&
(
n
=
qi
(
"div"
,{
className
:
"introjs-hints"
})),
l
(
this
.
_introItems
,(
function
(
o
,
i
){
if
(
!
document
.
querySelector
(
'.introjs-hint[data-step="'
.
concat
(
i
,
'"]'
))){
var
r
=
qi
(
"a"
,{
className
:
"introjs-hint"
});
Ho
(
r
),
r
.
onclick
=
function
(
t
){
return
function
(
n
){
var
o
=
n
||
window
.
event
;
o
.
stopPropagation
&&
o
.
stopPropagation
(),
null
!==
o
.
cancelBubble
&&
(
o
.
cancelBubble
=!
0
),
hr
.
call
(
e
,
t
)}}(
i
),
o
.
hintAnimation
||
Lo
(
r
,
"introjs-hint-no-anim"
),
Wo
(
o
.
element
)
&&
Lo
(
r
,
"introjs-fixedhint"
);
var
a
=
qi
(
"div"
,{
className
:
"introjs-hint-dot"
}),
s
=
qi
(
"div"
,{
className
:
"introjs-hint-pulse"
});
r
.
appendChild
(
a
),
r
.
appendChild
(
s
),
r
.
setAttribute
(
"data-step"
,
i
),
o
.
targetElement
=
o
.
element
,
o
.
element
=
r
,
ur
.
call
(
t
,
o
.
hintPosition
,
r
,
o
.
targetElement
),
n
.
appendChild
(
r
)}})),
document
.
body
.
appendChild
(
n
),
void
0
!==
this
.
_hintsAddedCallback
&&
this
.
_hintsAddedCallback
.
call
(
this
),
this
.
_options
.
hintAutoRefreshInterval
>=
0
&&
(
this
.
_hintsAutoRefreshFunction
=
function
(
t
,
e
){
var
n
,
o
=
this
;
return
function
(){
for
(
var
i
=
arguments
.
length
,
r
=
new
Array
(
i
),
a
=
0
;
a
<
i
;
a
++
)
r
[
a
]
=
arguments
[
a
];
clearTimeout
(
n
),
n
=
setTimeout
((
function
(){
t
.
apply
(
o
,
r
)}),
e
)}}((
function
(){
return
pr
.
call
(
t
)}),
this
.
_options
.
hintAutoRefreshInterval
),
c
.
on
(
window
,
"scroll"
,
this
.
_hintsAutoRefreshFunction
,
this
,
!
0
))}
function
ur
(
t
,
e
,
n
){
var
o
=
e
.
style
,
i
=
$o
.
call
(
this
,
n
),
r
=
20
,
a
=
20
;
switch
(
t
){
default
:
o
.
left
=
""
.
concat
(
i
.
left
,
"px"
),
o
.
top
=
""
.
concat
(
i
.
top
,
"px"
);
break
;
case
"top-right"
:
o
.
left
=
""
.
concat
(
i
.
left
+
i
.
width
-
r
,
"px"
),
o
.
top
=
""
.
concat
(
i
.
top
,
"px"
);
break
;
case
"bottom-left"
:
o
.
left
=
""
.
concat
(
i
.
left
,
"px"
),
o
.
top
=
""
.
concat
(
i
.
top
+
i
.
height
-
a
,
"px"
);
break
;
case
"bottom-right"
:
o
.
left
=
""
.
concat
(
i
.
left
+
i
.
width
-
r
,
"px"
),
o
.
top
=
""
.
concat
(
i
.
top
+
i
.
height
-
a
,
"px"
);
break
;
case
"middle-left"
:
o
.
left
=
""
.
concat
(
i
.
left
,
"px"
),
o
.
top
=
""
.
concat
(
i
.
top
+
(
i
.
height
-
a
)
/
2
,
"px"
);
break
;
case
"middle-right"
:
o
.
left
=
""
.
concat
(
i
.
left
+
i
.
width
-
r
,
"px"
),
o
.
top
=
""
.
concat
(
i
.
top
+
(
i
.
height
-
a
)
/
2
,
"px"
);
break
;
case
"middle-middle"
:
o
.
left
=
""
.
concat
(
i
.
left
+
(
i
.
width
-
r
)
/
2
,
"px"
),
o
.
top
=
""
.
concat
(
i
.
top
+
(
i
.
height
-
a
)
/
2
,
"px"
);
break
;
case
"bottom-middle"
:
o
.
left
=
""
.
concat
(
i
.
left
+
(
i
.
width
-
r
)
/
2
,
"px"
),
o
.
top
=
""
.
concat
(
i
.
top
+
i
.
height
-
a
,
"px"
);
break
;
case
"top-middle"
:
o
.
left
=
""
.
concat
(
i
.
left
+
(
i
.
width
-
r
)
/
2
,
"px"
),
o
.
top
=
""
.
concat
(
i
.
top
,
"px"
)}}
function
hr
(
t
){
var
e
=
document
.
querySelector
(
'.introjs-hint[data-step="'
.
concat
(
t
,
'"]'
)),
n
=
this
.
_introItems
[
t
];
void
0
!==
this
.
_hintClickCallback
&&
this
.
_hintClickCallback
.
call
(
this
,
e
,
n
,
t
);
var
o
=
fr
.
call
(
this
);
if
(
parseInt
(
o
,
10
)
!==
t
){
var
i
=
qi
(
"div"
,{
className
:
"introjs-tooltip"
}),
r
=
qi
(
"div"
),
a
=
qi
(
"div"
),
s
=
qi
(
"div"
);
i
.
onclick
=
function
(
t
){
t
.
stopPropagation
?
t
.
stopPropagation
()
:
t
.
cancelBubble
=!
0
},
r
.
className
=
"introjs-tooltiptext"
;
var
l
=
qi
(
"p"
);
if
(
l
.
innerHTML
=
n
.
hint
,
r
.
appendChild
(
l
),
this
.
_options
.
hintShowButton
){
var
c
=
qi
(
"a"
);
c
.
className
=
this
.
_options
.
buttonClass
,
c
.
setAttribute
(
"role"
,
"button"
),
c
.
innerHTML
=
this
.
_options
.
hintButtonLabel
,
c
.
onclick
=
or
.
bind
(
this
,
t
),
r
.
appendChild
(
c
)}
a
.
className
=
"introjs-arrow"
,
i
.
appendChild
(
a
),
i
.
appendChild
(
r
),
this
.
_currentStep
=
e
.
getAttribute
(
"data-step"
),
s
.
className
=
"introjs-tooltipReferenceLayer introjs-hintReference"
,
s
.
setAttribute
(
"data-step"
,
e
.
getAttribute
(
"data-step"
)),
si
.
call
(
this
,
s
),
s
.
appendChild
(
i
),
document
.
body
.
appendChild
(
s
),
Bi
.
call
(
this
,
e
,
i
,
a
,
!
0
)}}
function
fr
(){
var
t
=
document
.
querySelector
(
".introjs-hintReference"
);
if
(
t
){
var
e
=
t
.
getAttribute
(
"data-step"
);
return
t
.
parentNode
.
removeChild
(
t
),
e
}}
function
dr
(
t
){
var
e
=
this
;
if
(
this
.
_introItems
=
[],
this
.
_options
.
hints
)
l
(
this
.
_options
.
hints
,(
function
(
t
){
var
n
=
er
(
t
);
"string"
==
typeof
n
.
element
&&
(
n
.
element
=
document
.
querySelector
(
n
.
element
)),
n
.
hintPosition
=
n
.
hintPosition
||
e
.
_options
.
hintPosition
,
n
.
hintAnimation
=
n
.
hintAnimation
||
e
.
_options
.
hintAnimation
,
null
!==
n
.
element
&&
e
.
_introItems
.
push
(
n
)}));
else
{
var
n
=
t
.
querySelectorAll
(
"*[data-hint]"
);
if
(
!
n
||!
n
.
length
)
return
!
1
;
l
(
n
,(
function
(
t
){
var
n
=
t
.
getAttribute
(
"data-hint-animation"
);
n
=
n
?
"true"
===
n
:
e
.
_options
.
hintAnimation
,
e
.
_introItems
.
push
({
element
:
t
,
hint
:
t
.
getAttribute
(
"data-hint"
),
hintPosition
:
t
.
getAttribute
(
"data-hint-position"
)
||
e
.
_options
.
hintPosition
,
hintAnimation
:
n
,
tooltipClass
:
t
.
getAttribute
(
"data-tooltip-class"
),
position
:
t
.
getAttribute
(
"data-position"
)
||
e
.
_options
.
tooltipPosition
})}))}
cr
.
call
(
this
),
c
.
on
(
document
,
"click"
,
fr
,
this
,
!
1
),
c
.
on
(
window
,
"resize"
,
pr
,
this
,
!
0
)}
function
pr
(){
var
t
=
this
;
l
(
this
.
_introItems
,(
function
(
e
){
var
n
=
e
.
targetElement
,
o
=
e
.
hintPosition
,
i
=
e
.
element
;
void
0
!==
n
&&
ur
.
call
(
t
,
o
,
i
,
n
)}))}
qe
({
target
:
"Array"
,
proto
:!
0
,
forced
:!
Li
},{
splice
:
function
(
t
,
e
){
var
n
,
o
,
i
,
r
,
a
,
s
,
l
=
ht
(
this
),
c
=
ve
(
l
),
u
=
ge
(
t
,
c
),
h
=
arguments
.
length
;
if
(
0
===
h
?
n
=
o
=
0
:
1
===
h
?
(
n
=
0
,
o
=
c
-
u
)
:
(
n
=
h
-
2
,
o
=
Ni
(
Pi
(
fe
(
e
),
0
),
c
-
u
)),
c
+
n
-
o
>
9007199254740991
)
throw
Oi
(
"Maximum allowed length exceeded"
);
for
(
i
=
Qn
(
l
,
o
),
r
=
0
;
r
<
o
;
r
++
)(
a
=
u
+
r
)
in
l
&&
Dn
(
i
,
r
,
l
[
a
]);
if
(
i
.
length
=
o
,
n
<
o
){
for
(
r
=
u
;
r
<
c
-
o
;
r
++
)
s
=
r
+
n
,(
a
=
r
+
o
)
in
l
?
l
[
s
]
=
l
[
a
]
:
delete
l
[
s
];
for
(
r
=
c
;
r
>
c
-
o
+
n
;
r
--
)
delete
l
[
r
-
1
]}
else
if
(
n
>
o
)
for
(
r
=
c
-
o
;
r
>
u
;
r
--
)
s
=
r
+
n
-
1
,(
a
=
r
+
o
-
1
)
in
l
?
l
[
s
]
=
l
[
a
]
:
delete
l
[
s
];
for
(
r
=
0
;
r
<
n
;
r
++
)
l
[
r
+
u
]
=
arguments
[
r
+
2
];
return
l
.
length
=
c
-
o
+
n
,
i
}});
var
gr
=
Math
.
floor
,
br
=
function
(
t
,
e
){
var
n
=
t
.
length
,
o
=
gr
(
n
/
2
);
return
n
<
8
?
mr
(
t
,
e
)
:
vr
(
t
,
br
(
jo
(
t
,
0
,
o
),
e
),
br
(
jo
(
t
,
o
),
e
),
e
)},
mr
=
function
(
t
,
e
){
for
(
var
n
,
o
,
i
=
t
.
length
,
r
=
1
;
r
<
i
;){
for
(
o
=
r
,
n
=
t
[
r
];
o
&&
e
(
t
[
o
-
1
],
n
)
>
0
;)
t
[
o
]
=
t
[
--
o
];
o
!==
r
++&&
(
t
[
o
]
=
n
)}
return
t
},
vr
=
function
(
t
,
e
,
n
,
o
){
for
(
var
i
=
e
.
length
,
r
=
n
.
length
,
a
=
0
,
s
=
0
;
a
<
i
||
s
<
r
;)
t
[
a
+
s
]
=
a
<
i
&&
s
<
r
?
o
(
e
[
a
],
n
[
s
])
<=
0
?
e
[
a
++
]
:
n
[
s
++
]
:
a
<
i
?
e
[
a
++
]
:
n
[
s
++
];
return
t
},
wr
=
br
,
yr
=
Y
.
match
(
/firefox\/(\d+)/i
),
Sr
=!!
yr
&&+
yr
[
1
],
_r
=
/MSIE|Trident/
.
test
(
Y
),
xr
=
Y
.
match
(
/AppleWebKit\/(\d+)\./
),
jr
=!!
xr
&&+
xr
[
1
],
Cr
=
[],
kr
=
I
(
Cr
.
sort
),
Ar
=
I
(
Cr
.
push
),
Er
=
b
((
function
(){
Cr
.
sort
(
void
0
)})),
Ir
=
b
((
function
(){
Cr
.
sort
(
null
)})),
Tr
=
yi
(
"sort"
),
Lr
=!
b
((
function
(){
if
(
J
)
return
J
<
70
;
if
(
!
(
Sr
&&
Sr
>
3
)){
if
(
_r
)
return
!
0
;
if
(
jr
)
return
jr
<
603
;
var
t
,
e
,
n
,
o
,
i
=
""
;
for
(
t
=
65
;
t
<
76
;
t
++
){
switch
(
e
=
String
.
fromCharCode
(
t
),
t
){
case
66
:
case
69
:
case
70
:
case
72
:
n
=
3
;
break
;
case
68
:
case
71
:
n
=
4
;
break
;
default
:
n
=
2
}
for
(
o
=
0
;
o
<
47
;
o
++
)
Cr
.
push
({
k
:
e
+
o
,
v
:
n
})}
for
(
Cr
.
sort
((
function
(
t
,
e
){
return
e
.
v
-
t
.
v
})),
o
=
0
;
o
<
Cr
.
length
;
o
++
)
e
=
Cr
[
o
].
k
.
charAt
(
0
),
i
.
charAt
(
i
.
length
-
1
)
!==
e
&&
(
i
+=
e
);
return
"DGBEFHACIJK"
!==
i
}}));
function
Or
(
t
){
var
e
=
this
,
n
=
t
.
querySelectorAll
(
"*[data-intro]"
),
o
=
[];
if
(
this
.
_options
.
steps
)
l
(
this
.
_options
.
steps
,(
function
(
t
){
var
n
=
er
(
t
);
if
(
n
.
step
=
o
.
length
+
1
,
n
.
title
=
n
.
title
||
""
,
"string"
==
typeof
n
.
element
&&
(
n
.
element
=
document
.
querySelector
(
n
.
element
)),
void
0
===
n
.
element
||
null
===
n
.
element
){
var
i
=
document
.
querySelector
(
".introjsFloatingElement"
);
null
===
i
&&
(
i
=
qi
(
"div"
,{
className
:
"introjsFloatingElement"
}),
document
.
body
.
appendChild
(
i
)),
n
.
element
=
i
,
n
.
position
=
"floating"
}
n
.
position
=
n
.
position
||
e
.
_options
.
tooltipPosition
,
n
.
scrollTo
=
n
.
scrollTo
||
e
.
_options
.
scrollTo
,
void
0
===
n
.
disableInteraction
&&
(
n
.
disableInteraction
=
e
.
_options
.
disableInteraction
),
null
!==
n
.
element
&&
o
.
push
(
n
)}));
else
{
var
i
;
if
(
n
.
length
<
1
)
return
[];
l
(
n
,(
function
(
t
){
if
((
!
e
.
_options
.
group
||
t
.
getAttribute
(
"data-intro-group"
)
===
e
.
_options
.
group
)
&&
"none"
!==
t
.
style
.
display
){
var
n
=
parseInt
(
t
.
getAttribute
(
"data-step"
),
10
);
i
=
t
.
hasAttribute
(
"data-disable-interaction"
)
?!!
t
.
getAttribute
(
"data-disable-interaction"
)
:
e
.
_options
.
disableInteraction
,
n
>
0
&&
(
o
[
n
-
1
]
=
{
element
:
t
,
title
:
t
.
getAttribute
(
"data-title"
)
||
""
,
intro
:
t
.
getAttribute
(
"data-intro"
),
step
:
parseInt
(
t
.
getAttribute
(
"data-step"
),
10
),
tooltipClass
:
t
.
getAttribute
(
"data-tooltip-class"
),
highlightClass
:
t
.
getAttribute
(
"data-highlight-class"
),
position
:
t
.
getAttribute
(
"data-position"
)
||
e
.
_options
.
tooltipPosition
,
scrollTo
:
t
.
getAttribute
(
"data-scroll-to"
)
||
e
.
_options
.
scrollTo
,
disableInteraction
:
i
})}}));
var
r
=
0
;
l
(
n
,(
function
(
t
){
if
((
!
e
.
_options
.
group
||
t
.
getAttribute
(
"data-intro-group"
)
===
e
.
_options
.
group
)
&&
null
===
t
.
getAttribute
(
"data-step"
)){
for
(;
void
0
!==
o
[
r
];)
r
++
;
i
=
t
.
hasAttribute
(
"data-disable-interaction"
)
?!!
t
.
getAttribute
(
"data-disable-interaction"
)
:
e
.
_options
.
disableInteraction
,
o
[
r
]
=
{
element
:
t
,
title
:
t
.
getAttribute
(
"data-title"
)
||
""
,
intro
:
t
.
getAttribute
(
"data-intro"
),
step
:
r
+
1
,
tooltipClass
:
t
.
getAttribute
(
"data-tooltip-class"
),
highlightClass
:
t
.
getAttribute
(
"data-highlight-class"
),
position
:
t
.
getAttribute
(
"data-position"
)
||
e
.
_options
.
tooltipPosition
,
scrollTo
:
t
.
getAttribute
(
"data-scroll-to"
)
||
e
.
_options
.
scrollTo
,
disableInteraction
:
i
}}}))}
for
(
var
a
=
[],
s
=
0
;
s
<
o
.
length
;
s
++
)
o
[
s
]
&&
a
.
push
(
o
[
s
]);
return
(
o
=
a
).
sort
((
function
(
t
,
e
){
return
t
.
step
-
e
.
step
})),
o
}
function
Pr
(
t
){
var
e
=
document
.
querySelector
(
".introjs-tooltipReferenceLayer"
),
n
=
document
.
querySelector
(
".introjs-helperLayer"
),
o
=
document
.
querySelector
(
".introjs-disableInteraction"
);
if
(
si
.
call
(
this
,
n
),
si
.
call
(
this
,
e
),
si
.
call
(
this
,
o
),
t
&&
(
this
.
_introItems
=
Or
.
call
(
this
,
this
.
_targetElement
),
Yi
.
call
(
this
,
e
,
this
.
_introItems
[
this
.
_currentStep
]),
Vi
.
call
(
this
,
e
)),
void
0
!==
this
.
_currentStep
&&
null
!==
this
.
_currentStep
){
var
i
=
document
.
querySelector
(
".introjs-arrow"
),
r
=
document
.
querySelector
(
".introjs-tooltip"
);
r
&&
i
&&
Bi
.
call
(
this
,
this
.
_introItems
[
this
.
_currentStep
].
element
,
r
,
i
)}
return
pr
.
call
(
this
),
this
}
function
Nr
(){
Pr
.
call
(
this
)}
function
Rr
(
t
,
e
){
if
(
t
&&
t
.
parentElement
){
var
n
=
t
.
parentElement
;
e
?
(
ai
(
t
,{
opacity
:
"0"
}),
window
.
setTimeout
((
function
(){
try
{
n
.
removeChild
(
t
)}
catch
(
t
){}}),
500
))
:
n
.
removeChild
(
t
)}}
function
Hr
(
t
,
e
){
var
n
=!
0
;
if
(
void
0
!==
this
.
_introBeforeExitCallback
&&
(
n
=
this
.
_introBeforeExitCallback
.
call
(
this
)),
e
||!
1
!==
n
){
var
o
=
t
.
querySelectorAll
(
".introjs-overlay"
);
o
&&
o
.
length
&&
l
(
o
,(
function
(
t
){
return
Rr
(
t
)})),
Rr
(
t
.
querySelector
(
".introjs-helperLayer"
),
!
0
),
Rr
(
t
.
querySelector
(
".introjs-tooltipReferenceLayer"
)),
Rr
(
t
.
querySelector
(
".introjs-disableInteraction"
)),
Rr
(
document
.
querySelector
(
".introjsFloatingElement"
)),
Mi
(),
c
.
off
(
window
,
"keydown"
,
tr
,
this
,
!
0
),
c
.
off
(
window
,
"resize"
,
Nr
,
this
,
!
0
),
void
0
!==
this
.
_introExitCallback
&&
this
.
_introExitCallback
.
call
(
this
),
this
.
_currentStep
=
void
0
}}
function
Br
(
t
){
var
e
=
this
,
n
=
qi
(
"div"
,{
className
:
"introjs-overlay"
});
return
ai
(
n
,{
top
:
0
,
bottom
:
0
,
left
:
0
,
right
:
0
,
position
:
"fixed"
}),
t
.
appendChild
(
n
),
!
0
===
this
.
_options
.
exitOnOverlayClick
&&
(
ai
(
n
,{
cursor
:
"pointer"
}),
n
.
onclick
=
function
(){
Hr
.
call
(
e
,
t
)}),
!
0
}
function
Mr
(
t
){
if
(
this
.
isActive
()){
void
0
!==
this
.
_introStartCallback
&&
this
.
_introStartCallback
.
call
(
this
,
t
);
var
e
=
Or
.
call
(
this
,
t
);
return
0
===
e
.
length
||
(
this
.
_introItems
=
e
,
Br
.
call
(
this
,
t
)
&&
(
Xi
.
call
(
this
),
this
.
_options
.
keyboardNavigation
&&
c
.
on
(
window
,
"keydown"
,
tr
,
this
,
!
0
),
c
.
on
(
window
,
"resize"
,
Nr
,
this
,
!
0
))),
!
1
}}
qe
({
target
:
"Array"
,
proto
:!
0
,
forced
:
Er
||!
Ir
||!
Tr
||!
Lr
},{
sort
:
function
(
t
){
void
0
!==
t
&&
ot
(
t
);
var
e
=
ht
(
this
);
if
(
Lr
)
return
void
0
===
t
?
kr
(
e
)
:
kr
(
e
,
t
);
var
n
,
o
,
i
=
[],
r
=
ve
(
e
);
for
(
o
=
0
;
o
<
r
;
o
++
)
o
in
e
&&
Ar
(
i
,
e
[
o
]);
for
(
wr
(
i
,
function
(
t
){
return
function
(
e
,
n
){
return
void
0
===
n
?-
1
:
void
0
===
e
?
1
:
void
0
!==
t
?+
t
(
e
,
n
)
||
0
:
ze
(
e
)
>
ze
(
n
)
?
1
:-
1
}}(
t
)),
n
=
i
.
length
,
o
=
0
;
o
<
n
;)
e
[
o
]
=
i
[
o
++
];
for
(;
o
<
r
;)
delete
e
[
o
++
];
return
e
}});
var
qr
=
{
CSSRuleList
:
0
,
CSSStyleDeclaration
:
0
,
CSSValueList
:
0
,
ClientRectList
:
0
,
DOMRectList
:
0
,
DOMStringList
:
0
,
DOMTokenList
:
1
,
DataTransferItemList
:
0
,
FileList
:
0
,
HTMLAllCollection
:
0
,
HTMLCollection
:
0
,
HTMLFormElement
:
0
,
HTMLSelectElement
:
0
,
MediaList
:
0
,
MimeTypeArray
:
0
,
NamedNodeMap
:
0
,
NodeList
:
1
,
PaintRequestList
:
0
,
Plugin
:
0
,
PluginArray
:
0
,
SVGLengthList
:
0
,
SVGNumberList
:
0
,
SVGPathSegList
:
0
,
SVGPointList
:
0
,
SVGStringList
:
0
,
SVGTransformList
:
0
,
SourceBufferList
:
0
,
StyleSheetList
:
0
,
TextTrackCueList
:
0
,
TextTrackList
:
0
,
TouchList
:
0
},
Dr
=
Et
(
"span"
).
classList
,
Wr
=
Dr
&&
Dr
.
constructor
&&
Dr
.
constructor
.
prototype
,
$r
=
Wr
===
Object
.
prototype
?
void
0
:
Wr
,
Fr
=
Ai
.
forEach
,
Yr
=
yi
(
"forEach"
)
?
[].
forEach
:
function
(
t
){
return
Fr
(
this
,
t
,
arguments
.
length
>
1
?
arguments
[
1
]
:
void
0
)},
Ur
=
function
(
t
){
if
(
t
&&
t
.
forEach
!==
Yr
)
try
{
Dt
(
t
,
"forEach"
,
Yr
)}
catch
(
e
){
t
.
forEach
=
Yr
}};
for
(
var
Gr
in
qr
)
qr
[
Gr
]
&&
Ur
(
g
[
Gr
]
&&
g
[
Gr
].
prototype
);
Ur
(
$r
);
var
Vr
,
zr
=
"\t\n\v\f\r \u2028\u2029\ufeff"
,
Jr
=
I
(
""
.
replace
),
Kr
=
"["
+
zr
+
"]"
,
Xr
=
RegExp
(
"^"
+
Kr
+
Kr
+
"*"
),
Qr
=
RegExp
(
Kr
+
Kr
+
"*$"
),
Zr
=
function
(
t
){
return
function
(
e
){
var
n
=
ze
(
B
(
e
));
return
1
&
t
&&
(
n
=
Jr
(
n
,
Xr
,
""
)),
2
&
t
&&
(
n
=
Jr
(
n
,
Qr
,
""
)),
n
}},
ta
=
{
start
:
Zr
(
1
),
end
:
Zr
(
2
),
trim
:
Zr
(
3
)},
ea
=
le
.
PROPER
,
na
=
ta
.
trim
;
function
oa
(
t
,
e
,
n
){
var
o
,
r
=
(
i
(
o
=
{},
t
,
e
),
i
(
o
,
"path"
,
"/"
),
o
);
if
(
n
){
var
a
=
new
Date
;
a
.
setTime
(
a
.
getTime
()
+
24
*
n
*
60
*
60
*
1e3
),
r
.
expires
=
a
.
toUTCString
()}
var
s
=
[];
for
(
var
l
in
r
)
s
.
push
(
""
.
concat
(
l
,
"="
).
concat
(
r
[
l
]));
return
document
.
cookie
=
s
.
join
(
"; "
),
ia
(
t
)}
function
ia
(
t
){
return
(
e
=
{},
document
.
cookie
.
split
(
";"
).
forEach
((
function
(
t
){
var
n
=
r
(
t
.
split
(
"="
),
2
),
o
=
n
[
0
],
i
=
n
[
1
];
e
[
o
.
trim
()]
=
i
})),
e
)[
t
];
var
e
}
function
ra
(
t
){
t
?
oa
(
this
.
_options
.
dontShowAgainCookie
,
"true"
,
this
.
_options
.
dontShowAgainCookieDays
)
:
oa
(
this
.
_options
.
dontShowAgainCookie
,
""
,
-
1
)}
function
aa
(){
var
t
=
ia
(
this
.
_options
.
dontShowAgainCookie
);
return
t
&&
"true"
===
t
}
function
sa
(
t
){
this
.
_targetElement
=
t
,
this
.
_introItems
=
[],
this
.
_options
=
{
isActive
:!
0
,
nextLabel
:
"Next"
,
prevLabel
:
"Back"
,
skipLabel
:
"×"
,
doneLabel
:
"Done"
,
hidePrev
:!
1
,
hideNext
:!
1
,
nextToDone
:!
0
,
tooltipPosition
:
"bottom"
,
tooltipClass
:
""
,
group
:
""
,
highlightClass
:
""
,
exitOnEsc
:!
0
,
exitOnOverlayClick
:!
0
,
showStepNumbers
:!
1
,
stepNumbersOfLabel
:
"of"
,
keyboardNavigation
:!
0
,
showButtons
:!
0
,
showBullets
:!
0
,
showProgress
:!
1
,
scrollToElement
:!
0
,
scrollTo
:
"element"
,
scrollPadding
:
30
,
overlayOpacity
:
.5
,
autoPosition
:!
0
,
positionPrecedence
:
[
"bottom"
,
"top"
,
"right"
,
"left"
],
disableInteraction
:!
1
,
dontShowAgain
:!
1
,
dontShowAgainLabel
:
"Don't show this again"
,
dontShowAgainCookie
:
"introjs-dontShowAgain"
,
dontShowAgainCookieDays
:
365
,
helperElementPadding
:
10
,
hintPosition
:
"top-middle"
,
hintButtonLabel
:
"Got it"
,
hintShowButton
:!
0
,
hintAutoRefreshInterval
:
10
,
hintAnimation
:!
0
,
buttonClass
:
"introjs-button"
,
progressBarAdditionalClass
:!
1
}}
qe
({
target
:
"String"
,
proto
:!
0
,
forced
:
(
Vr
=
"trim"
,
b
((
function
(){
return
!!
zr
[
Vr
]()
||
" "
!==
" "
[
Vr
]()
||
ea
&&
zr
[
Vr
].
name
!==
Vr
})))},{
trim
:
function
(){
return
na
(
this
)}});
var
la
=
function
t
(
e
){
var
n
;
if
(
"object"
===
o
(
e
))
n
=
new
sa
(
e
);
else
if
(
"string"
==
typeof
e
){
var
i
=
document
.
querySelector
(
e
);
if
(
!
i
)
throw
new
Error
(
"There is no element with given selector."
);
n
=
new
sa
(
i
)}
else
n
=
new
sa
(
document
.
body
);
return
t
.
instances
[
s
(
n
,
"introjs-instance"
)]
=
n
,
n
};
la
.
version
=
"5.1.0"
,
la
.
instances
=
{},
la
.
fn
=
sa
.
prototype
=
{
isActive
:
function
(){
return
(
!
this
.
_options
.
dontShowAgain
||!
aa
.
call
(
this
))
&&
this
.
_options
.
isActive
},
clone
:
function
(){
return
new
sa
(
this
)},
setOption
:
function
(
t
,
e
){
return
this
.
_options
[
t
]
=
e
,
this
},
setOptions
:
function
(
t
){
return
this
.
_options
=
function
(
t
,
e
){
var
n
,
o
=
{};
for
(
n
in
t
)
o
[
n
]
=
t
[
n
];
for
(
n
in
e
)
o
[
n
]
=
e
[
n
];
return
o
}(
this
.
_options
,
t
),
this
},
start
:
function
(){
return
Mr
.
call
(
this
,
this
.
_targetElement
),
this
},
goToStep
:
function
(
t
){
return
Ji
.
call
(
this
,
t
),
this
},
addStep
:
function
(
t
){
return
this
.
_options
.
steps
||
(
this
.
_options
.
steps
=
[]),
this
.
_options
.
steps
.
push
(
t
),
this
},
addSteps
:
function
(
t
){
if
(
t
.
length
){
for
(
var
e
=
0
;
e
<
t
.
length
;
e
++
)
this
.
addStep
(
t
[
e
]);
return
this
}},
goToStepNumber
:
function
(
t
){
return
Ki
.
call
(
this
,
t
),
this
},
nextStep
:
function
(){
return
Xi
.
call
(
this
),
this
},
previousStep
:
function
(){
return
Qi
.
call
(
this
),
this
},
currentStep
:
function
(){
return
Zi
.
call
(
this
)},
exit
:
function
(
t
){
return
Hr
.
call
(
this
,
this
.
_targetElement
,
t
),
this
},
refresh
:
function
(
t
){
return
Pr
.
call
(
this
,
t
),
this
},
setDontShowAgain
:
function
(
t
){
return
ra
.
call
(
this
,
t
),
this
},
onbeforechange
:
function
(
t
){
if
(
"function"
!=
typeof
t
)
throw
new
Error
(
"Provided callback for onbeforechange was not a function"
);
return
this
.
_introBeforeChangeCallback
=
t
,
this
},
onchange
:
function
(
t
){
if
(
"function"
!=
typeof
t
)
throw
new
Error
(
"Provided callback for onchange was not a function."
);
return
this
.
_introChangeCallback
=
t
,
this
},
onafterchange
:
function
(
t
){
if
(
"function"
!=
typeof
t
)
throw
new
Error
(
"Provided callback for onafterchange was not a function"
);
return
this
.
_introAfterChangeCallback
=
t
,
this
},
oncomplete
:
function
(
t
){
if
(
"function"
!=
typeof
t
)
throw
new
Error
(
"Provided callback for oncomplete was not a function."
);
return
this
.
_introCompleteCallback
=
t
,
this
},
onhintsadded
:
function
(
t
){
if
(
"function"
!=
typeof
t
)
throw
new
Error
(
"Provided callback for onhintsadded was not a function."
);
return
this
.
_hintsAddedCallback
=
t
,
this
},
onhintclick
:
function
(
t
){
if
(
"function"
!=
typeof
t
)
throw
new
Error
(
"Provided callback for onhintclick was not a function."
);
return
this
.
_hintClickCallback
=
t
,
this
},
onhintclose
:
function
(
t
){
if
(
"function"
!=
typeof
t
)
throw
new
Error
(
"Provided callback for onhintclose was not a function."
);
return
this
.
_hintCloseCallback
=
t
,
this
},
onstart
:
function
(
t
){
if
(
"function"
!=
typeof
t
)
throw
new
Error
(
"Provided callback for onstart was not a function."
);
return
this
.
_introStartCallback
=
t
,
this
},
onexit
:
function
(
t
){
if
(
"function"
!=
typeof
t
)
throw
new
Error
(
"Provided callback for onexit was not a function."
);
return
this
.
_introExitCallback
=
t
,
this
},
onskip
:
function
(
t
){
if
(
"function"
!=
typeof
t
)
throw
new
Error
(
"Provided callback for onskip was not a function."
);
return
this
.
_introSkipCallback
=
t
,
this
},
onbeforeexit
:
function
(
t
){
if
(
"function"
!=
typeof
t
)
throw
new
Error
(
"Provided callback for onbeforeexit was not a function."
);
return
this
.
_introBeforeExitCallback
=
t
,
this
},
addHints
:
function
(){
return
dr
.
call
(
this
,
this
.
_targetElement
),
this
},
hideHint
:
function
(
t
){
return
or
.
call
(
this
,
t
),
this
},
hideHints
:
function
(){
return
ir
.
call
(
this
),
this
},
showHint
:
function
(
t
){
return
ar
.
call
(
this
,
t
),
this
},
showHints
:
function
(){
return
rr
.
call
(
this
),
this
},
removeHints
:
function
(){
return
sr
.
call
(
this
),
this
},
removeHint
:
function
(
t
){
return
lr
().
call
(
this
,
t
),
this
},
showHintDialog
:
function
(
t
){
return
hr
.
call
(
this
,
t
),
this
}}},
19942
:
function
(
t
){
t
.
exports
=
JSON
.
parse
(
'{"Xh":[{"title":"Welcome to the guided tour !","intro":"This guided tour will showcase Software Heritage web application\\nfeatures to help you navigate into the archive.<br/>\\nLet\'s see what we can do from the homepage first.\\n"},{"element":".swh-search-box","title":"Search archived software origins","intro":"An origin corresponds to a location from which a coherent set of\\nsource codes has been obtained, like a git repository, a directory\\ncontaining tarballs, etc.<br/><br/>\\nSoftware origins are identified by URLs (git clone URLs for instance).<br/><br/>\\nYou can search for terms in the full set of archived software\\norigin URLs. You will be redirected to a dedicated interface displaying search\\nresults. Clicking on an origin URL will then take you to the source code browsing\\ninterface. If you enter a complete archived origin URL, you will be immediately\\nredirected to its source code browsing interface.\\n"},{"element":".swh-origin-save-link","title":"Save code now","intro":"If you haven\'t found the software origin you were looking for, you can use the\\nSave Code Now interface to submit a save request that will be immediately processed.\\n"},{"element":".swh-vault-link","title":"Downloads from the vault","intro":"Show the list of downloads you requested from the Software Heritage Vault\\nwhile browsing the archive. <br/>\\nThose downloads correspond to tarballs containing source directories\\narchived by Software Heritage. <br/>\\nThe list of downloads is stored in your browser local storage so it\\nwill be persistent across your visits.\\n"},{"element":".swh-help-link","title":"Launch guided tour","intro":"Replay the guided tour."},{"element":"#swh-login","title":"Login or register","intro":"Come and join our users community with a Software Heritage account.\\nClick here and register in less than 30 seconds.\\nWhen authenticated, you can benefit from extended features like a higher\\nrate-limit quota for the Web API.<br/><br/>\\nIf you are already logged in, that link will take you to your user\\nprofile interface where you can generate bearer token for Web API\\nauthentication.\\n"},{"element":"#swh-web-api-link","title":"Software Heritage Web API","intro":"In the Software Heritage Web API documentation you will find the complete list\\nof endpoints and how to use each one with a detailed example.<br/>\\nPlease note that the Web API can also be queried from your web browser\\nthrough a dedicated HTML interface displaying query results.\\n"},{"title":"Browsing source code of an archived software origin","intro":"Come on in, let\'s introduce the Web UI to browse the content of an\\narchived software origin.\\n"}],"QH":[{"title":"Browse source code of an archived software origin","intro":"You just arrived into the first view of the archived source code of an origin.\\nThe displayed source code files are taken from the most recent snapshot taken by\\nSoftware Heritage. By default, the content of the main branch (aka HEAD, master, ...)\\nis displayed.\\nContinue your journey and dive deeper into the code and its development history.\\n"},{"element":"#swh-origin-url","title":"Software origin URL","intro":"You can find the URL of the archived software origin.<br/>\\nFollowing that link will always bring you back to the code in the HEAD branch\\nas captured by the latest Software Heritage visit.\\n","position":"bottom"},{"element":"#swh-go-to-origin","title":"Visit software origin","intro":"You can go directly to the place where source code was captured.\\n","position":"bottom"},{"element":"#swh-origin-visit","title":"Software Heritage origin visit date","intro":"You can find the date when Software Heritage captured the source code of\\nthat origin.\\n","position":"bottom"},{"element":"#swh-browse-code-nav-link","title":"Browse source code","intro":"You can browse the source code of a software origin. <br/>\\nClicking on the Code tab will always bring you back to the code in the HEAD branch\\nfor the currently selected Software Heritage visit.\\n","position":"bottom"},{"element":"#swh-browse-snapshot-branches-nav-link","title":"Browse branches","intro":"You can browse the list of branches for a software origin. <br/>\\nLinks are offered to browse the source code contained in each branch.\\n","position":"bottom"},{"element":"#swh-browse-snapshot-releases-nav-link","title":"Browse releases","intro":"You can browse the list of releases for a software origin. <br/>\\nLinks are offered to browse the source code contained in each release. <br/>\\nPlease note that for git origins, only annotated tags are considered as releases.\\nFor non annotated git tags, you can browse them in the Branches tab.\\n","position":"bottom"},{"element":"#swh-browse-origin-visits-nav-link","title":"Browse origin visits","intro":"You can find when Software Heritage captured the source code.\\nThese visits are called snapshots and visualized in various ways: timeline,\\ncalendar and simple list.\\nLike with a way-back machine, you can travel in time and see the code as it was\\nwhen crawled by Software Heritage.\\n","position":"bottom"},{"element":"#swh-branches-releases-dd","title":"Switch between branches and releases","intro":"You can easily switch between different branches and releases using this dropdown.\\n","position":"bottom"},{"element":"#swh-breadcrumbs-container","title":"Current navigation path","intro":"You can see here the current path you are taking in the code, which will make it\\neasier to navigate back.\\n","position":"bottom"},{"element":".swh-tr-link","title":"Browse revisions history","intro":"Display the list of revisions (aka commits) for the current branch in various\\norderings. Links are offered to browse source code as it was in each revision.\\nThe list of files changes introduced in each revision can also be computed and\\nthe associated diffs displayed.\\n","position":"bottom"},{"element":".swh-vault-download","title":"Download source code in an archive","intro":"You can request the creation of an archive in .tar.gz format that will contain\\nthe currently browsed directory.\\nYou can follow the archive creation progress and download it once done by\\nvisiting the Downloads page (link can be found in the left sidebar).\\n","position":"bottom"},{"element":"#swh-take-new-snashot","title":"Request to save origin again","intro":"If the archived software origin currently browsed is not synchronized with its\\nupstream version (for instance when new commits have been issued), you can\\nexplicitly request Software Heritage to take a new snapshot of it.\\n","position":"bottom"},{"element":"#swh-tip-revision","title":"Branch tip revision","intro":"You can see the latest revision (commit) archived by Software Heritage\\nfor the current branch.\\n","position":"bottom"},{"element":"#swhids-handle","title":"Display SWHIDs of browsed objects","intro":"When clicking on this handle, a tab will be displayed containing Software Heritage\\nIDentifiers of currently browsed objects.\\n","position":"left"},{"element":"#swh-identifiers","title":"Get SWHIDs of browsed objects","intro":"The <b>SWHID</b> (Software Heritage Identifier), is an intrinsic identifier that is\\ncomputed uniquely from the software artifact itself.<br/>\\nAll details about the syntax, semantics, interoperability and implementation can be\\nfound in\\n<a href=\\"https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html\\"\\ntarget=\\"_blank\\" rel=\\"noopener noreferrer\\">the formal specification</a>.\\n","position":"left"},{"element":"#swhid-object-types","title":"Select archived object type","intro":"Software Heritage computes identifiers for all archived objects whose type can be:\\n<ul>\\n <li>\\n <b>content:</b> a (specific version of a) file stored in the archive.\\n </li>\\n <li>\\n <b>directory:</b> a set of named pointers to contents (file entries), directories\\n (directory entries) and revisions (revision entries).\\n </li>\\n <li>\\n <b>release:</b> a revision that has been marked as noteworthy with a specific name\\n (e.g., a version number).\\n </li>\\n <li>\\n <b>revision:</b> a point in time snapshot of the content of a directory, together\\n with associated development metadata (e.g., author, timestamp, log message, etc).\\n </li>\\n <li>\\n <b>snapshot:</b> the state of all visible branches during a specific visit of a\\n software origin\\n </li>\\n</ul>\\nBased on the current context, you can get the SWHID of each browsed object in a\\ndedicated tab.\\n","position":"left"},{"element":".swh-badges","title":"Software Heritage badges","intro":"You can include Software Heritage badges in the README file of you code repository\\nto indicate its archival by Software Heritage.<br/>\\nClicking on a badge will show you how to do so depending on your README format.\\n"},{"element":".swhid","title":"Software Heritage IDentifier (SWHID)","intro":"You can find the SWHID of the selected object.\\n","position":"left"},{"element":"#swhid-options","title":"Add / remove qualifiers to SWHID","intro":"Toggle the adding of qualifiers to the SWHID which adds extra information regarding\\nthe context the object has been found.\\n","position":"bottom"},{"element":"#swhid-copy-buttons","title":"Copy SWHID for a given browsed object","intro":"You can easily copy to clipboard a SWHID or its permalink using these dedicated\\nbuttons.\\n","position":"bottom"},{"title":"Browsing a source code file","intro":"Special features are also offered when browsing a source code file.<br/>\\nThis is what we will see in the next part of that tour.\\n"}],"lE":[{"title":"Browsing a source code file","intro":"You just arrived in the source code file view. Let\'s check a few extra features.\\n"},{"element":".swh-tr-link","title":"Download source code file","intro":"You can download the raw bytes of the source code file and save it locally\\nby using the \\"Save Page\\" feature of your browser.\\n","position":"bottom"},{"element":".chosen-container","title":"Select programming language","intro":"If Software Heritage did not manage to automatically find a programming language\\nfor the browsed source code file or did not find the right one, you can explicitly\\nset the language to highlight using this dropdown.\\n","position":"bottom"},{"element":".hljs-ln-numbers[data-line-number=\\"11\\"]","title":"Highlight a source code line","intro":"<b>Click on the line number to highlight the corresponding line of code.</b><br/>\\nWhen a line gets selected, it is automatically added in the SWHID qualifiers\\nfor the associated content object. It enables to easily browse back that\\nspecific line of code.\\n","position":"bottom"},{"element":".hljs-ln-numbers[data-line-number=\\"17\\"]","title":"Highlight a range of source code lines,","intro":"<b>Hold Shift key and click on the line number to highlight a range of source\\ncode lines.</b><br/>\\nWhen a range of lines get selected, it is automatically added in the SWHID qualifiers\\nfor the associated content object. It enables to easily browse back that specific\\ncode snippet.\\n","position":"bottom"},{"element":".swhid","title":"SWHID with lines qualifier","intro":"As you can see, selecting lines of code updates the source file SWHID with\\nlines qualifier.<br>\\nBrowsing such qualified SWHID will immediately take you to the selected\\ncode snippet.\\n","position":"left"},{"title":"Guided tour completed","intro":"Thank your for following our guided tour ! <br/>\\nYou will now be redirected to the page you were browsing prior to launching it.\\n"}]}'
)}},
e
=
{};
function
n
(
o
){
var
i
=
e
[
o
];
if
(
void
0
!==
i
)
return
i
.
exports
;
var
r
=
e
[
o
]
=
{
exports
:
{}};
return
t
[
o
](
r
,
r
.
exports
,
n
),
r
.
exports
}
n
.
d
=
function
(
t
,
e
){
for
(
var
o
in
e
)
n
.
o
(
e
,
o
)
&&!
n
.
o
(
t
,
o
)
&&
Object
.
defineProperty
(
t
,
o
,{
enumerable
:!
0
,
get
:
e
[
o
]})},
n
.
g
=
function
(){
if
(
"object"
==
typeof
globalThis
)
return
globalThis
;
try
{
return
this
||
new
Function
(
"return this"
)()}
catch
(
t
){
if
(
"object"
==
typeof
window
)
return
window
}}(),
n
.
o
=
function
(
t
,
e
){
return
Object
.
prototype
.
hasOwnProperty
.
call
(
t
,
e
)},
n
.
r
=
function
(
t
){
"undefined"
!=
typeof
Symbol
&&
Symbol
.
toStringTag
&&
Object
.
defineProperty
(
t
,
Symbol
.
toStringTag
,{
value
:
"Module"
}),
Object
.
defineProperty
(
t
,
"__esModule"
,{
value
:!
0
})};
var
o
=
{};
return
function
(){
n
.
r
(
o
),
n
.
d
(
o
,{
getGuidedTour
:
function
(){
return
u
},
guidedTourButtonClick
:
function
(){
return
h
},
initGuidedTour
:
function
(){
return
f
}});
var
t
=
n
(
61378
),
e
=
n
(
19942
),
i
=
n
(
68277
),
r
=
[],
a
=
null
,
s
=
null
,
l
=
"https://github.com/memononen/libtess2"
;
function
c
(){
return
window
.
scrollTo
(
0
,
0
),
!!
$
(
"#swh-identifiers"
).
tabSlideOut
(
"isOpen"
)
||
(
$
(
".introjs-helperLayer, .introjs-tooltipReferenceLayer"
).
hide
(),
$
(
"#swh-identifiers"
).
tabSlideOut
(
"open"
),
setTimeout
((
function
(){
$
(
".introjs-helperLayer, .introjs-tooltipReferenceLayer"
).
show
(),
a
.
nextStep
()}),
500
),
!
1
)}
function
u
(){
return
r
}
function
h
(
t
){
t
.
preventDefault
(),
f
()}
function
f
(
e
){
if
(
void
0
===
e
&&
(
e
=
0
),
!
(
e
>=
r
.
length
)){
var
n
=
new
URL
(
window
.
location
.
origin
+
r
[
e
].
url
),
o
=
new
URL
(
window
.
location
.
href
),
s
=
o
.
searchParams
.
get
(
"guided_tour_next"
);
o
.
searchParams
.
delete
(
"guided_tour"
),
o
.
searchParams
.
delete
(
"guided_tour_next"
);
var
l
=
decodeURIComponent
(
n
.
toString
()),
c
=
decodeURIComponent
(
o
.
toString
());
c
!==
l
?
(
n
.
searchParams
.
set
(
"guided_tour"
,
e
),
0
===
e
&&
n
.
searchParams
.
set
(
"guided_tour_next"
,
c
),
window
.
location
=
decodeURIComponent
(
n
.
toString
()))
:
((
a
=
(
0
,
t
.
Z
)().
setOptions
(
r
[
e
].
introJsOptions
)).
setOptions
({
exitOnOverlayClick
:!
1
,
showBullets
:!
1
}),
e
<
r
.
length
-
1
?
a
.
setOption
(
"doneLabel"
,
"Next page"
).
onexit
((
function
(){(
0
,
i
.
t
)()})).
oncomplete
((
function
(){
var
t
=
new
URL
(
window
.
location
.
origin
+
r
[
e
+
1
].
url
);
t
.
searchParams
.
set
(
"guided_tour"
,
e
+
1
),
s
?
t
.
searchParams
.
set
(
"guided_tour_next"
,
s
)
:
0
===
e
&&
t
.
searchParams
.
set
(
"guided_tour_next"
,
c
),
window
.
location
.
href
=
decodeURIComponent
(
t
.
toString
())}))
:
a
.
oncomplete
((
function
(){(
0
,
i
.
t
)(),
s
&&
(
window
.
location
.
href
=
s
)})),
r
[
e
].
hasOwnProperty
(
"onBeforeChange"
)
&&
a
.
onbeforechange
(
r
[
e
].
onBeforeChange
),
setTimeout
((
function
(){(
0
,
i
.
V
)(),
a
.
start
(),
window
.
scrollTo
(
0
,
0
)}),
500
))}}
$
((
function
(){
r
=
[{
url
:
Urls
.
swh_web_homepage
(),
introJsOptions
:
{
disableInteraction
:!
0
,
scrollToElement
:!
1
,
steps
:
e
.
Xh
}},{
url
:
Urls
.
browse_origin_directory
()
+
"?origin_url="
+
l
,
introJsOptions
:
{
disableInteraction
:!
0
,
scrollToElement
:!
1
,
steps
:
e
.
QH
},
onBeforeChange
:
function
(
t
){
return
!
t
||
"swh-identifiers"
!==
t
.
id
||
c
()}},{
url
:
Urls
.
browse_content
(
"sha1_git:2d4e23bf1d3f64c1e8b94622178e18d89c653de0"
)
+
"?origin_url="
+
l
+
"&path=Example/example.c"
,
introJsOptions
:
{
steps
:
e
.
lE
},
onBeforeChange
:
function
(
t
){
if
(
t
&&
$
(
t
).
hasClass
(
"swhid"
))
return
c
();
if
(
t
&&
"17"
===
t
.
dataset
.
lineNumber
){
var
e
=
"rgba(0, 0, 0, 0)"
!==
$
(
'.hljs-ln-numbers[data-line-number="11"]'
).
css
(
"background-color"
);
return
e
||
0
!==
$
(
"#swh-next-step-disabled"
).
length
||
$
(
".introjs-tooltiptext"
).
append
(
'<p id="swh-next-step-disabled" style="color: red; font-weight: bold">\n You need to select the line number before proceeding to<br/>next step.\n </p>'
),
s
=
t
,
e
}
if
(
s
&&
"17"
===
s
.
dataset
.
lineNumber
){
for
(
var
n
=!
0
,
o
=
11
;
o
<=
17
;
++
o
){
var
i
=
$
(
'.hljs-ln-numbers[data-line-number="'
+
o
+
'"]'
).
css
(
"background-color"
);
if
(
!
(
n
=
n
&&
"rgba(0, 0, 0, 0)"
!==
i
)){
swh
.
webapp
.
resetHighlightedLines
(),
swh
.
webapp
.
scrollToLine
(
swh
.
webapp
.
highlightLine
(
11
,
!
0
)),
0
===
$
(
"#swh-next-step-disabled"
).
length
&&
$
(
".introjs-tooltiptext"
).
append
(
'<p id="swh-next-step-disabled" style="color: red; font-weight: bold">\n You need to select the line numbers range from 11\n to 17 before proceeding to next step.\n </p>'
);
break
}}
return
n
}
return
s
=
t
,
!
0
}}];
var
t
=
new
URLSearchParams
(
window
.
location
.
search
);
t
&&
t
.
has
(
"guided_tour"
)
&&
f
(
parseInt
(
t
.
get
(
"guided_tour"
)))}))}(),
o
}()}));
//# sourceMappingURL=guided_tour.6fdb762b8416936b3c84.js.map
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Jul 3, 11:33 AM (6 d, 2 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3366025
Attached To
rDWAPPS Web applications
Event Timeline
Log In to Comment