467:) will return a failure result. In VBScript and Visual Basic .NET, the conversion process employs the locale settings of Microsoft Windows, meaning that what may parse as a date on one system, configured to use one locale, may fail to parse as a date on another system, configured to use a different locale.
366:
The functions are simple data validation and data type checking functions. The data validation functions determine whether it is possible to convert or coerce the data value given as an argument to the function to the type implied by the function name, and return a
794:) from a character or string, or is already a number. In Transact-SQL, strings can be converted to numbers even if they contain characters that one might not expect in numbers. This is because Transact-SQL allows conversion from
575:
only of the variable is a variant that has not been initialized. This function only exists in Visual Basic 6. In Visual Basic .NET, optional parameters are required to have default initializers, and the function no longer
810:' symbols. The same is true of VBScript, where any string that can be converted to a currency value in the current locale is considered to be numeric. VBScript does not, however, consider dates and times to be numeric.
665:
for all value (non-reference) expressions, because they will be wrapped up, as part of the function call, into objects, which will by their very natures, not be null objects. To avoid this behaviour, one can use the
519:
This function determines whether the expression passed as its argument is an uninitialized variant. Note that an uninitialized variant is distinct from a variant that has been initialized to hold
692:. The compiler will raise a compile-time error if the compared expression is a value rather than a reference type, catching the type mismatch at compile time rather than simply returning
696:
at run-time. Strings are reference types in Visual Basic .NET, and so capable of being null (as opposed to simply zero-length, empty, strings). For such strings, this function returns
571:
This function determines whether the variable name passed as its argument is an optional argument that was not passed to a function by its caller. It returns
822:
This function determines whether the expression passed as its argument is an object rather than a value. This is equivalent to Visual Basic .NET's
838:
This function determines whether the expression passed as its argument is a reference rather than a value. This is equivalent to Visual Basic 6's
523:. Although the function takes an expression, rather than simply a variable name, any expression that isn't simply a variable name is considered
736:
This function, taking two arguments, is specific to
Transact-SQL. In contrast to the Visual Basic function by this name, it does not return a
1489:
1444:
1425:
1406:
1387:
1366:
1345:
1322:
1303:
1282:
1263:
1242:
551:
This function, in Visual Basic .NET, determines whether the expression passed as its argument is an exception object, i.e. an object of the
527:
to be an uninitialized variant. This function was available in Visual Basic 6, but has been superseded in Visual Basic .NET by the
427:
from this function in Visual Basic .NET. In Visual Basic 6, arrays are not reference types, and an uninitialized array will return
423:
This function determines whether the variable name passed as its argument is an array. Uninitialized arrays will, note, return
555:
class or one of its subclasses. In Visual Basic 6, the function tests whether the expression is a variant with the special
335:
593:
1693:
1666:
1639:
1585:
1612:
1531:
1558:
375:
throw exceptions if conversion is not possible. The validation functions allow one to test whether a conversion
1734:
770:
This function determines whether the expression passed as its argument can be converted to a number (be that a
443:
This function determines whether the expression passed as its argument can be converted to a variable of type
720:. A null value in any sub-expression of the expression causes the entire expression to be considered null.
802:
types to numbers, and monetary data in string form may contain currency indicator characters such as the '
452:
371:
value recording whether it was possible or not. (Note that the actual data conversion functions, such as
355:
463:
for such variables. Note that strings that contain a day of the week in addition to a date (e.g.
1468:
1455:
1485:
1440:
1421:
1402:
1383:
1362:
1341:
1318:
1299:
1278:
1259:
1238:
343:
487:
function. Note that it is not possible to directly compare an expression for equality to
17:
1377:
351:
331:
1728:
1356:
1293:
716:
This function determines whether the expression passed as its argument evaluates to
588:
This function determines whether the expression passed as its argument evaluates to
479:
This function determines whether the expression passed as its argument evaluates to
459:
can of course be converted, despite being uninitialized, so this will always return
1334:
380:
347:
1499:
744:, otherwise the second expression. The purpose of the function is to replace any
391:
indicates that it would not be. Similarly the type checking functions return a
35:
functions in the standard libraries of the C and C++ programming languages, see
753:
1712:
1685:
1658:
1631:
1604:
1577:
1550:
1510:
1253:
339:
36:
1340:. Teach Yourself in 24 Hours Series (2nd ed.). Sams Publishing.
1057:
1055:
1018:
1016:
1003:
1001:
1480:
Wakefield, Cameron; Sonder, Henk-Evert (2001). Lee, Wei Meng (ed.).
1176:
1174:
969:
967:
965:
940:
938:
395:
recording whether the argument expression is of a particular type.
1702:
1675:
1648:
1621:
1594:
1567:
1540:
1504:
1235:
Sams teach yourself
Microsoft Excel 2000 programming in 21 days
925:
923:
596:
instructions) which can itself be written in Visual Basic as:
398:
In
Transact-SQL, the functions return zero or one rather than
748:
values with another, presumably (but not required to be) non-
988:
986:
984:
982:
1098:
1096:
1094:
740:, but instead returns the first expression if that is not
1258:. Certification Study Guide Series. John Wiley and Sons.
898:
896:
1113:
1111:
592:. It is a simple library function (comprising just 4
1439:. In a Nutshell (2nd ed.). O'Reilly Media, Inc.
1298:. In a Nutshell (2nd ed.). O'Reilly Media, Inc.
379:
fail, and change the program's flow of control in an
1292:
Lomax, Paul; Childs, Matt; Petrusha, Ronald (2003).
41:
1435:Roman, Steven; Petrusha, Ron; Lomax, Paul (2002b).
1416:Roman, Steven; Petrusha, Ron; Lomax, Paul (2002a).
1216:
1180:
1141:
1073:
1061:
1022:
1007:
973:
956:
944:
875:
1333:
431:from this function just like an initialized array.
531:function. In VBScript, if a variant is assigned
1046:
1336:Sams teach yourself Visual Basic 6 in 24 hours
929:
1273:Knittel, Brian (2002). "VBScript Reference".
387:indicates that conversion would be possible,
8:
1332:Perry, Greg M.; Hettihewa, Sanjaya (1998).
1153:
1192:
992:
863:
752:, value. It is a two-argument version of
670:operator to compare an object directly to
483:. This is equivalent to Visual Basic 6's
1507:: SQL Server 2008: Transact-SQL Reference
1379:Visual Basic 2005: the complete reference
1361:. Mastering Series. John Wiley and Sons.
1255:MCSE: SQL Server 2000 design study guide
1102:
1085:
503:is the only way to test for equality to
346:. Several of them are also provided in
330:) are a set of functions in Microsoft's
1252:Israel, Marc; Jones, J. Steven (2001).
1129:
1117:
902:
856:
1034:
914:
887:
1524:
1165:
491:, because any expression of the form
7:
1313:Marcus, William; Levy, Alex (2002).
1237:. Sams Teach Yourself Series. Sams.
499:simply because it contains a null.
25:
1525:Microsoft's on-line documentation
1399:Mastering C# database programming
1217:Lomax, Childs & Petrusha 2003
1204:
1181:Roman, Petrusha & Lomax 2002a
1142:Roman, Petrusha & Lomax 2002b
1074:Roman, Petrusha & Lomax 2002b
1062:Lomax, Childs & Petrusha 2003
1023:Roman, Petrusha & Lomax 2002b
1008:Lomax, Childs & Petrusha 2003
974:Roman, Petrusha & Lomax 2002a
957:Roman, Petrusha & Lomax 2002b
945:Roman, Petrusha & Lomax 2002a
876:Roman, Petrusha & Lomax 2002b
700:. (For empty strings it returns
1705:: .NET Framework Class Library:
1678:: .NET Framework Class Library:
1651:: .NET Framework Class Library:
1624:: .NET Framework Class Library:
1597:: .NET Framework Class Library:
1570:: .NET Framework Class Library:
1543:: .NET Framework Class Library:
1418:VB.NET Language Pocket Reference
661:The effect of this is to return
1467:Steele, Patrick (2005-06-03).
1454:Steele, Patrick (2005-05-31).
1355:Petroutsos, Evangelos (2002).
535:, this function still returns
1:
1437:VB.NET Language in a Nutshell
336:Visual Basic for Applications
1482:VB.net Web developer's guide
1382:. McGraw-Hill Professional.
1047:Wakefield & Sonder 2001
1751:
1500:"ISNUMERIC (Transact-SQL)"
1473:Patrick Steele's .NET Blog
1460:Patrick Steele's .NET Blog
1358:Mastering Visual Basic.NET
1315:Visual Basic 6 Programming
930:Perry & Hettihewa 1998
320:data information functions
26:
1376:Petrusha, Ronald (2006).
1275:Windows XP under the hood
324:data inspection functions
18:Number validation in VB 6
1456:"IsNothing? Definitely!"
1233:Harris, Matthew (1999).
597:
447:, or is already of type
1420:. O'Reilly Media, Inc.
1401:. John Wiley and Sons.
1154:Israel & Jones 2001
878:, pp. 394 et seq..
465:"Sat, October 12, 2010"
453:Uninitialized variables
1469:"Avoiding IsNothing()"
1295:VBScript in a nutshell
1088:, p. 367,528,637.
864:Marcus & Levy 2002
328:data-testing functions
43:Function availability
1707:Microsoft.VisualBasic
1680:Microsoft.VisualBasic
1653:Microsoft.VisualBasic
1626:Microsoft.VisualBasic
1599:Microsoft.VisualBasic
1572:Microsoft.VisualBasic
1545:Microsoft.VisualBasic
1397:Price, Jason (2003).
362:What the functions do
1317:. Tata McGraw-Hill.
356:Microsoft SQL Server
959:, pp. 394–395.
481:System.DBNull.Value
44:
1277:. Que Publishing.
890:, p. 402–403.
866:, p. 750–751.
852:What supports what
354:Data Provider for
42:
1491:978-1-928994-48-0
1446:978-0-596-00308-1
1427:978-0-596-00428-6
1408:978-0-7821-4183-2
1389:978-0-07-226033-5
1368:978-0-7821-2877-2
1347:978-0-672-31533-6
1324:978-0-07-040290-4
1305:978-0-596-00488-0
1284:978-0-7897-2733-6
1265:978-0-7821-2942-7
1244:978-0-672-31543-5
495:will evaluate to
455:that are of type
344:Visual Basic .NET
309:
308:
16:(Redirected from
1742:
1716:
1708:
1697:
1689:
1681:
1670:
1662:
1654:
1643:
1635:
1627:
1616:
1608:
1600:
1589:
1581:
1573:
1562:
1554:
1546:
1535:
1514:
1495:
1476:
1463:
1450:
1431:
1412:
1393:
1372:
1351:
1339:
1328:
1309:
1288:
1269:
1248:
1220:
1214:
1208:
1202:
1196:
1190:
1184:
1178:
1169:
1163:
1157:
1151:
1145:
1139:
1133:
1127:
1121:
1115:
1106:
1100:
1089:
1083:
1077:
1071:
1065:
1059:
1050:
1044:
1038:
1032:
1026:
1020:
1011:
1005:
996:
990:
977:
971:
960:
954:
948:
942:
933:
927:
918:
912:
906:
900:
891:
885:
879:
873:
867:
861:
841:
835:
825:
819:
809:
805:
801:
797:
793:
789:
785:
781:
777:
773:
767:
756:
751:
747:
743:
739:
733:
719:
713:
703:
699:
695:
691:
683:
680:
673:
669:
664:
658:
655:
652:
649:
646:
643:
640:
637:
634:
631:
628:
625:
622:
619:
616:
613:
610:
607:
604:
601:
591:
585:
574:
568:
558:
554:
553:System.Exception
548:
538:
534:
530:
522:
516:
506:
502:
498:
494:
490:
486:
482:
476:
466:
462:
458:
450:
446:
440:
430:
426:
420:
409:
405:
401:
394:
390:
386:
374:
370:
315:
290:
268:
246:
224:
202:
180:
158:
136:
114:
92:
70:
45:
34:
21:
1750:
1749:
1745:
1744:
1743:
1741:
1740:
1739:
1735:Microsoft BASIC
1725:
1724:
1723:
1706:
1695:
1692:
1679:
1668:
1665:
1652:
1641:
1638:
1625:
1614:
1611:
1598:
1587:
1584:
1571:
1560:
1557:
1544:
1533:
1530:
1527:
1522:
1520:Further reading
1517:
1498:
1492:
1479:
1466:
1453:
1447:
1434:
1428:
1415:
1409:
1396:
1390:
1375:
1369:
1354:
1348:
1331:
1325:
1312:
1306:
1291:
1285:
1272:
1266:
1251:
1245:
1232:
1228:
1223:
1215:
1211:
1203:
1199:
1193:Petroutsos 2002
1191:
1187:
1179:
1172:
1164:
1160:
1152:
1148:
1144:, pp. 394.
1140:
1136:
1128:
1124:
1116:
1109:
1101:
1092:
1084:
1080:
1076:, pp. 397.
1072:
1068:
1060:
1053:
1045:
1041:
1033:
1029:
1025:, pp. 395.
1021:
1014:
1006:
999:
993:Petroutsos 2002
991:
980:
972:
963:
955:
951:
943:
936:
928:
921:
913:
909:
901:
894:
886:
882:
874:
870:
862:
858:
854:
849:
839:
829:
823:
813:
807:
803:
799:
795:
791:
787:
783:
779:
775:
771:
761:
754:
749:
745:
741:
737:
723:
717:
707:
701:
697:
693:
685:
681:
675:
671:
667:
662:
660:
659:
656:
653:
650:
647:
644:
641:
638:
635:
632:
629:
626:
623:
620:
617:
614:
611:
608:
605:
602:
599:
589:
579:
572:
562:
556:
552:
542:
536:
532:
528:
520:
510:
504:
500:
496:
492:
488:
484:
480:
470:
464:
460:
456:
448:
444:
434:
428:
424:
414:
407:
403:
399:
392:
388:
384:
372:
368:
364:
318:(also known as
313:
288:
266:
244:
222:
200:
178:
156:
134:
112:
90:
68:
40:
28:
23:
22:
15:
12:
11:
5:
1748:
1746:
1738:
1737:
1727:
1726:
1722:
1719:
1718:
1717:
1690:
1663:
1636:
1609:
1582:
1555:
1526:
1523:
1521:
1518:
1516:
1515:
1513:. 23 May 2023.
1496:
1490:
1477:
1464:
1451:
1445:
1432:
1426:
1413:
1407:
1394:
1388:
1373:
1367:
1352:
1346:
1329:
1323:
1310:
1304:
1289:
1283:
1270:
1264:
1249:
1243:
1229:
1227:
1224:
1222:
1221:
1219:, p. 343.
1209:
1197:
1195:, p. 114.
1185:
1170:
1168:, p. 119.
1158:
1156:, p. 476.
1146:
1134:
1122:
1107:
1105:, p. 438.
1090:
1078:
1066:
1064:, p. 342.
1051:
1049:, p. 690.
1039:
1037:, p. 416.
1027:
1012:
1010:, p. 341.
997:
995:, p. 115.
978:
961:
949:
934:
932:, p. 237.
919:
917:, p. 402.
907:
905:, p. 609.
892:
880:
868:
855:
853:
850:
848:
845:
844:
843:
836:
827:
820:
811:
768:
759:
734:
721:
714:
705:
598:
586:
577:
569:
560:
549:
540:
517:
508:
477:
468:
441:
432:
421:
363:
360:
352:.NET Framework
332:Visual Basic 6
307:
306:
303:
300:
297:
294:
291:
285:
284:
281:
278:
275:
272:
269:
263:
262:
259:
256:
253:
250:
247:
241:
240:
237:
234:
231:
228:
225:
219:
218:
215:
212:
209:
206:
203:
197:
196:
193:
190:
187:
184:
181:
175:
174:
171:
168:
165:
162:
159:
153:
152:
149:
146:
143:
140:
137:
131:
130:
127:
124:
121:
118:
115:
109:
108:
105:
102:
99:
96:
93:
87:
86:
83:
80:
77:
74:
71:
65:
64:
61:
58:
55:
52:
49:
48:Function name
24:
14:
13:
10:
9:
6:
4:
3:
2:
1747:
1736:
1733:
1732:
1730:
1720:
1714:
1710:
1704:
1699:
1691:
1687:
1683:
1677:
1672:
1664:
1660:
1656:
1650:
1645:
1637:
1633:
1629:
1623:
1618:
1610:
1606:
1602:
1596:
1591:
1583:
1579:
1575:
1569:
1564:
1556:
1552:
1548:
1542:
1537:
1529:
1528:
1519:
1512:
1508:
1506:
1501:
1497:
1493:
1487:
1483:
1478:
1474:
1470:
1465:
1461:
1457:
1452:
1448:
1442:
1438:
1433:
1429:
1423:
1419:
1414:
1410:
1404:
1400:
1395:
1391:
1385:
1381:
1380:
1374:
1370:
1364:
1360:
1359:
1353:
1349:
1343:
1338:
1337:
1330:
1326:
1320:
1316:
1311:
1307:
1301:
1297:
1296:
1290:
1286:
1280:
1276:
1271:
1267:
1261:
1257:
1256:
1250:
1246:
1240:
1236:
1231:
1230:
1225:
1218:
1213:
1210:
1206:
1201:
1198:
1194:
1189:
1186:
1183:, p. 87.
1182:
1177:
1175:
1171:
1167:
1162:
1159:
1155:
1150:
1147:
1143:
1138:
1135:
1131:
1126:
1123:
1119:
1114:
1112:
1108:
1104:
1103:Petrusha 2006
1099:
1097:
1095:
1091:
1087:
1086:Petrusha 2006
1082:
1079:
1075:
1070:
1067:
1063:
1058:
1056:
1052:
1048:
1043:
1040:
1036:
1031:
1028:
1024:
1019:
1017:
1013:
1009:
1004:
1002:
998:
994:
989:
987:
985:
983:
979:
976:, p. 86.
975:
970:
968:
966:
962:
958:
953:
950:
947:, p. 69.
946:
941:
939:
935:
931:
926:
924:
920:
916:
911:
908:
904:
899:
897:
893:
889:
884:
881:
877:
872:
869:
865:
860:
857:
851:
846:
837:
833:
828:
824:IsReference()
821:
817:
812:
769:
765:
760:
757:
735:
731:
727:
722:
715:
711:
706:
689:
678:
595:
587:
583:
578:
570:
566:
561:
550:
546:
541:
526:
518:
514:
509:
505:System.DBNull
489:System.DBNull
478:
474:
469:
454:
442:
438:
433:
422:
418:
413:
412:
411:
396:
382:
378:
361:
359:
357:
353:
349:
345:
341:
337:
333:
329:
325:
321:
317:
304:
301:
298:
295:
292:
287:
286:
282:
279:
276:
273:
270:
265:
264:
260:
257:
254:
251:
248:
243:
242:
238:
235:
232:
229:
226:
221:
220:
216:
213:
210:
207:
204:
199:
198:
194:
191:
188:
185:
182:
177:
176:
172:
169:
166:
163:
160:
155:
154:
150:
147:
144:
141:
138:
133:
132:
128:
125:
122:
119:
116:
111:
110:
106:
103:
100:
97:
94:
89:
88:
84:
81:
78:
75:
72:
67:
66:
62:
59:
56:
53:
50:
47:
46:
38:
32:
19:
1701:
1674:
1647:
1620:
1593:
1566:
1539:
1503:
1484:. Syngress.
1481:
1472:
1459:
1436:
1417:
1398:
1378:
1357:
1335:
1314:
1294:
1274:
1254:
1234:
1226:Sources used
1212:
1205:MSDN & 1
1200:
1188:
1161:
1149:
1137:
1130:Steele 2005b
1125:
1118:Steele 2005a
1081:
1069:
1042:
1030:
952:
910:
903:Knittel 2002
883:
871:
859:
831:
830:IsReference(
815:
763:
729:
725:
709:
687:
684:rather than
676:
581:
564:
544:
524:
512:
472:
436:
416:
397:
381:if statement
376:
365:
348:Transact-SQL
327:
323:
319:
312:
310:
30:
1696:IsReference
1035:Harris 1999
915:Harris 1999
888:Harris 1999
730:expression2
726:expression1
529:IsNothing()
289:IsReference
1166:Price 2003
847:References
840:IsObject()
832:expression
816:expression
800:smallmoney
764:expression
762:IsNumeric(
755:COALESCE()
710:expression
688:expression
686:IsNothing(
682:IS Nothing
677:expression
674:, writing
642:Expression
618:Expression
582:expression
580:IsNothing(
563:IsMissing(
545:expression
513:expression
501:IsDBNull()
493:x = DbNull
473:expression
437:expression
1713:Microsoft
1709:namespace
1686:Microsoft
1682:namespace
1669:IsNumeric
1659:Microsoft
1655:namespace
1642:IsNothing
1632:Microsoft
1628:namespace
1605:Microsoft
1601:namespace
1578:Microsoft
1574:namespace
1551:Microsoft
1547:namespace
1511:Microsoft
842:function.
826:function.
814:IsObject(
609:IsNothing
471:IsDBNull(
316:functions
245:IsNumeric
201:IsNothing
179:IsMissing
57:VBScript
1729:Category
1588:IsDBNull
657:Function
606:Function
559:subtype.
543:IsError(
511:IsEmpty(
485:IsNull()
415:IsArray(
340:VBScript
267:IsObject
113:IsDBNull
60:VB .NET
27:For the
1698:method"
1671:method"
1644:method"
1617:method"
1615:IsError
1590:method"
1563:method"
1536:method"
1534:IsArray
792:Decimal
776:Integer
738:Boolean
724:IsNull(
708:IsNull(
672:Nothing
648:Nothing
633:Boolean
590:Nothing
576:exists.
557:vbError
533:Nothing
435:IsDate(
402:values
400:Boolean
393:Boolean
369:Boolean
350:by the
157:IsError
135:IsEmpty
69:IsArray
37:ctype.h
1561:IsDate
1488:
1443:
1424:
1405:
1386:
1365:
1344:
1321:
1302:
1281:
1262:
1241:
806:' or '
788:Double
784:Single
679:
636:Return
624:Object
603:Shared
600:Public
497:DbNull
342:, and
223:IsNull
91:IsDate
63:T-SQL
1721:Other
796:money
790:, or
772:Short
702:False
694:False
663:False
615:ByVal
537:False
425:False
408:False
389:False
377:would
373:Oct()
326:, or
51:VB 6
1703:MSDN
1676:MSDN
1649:MSDN
1622:MSDN
1595:MSDN
1568:MSDN
1541:MSDN
1505:MSDN
1486:ISBN
1441:ISBN
1422:ISBN
1403:ISBN
1384:ISBN
1363:ISBN
1342:ISBN
1319:ISBN
1300:ISBN
1279:ISBN
1260:ISBN
1239:ISBN
798:and
780:Long
750:NULL
746:NULL
742:NULL
718:Null
698:True
573:True
565:name
521:Null
461:True
457:Date
449:Date
445:Date
429:True
417:name
406:and
404:True
385:True
383:.)
311:The
261:Yes
239:Yes
107:Yes
54:VBA
31:xxxx
654:End
594:CIL
525:not
451:.
305:No
302:Yes
283:No
277:Yes
274:Yes
271:Yes
258:Yes
255:Yes
252:Yes
249:Yes
233:Yes
230:Yes
227:Yes
217:No
214:Yes
195:No
186:Yes
183:Yes
173:No
170:Yes
164:Yes
161:Yes
151:No
145:Yes
142:Yes
139:Yes
129:No
126:Yes
104:Yes
101:Yes
98:Yes
95:Yes
85:No
82:Yes
79:Yes
76:Yes
73:Yes
1731::
1711:.
1700:.
1684:.
1673:.
1657:.
1646:.
1630:.
1619:.
1603:.
1592:.
1576:.
1565:.
1549:.
1538:.
1509:.
1502:.
1471:.
1458:.
1173:^
1110:^
1093:^
1054:^
1015:^
1000:^
981:^
964:^
937:^
922:^
895:^
808:$
786:,
782:,
778:,
774:,
704:.)
668:IS
645:Is
630:As
621:As
410:.
358:.
338:,
334:,
322:,
314:Is
299:No
296:No
293:No
280:No
236:No
211:No
208:No
205:No
192:No
189:No
167:No
148:No
123:No
120:No
117:No
33:()
29:is
1715:.
1694:"
1688:.
1667:"
1661:.
1640:"
1634:.
1613:"
1607:.
1586:"
1580:.
1559:"
1553:.
1532:"
1494:.
1475:.
1462:.
1449:.
1430:.
1411:.
1392:.
1371:.
1350:.
1327:.
1308:.
1287:.
1268:.
1247:.
1207:.
1132:.
1120:.
834:)
818:)
804:£
766:)
758:.
732:)
728:,
712:)
690:)
651:)
639:(
627:)
612:(
584:)
567:)
547:)
539:.
515:)
507:.
475:)
439:)
419:)
39:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.