diff --git a/Doxygen/annotated.html b/Doxygen/annotated.html new file mode 100644 index 0000000..1e7384a --- /dev/null +++ b/Doxygen/annotated.html @@ -0,0 +1,84 @@ + + + + + + + +My Project: Class List + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 12]
+ + + + +
 Nmain
 CAttrDict
 CConfig
 Ctest
+
+
+ + + + diff --git a/Doxygen/annotated_dup.js b/Doxygen/annotated_dup.js new file mode 100644 index 0000000..1fcf97e --- /dev/null +++ b/Doxygen/annotated_dup.js @@ -0,0 +1,21 @@ +var annotated_dup = +[ + [ "How it Works", "md_primitive-master__r_e_a_d_m_e.html#autotoc_md1", null ], + [ "Primitive for macOS", "md_primitive-master__r_e_a_d_m_e.html#autotoc_md2", null ], + [ "Twitter", "md_primitive-master__r_e_a_d_m_e.html#autotoc_md3", null ], + [ "Command-line Usage", "md_primitive-master__r_e_a_d_m_e.html#autotoc_md4", null ], + [ "Output Formats", "md_primitive-master__r_e_a_d_m_e.html#autotoc_md5", null ], + [ "Progression", "md_primitive-master__r_e_a_d_m_e.html#autotoc_md6", null ], + [ "Static Animation", "md_primitive-master__r_e_a_d_m_e.html#autotoc_md7", null ], + [ "Creative Constraints", "md_primitive-master__r_e_a_d_m_e.html#autotoc_md8", null ], + [ "Shape and Iteration Comparison Matrix", "md_primitive-master__r_e_a_d_m_e.html#autotoc_md9", null ], + [ "How it Works, Part II", "md_primitive-master__r_e_a_d_m_e.html#autotoc_md10", null ], + [ "Primitives", "md_primitive-master__r_e_a_d_m_e.html#autotoc_md11", null ], + [ "Features", "md_primitive-master__r_e_a_d_m_e.html#autotoc_md12", null ], + [ "Inspiration", "md_primitive-master__r_e_a_d_m_e.html#autotoc_md13", null ], + [ "Examples", "md_primitive-master__r_e_a_d_m_e.html#autotoc_md14", null ], + [ "main", null, [ + [ "AttrDict", "classmain_1_1_attr_dict.html", "classmain_1_1_attr_dict" ], + [ "Config", "classmain_1_1_config.html", "classmain_1_1_config" ] + ] ] +]; \ No newline at end of file diff --git a/Doxygen/bc_s.png b/Doxygen/bc_s.png new file mode 100644 index 0000000..224b29a Binary files /dev/null and b/Doxygen/bc_s.png differ diff --git a/Doxygen/bdwn.png b/Doxygen/bdwn.png new file mode 100644 index 0000000..940a0b9 Binary files /dev/null and b/Doxygen/bdwn.png differ diff --git a/Doxygen/class_data_classes_1_1_bracket-members.html b/Doxygen/class_data_classes_1_1_bracket-members.html new file mode 100644 index 0000000..4ed6720 --- /dev/null +++ b/Doxygen/class_data_classes_1_1_bracket-members.html @@ -0,0 +1,123 @@ + + + + + + + +My Project: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
DataClasses.Bracket Member List
+
+
+ +

This is the complete list of members for DataClasses.Bracket, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
arrangeInitialMatches(ArrayList< Match > matchList) (defined in DataClasses.Bracket)DataClasses.Bracket
Bracket(ArrayList< Wrestler > wrestlerList) (defined in DataClasses.Bracket)DataClasses.Bracket
bracketable(int number) (defined in DataClasses.Bracket)DataClasses.Bracket
determineRounds() (defined in DataClasses.Bracket)DataClasses.Bracket
expand(int roundsLeft, int[] prevArr) (defined in DataClasses.Bracket)DataClasses.Bracket
findMatch(int matchNumber) (defined in DataClasses.Bracket)DataClasses.Bracket
hasMatch(int matchNumber) (defined in DataClasses.Bracket)DataClasses.Bracket
initializeBracket() (defined in DataClasses.Bracket)DataClasses.Bracket
nextRound() (defined in DataClasses.Bracket)DataClasses.Bracket
printBlanks(int additionalBlanks, int totalMatches) (defined in DataClasses.Bracket)DataClasses.Bracket
printBracket(boolean flag) (defined in DataClasses.Bracket)DataClasses.Bracket
printRound(ArrayList< Match > arr, int level) (defined in DataClasses.Bracket)DataClasses.Bracket
printSpaces(int n) (defined in DataClasses.Bracket)DataClasses.Bracket
printUnderscore(int n) (defined in DataClasses.Bracket)DataClasses.Bracket
seedWrestlers() (defined in DataClasses.Bracket)DataClasses.Bracket
twoPow(int number) (defined in DataClasses.Bracket)DataClasses.Bracket
updateMatch(int roundID, int pos, String winningColor, int greenPoints, int redPoints, int fallType, String fallTime) (defined in DataClasses.Bracket)DataClasses.Bracket
writeBlanks(int additionalBlanks, int totalMatches, BufferedWriter bw) (defined in DataClasses.Bracket)DataClasses.Bracket
writeRound(ArrayList< Match > arr, int level, BufferedWriter bw) (defined in DataClasses.Bracket)DataClasses.Bracket
writeSpaces(int n) (defined in DataClasses.Bracket)DataClasses.Bracket
writeUnderscore(int n) (defined in DataClasses.Bracket)DataClasses.Bracket
+
+ + + + diff --git a/Doxygen/class_data_classes_1_1_bracket.html b/Doxygen/class_data_classes_1_1_bracket.html new file mode 100644 index 0000000..817a234 --- /dev/null +++ b/Doxygen/class_data_classes_1_1_bracket.html @@ -0,0 +1,182 @@ + + + + + + + +My Project: DataClasses.Bracket Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
DataClasses.Bracket Class Reference
+
+
+
+Inheritance diagram for DataClasses.Bracket:
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Bracket (ArrayList< Wrestler > wrestlerList)
 
+int determineRounds ()
 
+int twoPow (int number)
 
+boolean bracketable (int number)
 
+void initializeBracket ()
 
+void nextRound ()
 
+void updateMatch (int roundID, int pos, String winningColor, int greenPoints, int redPoints, int fallType, String fallTime)
 
+void seedWrestlers ()
 
+ArrayList< MatcharrangeInitialMatches (ArrayList< Match > matchList)
 
+void printBracket (boolean flag)
 
+void printBlanks (int additionalBlanks, int totalMatches)
 
+void writeBlanks (int additionalBlanks, int totalMatches, BufferedWriter bw)
 
+void printRound (ArrayList< Match > arr, int level)
 
+void writeRound (ArrayList< Match > arr, int level, BufferedWriter bw)
 
+void printSpaces (int n)
 
+String writeSpaces (int n) throws Exception
 
+void printUnderscore (int n)
 
+String writeUnderscore (int n) throws Exception
 
+int[] expand (int roundsLeft, int[] prevArr)
 
+boolean hasMatch (int matchNumber)
 
+int[] findMatch (int matchNumber)
 
+

Detailed Description

+
Author
Jared Murphy https://github.com/murphman29
+

// * ==Bracket==//Pick up here // // =Member Variables= // -roundThreeTwo:Match[16] // -roundOneSix:Match[8] // -roundZeroEight:Match[4] // -roundZeroFour:Match[2] // -roundZeroTwo:Match[1] // -winner:Wrestler // -roundsNeeded:int // -weightClass:WeightClass // -primary:boolean //Primary or Consolation bracket // // =Methods= // +void:Bracket(ArrayList<Wrestler>, WeightClass, boolean) // +ArrayList<Match>:makeMatches(int round) // +void:advanceWrestler(int round, int matchID, String winningColor) // +void:printBracket() //

+

The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/Doxygen/class_data_classes_1_1_bracket.js b/Doxygen/class_data_classes_1_1_bracket.js new file mode 100644 index 0000000..b28e403 --- /dev/null +++ b/Doxygen/class_data_classes_1_1_bracket.js @@ -0,0 +1,24 @@ +var class_data_classes_1_1_bracket = +[ + [ "Bracket", "class_data_classes_1_1_bracket.html#af9e498bfccfb260f890ccbea2f8b5650", null ], + [ "arrangeInitialMatches", "class_data_classes_1_1_bracket.html#a47d0d1f4ec6fd7f2cf01bf3523a2a3ef", null ], + [ "bracketable", "class_data_classes_1_1_bracket.html#a97ca897b9ff5d6159dbaf8097f32ce2f", null ], + [ "determineRounds", "class_data_classes_1_1_bracket.html#ac2022da3327021dba4a29990fa7f9575", null ], + [ "expand", "class_data_classes_1_1_bracket.html#a2a9854c9608068f8aad23cb05d8cd75f", null ], + [ "findMatch", "class_data_classes_1_1_bracket.html#a1a0d6a38f3c6a2297b641e00f6199b90", null ], + [ "hasMatch", "class_data_classes_1_1_bracket.html#abd1cd81b2729d9cf93bfa5a470470681", null ], + [ "initializeBracket", "class_data_classes_1_1_bracket.html#a4dce43af61ff7f2635f71c047c22040a", null ], + [ "nextRound", "class_data_classes_1_1_bracket.html#a376f21996948b2c3b07fe38768003738", null ], + [ "printBlanks", "class_data_classes_1_1_bracket.html#a9032a0a44b8d1bad27e18235ded0f3ce", null ], + [ "printBracket", "class_data_classes_1_1_bracket.html#a463cdb0319b2dde27b7dd0d28676c1df", null ], + [ "printRound", "class_data_classes_1_1_bracket.html#ae45c91be5673ae95e7ce859e1db04872", null ], + [ "printSpaces", "class_data_classes_1_1_bracket.html#a548395d9f86923a6fdb8d1e4e896a105", null ], + [ "printUnderscore", "class_data_classes_1_1_bracket.html#a1c64fb82dea7fa49b9f56b87958d9adb", null ], + [ "seedWrestlers", "class_data_classes_1_1_bracket.html#a90538f9d5525813e680456a800eecf1f", null ], + [ "twoPow", "class_data_classes_1_1_bracket.html#a10af1a395d5b55d6f00653d7693f8f80", null ], + [ "updateMatch", "class_data_classes_1_1_bracket.html#a8ab71420c5c8a04ddae54fce2306bbd2", null ], + [ "writeBlanks", "class_data_classes_1_1_bracket.html#a543185691ed4f423126bad24bb2afafc", null ], + [ "writeRound", "class_data_classes_1_1_bracket.html#acf0285c077fec74ef2c53894591a6b7b", null ], + [ "writeSpaces", "class_data_classes_1_1_bracket.html#a3eea4b1ff805905b6f118d50571292ac", null ], + [ "writeUnderscore", "class_data_classes_1_1_bracket.html#abd173a3f4f587e4a5d721fcee3f9c87f", null ] +]; \ No newline at end of file diff --git a/Doxygen/class_data_classes_1_1_bracket.png b/Doxygen/class_data_classes_1_1_bracket.png new file mode 100644 index 0000000..dea4632 Binary files /dev/null and b/Doxygen/class_data_classes_1_1_bracket.png differ diff --git a/Doxygen/class_data_classes_1_1_match-members.html b/Doxygen/class_data_classes_1_1_match-members.html new file mode 100644 index 0000000..9aa7a0b --- /dev/null +++ b/Doxygen/class_data_classes_1_1_match-members.html @@ -0,0 +1,128 @@ + + + + + + + +My Project: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
DataClasses.Match Member List
+
+
+ +

This is the complete list of members for DataClasses.Match, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
compareTo(Object o) (defined in DataClasses.Match)DataClasses.Match
generateMatchRecord(int roundNumber, int matchInRound) (defined in DataClasses.Match)DataClasses.Match
getFallTime() (defined in DataClasses.Match)DataClasses.Match
getGreenPoints() (defined in DataClasses.Match)DataClasses.Match
getGreenWrestler() (defined in DataClasses.Match)DataClasses.Match
getMatchID() (defined in DataClasses.Match)DataClasses.Match
getMatID() (defined in DataClasses.Match)DataClasses.Match
getRedPoints() (defined in DataClasses.Match)DataClasses.Match
getRedWrestler() (defined in DataClasses.Match)DataClasses.Match
getRound() (defined in DataClasses.Match)DataClasses.Match
getTeamPoints() (defined in DataClasses.Match)DataClasses.Match
getWinner() (defined in DataClasses.Match)DataClasses.Match
getWinnerTeam() (defined in DataClasses.Match)DataClasses.Match
isComplete() (defined in DataClasses.Match)DataClasses.Match
Match(int matchID, String green, String greenTeam, String red, String redTeam, int matID, int round, int weightClass) (defined in DataClasses.Match)DataClasses.Match
Match(int matchID, String green, String greenTeam, String red, String redTeam, int round, int weightClass) (defined in DataClasses.Match)DataClasses.Match
Match() (defined in DataClasses.Match)DataClasses.Match
setMatchID(int matchID) (defined in DataClasses.Match)DataClasses.Match
setMatID(int matID) (defined in DataClasses.Match)DataClasses.Match
toString() (defined in DataClasses.Match)DataClasses.Match
updateMatch(int fallType, String winningColor) (defined in DataClasses.Match)DataClasses.Match
updateMatch(int fallType, String winningColor, int greenPoints, int redPoints) (defined in DataClasses.Match)DataClasses.Match
updateMatch(int fallType, String winningColor, int greenPoints, int redPoints, String fallTime) (defined in DataClasses.Match)DataClasses.Match
updateMatch(String fallType, String winningColor) (defined in DataClasses.Match)DataClasses.Match
updateMatch(String fallType, String winningColor, int greenPoints, int redPoints) (defined in DataClasses.Match)DataClasses.Match
updateMatch(String fallType, String winningColor, int greenPoints, int redPoints, String fallTime) (defined in DataClasses.Match)DataClasses.Match
+
+ + + + diff --git a/Doxygen/class_data_classes_1_1_match.html b/Doxygen/class_data_classes_1_1_match.html new file mode 100644 index 0000000..c8a7201 --- /dev/null +++ b/Doxygen/class_data_classes_1_1_match.html @@ -0,0 +1,196 @@ + + + + + + + +My Project: DataClasses.Match Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
DataClasses.Match Class Reference
+
+
+
+Inheritance diagram for DataClasses.Match:
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Match (int matchID, String green, String greenTeam, String red, String redTeam, int matID, int round, int weightClass)
 
Match (int matchID, String green, String greenTeam, String red, String redTeam, int round, int weightClass)
 
+void setMatchID (int matchID)
 
+void setMatID (int matID)
 
+int getMatID ()
 
+String getGreenWrestler ()
 
+String getRedWrestler ()
 
+String getWinner ()
 
+String getWinnerTeam ()
 
+void updateMatch (int fallType, String winningColor)
 
+void updateMatch (int fallType, String winningColor, int greenPoints, int redPoints)
 
+void updateMatch (int fallType, String winningColor, int greenPoints, int redPoints, String fallTime)
 
+void updateMatch (String fallType, String winningColor)
 
+void updateMatch (String fallType, String winningColor, int greenPoints, int redPoints)
 
+void updateMatch (String fallType, String winningColor, int greenPoints, int redPoints, String fallTime)
 
+MatchRecord generateMatchRecord (int roundNumber, int matchInRound)
 
+int getTeamPoints ()
 
+boolean isComplete ()
 
+int getRound ()
 
+String getFallTime ()
 
+int getGreenPoints ()
 
+int getRedPoints ()
 
+int getMatchID ()
 
+String toString ()
 
+int compareTo (Object o)
 
+

Detailed Description

+
Author
Jared Murphy https://github.com/murphman29
+

==Match implements Comparable==

+

=Member Variables= -matchID:int -greenWrestler:String //Will be regarded as Wrestler One -redWrestler:String //Will be regarded as Wrestler Two -matNumber:int -fallType:int //Before being placed into the match details, it will be converted from a String to an integer. pin = 6, tech = 5, major decision = 4, decision = 3, BYE = 1 -fallTime:String -winningColor:String //GREEN or RED -redPoints:int -greenPoints:int -complete:boolean -round:int

+

=Methods= +void:Wrestler(int matchID, String a, String b, int matID) +void:Wrestler(int matchID, String a, String b) +void:setMatID(int matID) +Wrestler:getWinner() +String:getGreenWrestler() +String:getRedWrestler() +void:updateMatch(int fallType, String winningColor) +void:updateMatch(int fallType, String winningColor, int greenPoints, int redPoints) +void:updateMatch(int fallType, String winningColor, int greenPoints, int redPoints, String fallTime) +boolean:isComplete() +int:getRound() +int:getFallType() +String:getFallTime() +String:getWinningColor() +int:getGreenPoints() +int:getRedPoints() +String:toString() +int:CompareTo(Object o)

+

The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/Doxygen/class_data_classes_1_1_match.js b/Doxygen/class_data_classes_1_1_match.js new file mode 100644 index 0000000..6d84501 --- /dev/null +++ b/Doxygen/class_data_classes_1_1_match.js @@ -0,0 +1,29 @@ +var class_data_classes_1_1_match = +[ + [ "Match", "class_data_classes_1_1_match.html#afff5e044a953a3bca08e689ef199fbc1", null ], + [ "Match", "class_data_classes_1_1_match.html#a43b9018f507cd2284a099c989bfbaa92", null ], + [ "Match", "class_data_classes_1_1_match.html#a07276ecda1a4bcb54a2e0ab1d5f090c3", null ], + [ "compareTo", "class_data_classes_1_1_match.html#a8ccc000e68f81097dc138dd2aba39916", null ], + [ "generateMatchRecord", "class_data_classes_1_1_match.html#a2326ed2216cfcadce26b97021fea754b", null ], + [ "getFallTime", "class_data_classes_1_1_match.html#ae36403e50b8aee7b214cdcefa3a0b2a3", null ], + [ "getGreenPoints", "class_data_classes_1_1_match.html#a63a11e91d4ab064563733ea6a2b4a253", null ], + [ "getGreenWrestler", "class_data_classes_1_1_match.html#a482058c8cd0f840f6dc2e9b475d22bba", null ], + [ "getMatchID", "class_data_classes_1_1_match.html#aeabb58bdc98ce94180e2cb23434a262a", null ], + [ "getMatID", "class_data_classes_1_1_match.html#a9d2e1f7b706c8c5c8f6741689dbc86b9", null ], + [ "getRedPoints", "class_data_classes_1_1_match.html#ad1e9ae47ec1c728c21db1688443428ca", null ], + [ "getRedWrestler", "class_data_classes_1_1_match.html#a246b81c936b3684548635da067052ee2", null ], + [ "getRound", "class_data_classes_1_1_match.html#a463e6f21a09f7113c4cd921d3174b2da", null ], + [ "getTeamPoints", "class_data_classes_1_1_match.html#a0627045e315cd92e9d1331369d3a4198", null ], + [ "getWinner", "class_data_classes_1_1_match.html#af0fe477f3f592bf4452af6efbe887c72", null ], + [ "getWinnerTeam", "class_data_classes_1_1_match.html#a9f9a3a1a2f998d9c3711500e90edfec5", null ], + [ "isComplete", "class_data_classes_1_1_match.html#a5f35dd5121b21060c48823ad9e415723", null ], + [ "setMatchID", "class_data_classes_1_1_match.html#a8c6ad0fe495e9803c05427f7a9ac4cd6", null ], + [ "setMatID", "class_data_classes_1_1_match.html#a581f13ac05caa62d6a77112010a5dafd", null ], + [ "toString", "class_data_classes_1_1_match.html#a20c02d0617841c1d95b655b9725c2851", null ], + [ "updateMatch", "class_data_classes_1_1_match.html#aa00278184fd3bb0a6b519625f44dd636", null ], + [ "updateMatch", "class_data_classes_1_1_match.html#a408bbd0a76d6b677db52d9bd1bfb239b", null ], + [ "updateMatch", "class_data_classes_1_1_match.html#a39a0f3388be46318239ade47c0808ac9", null ], + [ "updateMatch", "class_data_classes_1_1_match.html#a76fdb6b94dd3fbb65bfd835c118eeee5", null ], + [ "updateMatch", "class_data_classes_1_1_match.html#ad0fafac3a0cdc0ad3b1f0648cb9f50c6", null ], + [ "updateMatch", "class_data_classes_1_1_match.html#a1d690a1103146f1a723d8db1770f2ed7", null ] +]; \ No newline at end of file diff --git a/Doxygen/class_data_classes_1_1_match.png b/Doxygen/class_data_classes_1_1_match.png new file mode 100644 index 0000000..fa1e11e Binary files /dev/null and b/Doxygen/class_data_classes_1_1_match.png differ diff --git a/Doxygen/class_data_classes_1_1_team-members.html b/Doxygen/class_data_classes_1_1_team-members.html new file mode 100644 index 0000000..fb9ed93 --- /dev/null +++ b/Doxygen/class_data_classes_1_1_team-members.html @@ -0,0 +1,111 @@ + + + + + + + +My Project: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
DataClasses.Team Member List
+
+
+ +

This is the complete list of members for DataClasses.Team, including all inherited members.

+ + + + + + + + + + +
addTeamScore(int pointsToAdd) (defined in DataClasses.Team)DataClasses.Team
compareTo(Object o) (defined in DataClasses.Team)DataClasses.Team
getInitials() (defined in DataClasses.Team)DataClasses.Team
getTeamMascot() (defined in DataClasses.Team)DataClasses.Team
getTeamName() (defined in DataClasses.Team)DataClasses.Team
getTeamScore() (defined in DataClasses.Team)DataClasses.Team
Team(String teamName, String teamInitials) (defined in DataClasses.Team)DataClasses.Team
Team(String teamName, String teamInitials, String mascot) (defined in DataClasses.Team)DataClasses.Team
toString() (defined in DataClasses.Team)DataClasses.Team
+
+ + + + diff --git a/Doxygen/class_data_classes_1_1_team.html b/Doxygen/class_data_classes_1_1_team.html new file mode 100644 index 0000000..53c969a --- /dev/null +++ b/Doxygen/class_data_classes_1_1_team.html @@ -0,0 +1,148 @@ + + + + + + + +My Project: DataClasses.Team Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
DataClasses.Team Class Reference
+
+
+
+Inheritance diagram for DataClasses.Team:
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Team (String teamName, String teamInitials)
 
Team (String teamName, String teamInitials, String mascot)
 
+String getTeamName ()
 
+String getInitials ()
 
+String getTeamMascot ()
 
+int getTeamScore ()
 
+void addTeamScore (int pointsToAdd)
 
+String toString ()
 
+int compareTo (Object o)
 
+

Detailed Description

+
Author
Jared Murphy https://github.com/murphman29
+

==Team implements Comparable==

+

=Member Variables= -teamName:String -teamInitials:String -teamMascot:String -teamScore:int

+

=Methods= +void:Team(String teamName, String teamInitials) +void:Team(String teamName, String teamInitials, String teamMascot) +String:getTeamName() +String:getInitials() +String:getTeamMascot() +int:getTeamScore() +void:addTeamScore(int score) +void:removeTeamScore(int score) +int:compareTo(Object o)

+

The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/Doxygen/class_data_classes_1_1_team.js b/Doxygen/class_data_classes_1_1_team.js new file mode 100644 index 0000000..15014a3 --- /dev/null +++ b/Doxygen/class_data_classes_1_1_team.js @@ -0,0 +1,12 @@ +var class_data_classes_1_1_team = +[ + [ "Team", "class_data_classes_1_1_team.html#ac470cfdca3b818a7bb363091e679e570", null ], + [ "Team", "class_data_classes_1_1_team.html#acf1c2d960c8a321c34486d24cecccaef", null ], + [ "addTeamScore", "class_data_classes_1_1_team.html#a62af8eee36af8392ef58c0bac9ba31b2", null ], + [ "compareTo", "class_data_classes_1_1_team.html#a12060d6c480fe8aa5cf678376de4641a", null ], + [ "getInitials", "class_data_classes_1_1_team.html#acc91e78e4c36b86041c40f659c1587d7", null ], + [ "getTeamMascot", "class_data_classes_1_1_team.html#acac02b0bef35f4393e5a01ab9bf18017", null ], + [ "getTeamName", "class_data_classes_1_1_team.html#a57e82e6921990197b8f45ec4f69bf1a5", null ], + [ "getTeamScore", "class_data_classes_1_1_team.html#a5e4b178d685abdc0386d85e8de325323", null ], + [ "toString", "class_data_classes_1_1_team.html#ac660e1a90a5e97bb67b9a51d057e69bc", null ] +]; \ No newline at end of file diff --git a/Doxygen/class_data_classes_1_1_team.png b/Doxygen/class_data_classes_1_1_team.png new file mode 100644 index 0000000..a4670a5 Binary files /dev/null and b/Doxygen/class_data_classes_1_1_team.png differ diff --git a/Doxygen/class_data_classes_1_1_wrestler-members.html b/Doxygen/class_data_classes_1_1_wrestler-members.html new file mode 100644 index 0000000..d6f46e0 --- /dev/null +++ b/Doxygen/class_data_classes_1_1_wrestler-members.html @@ -0,0 +1,117 @@ + + + + + + + +My Project: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
DataClasses.Wrestler Member List
+
+
+ +

This is the complete list of members for DataClasses.Wrestler, including all inherited members.

+ + + + + + + + + + + + + + + + +
addMatch(boolean win) (defined in DataClasses.Wrestler)DataClasses.Wrestler
compareTo(Object o) (defined in DataClasses.Wrestler)DataClasses.Wrestler
getFirstName() (defined in DataClasses.Wrestler)DataClasses.Wrestler
getLastName() (defined in DataClasses.Wrestler)DataClasses.Wrestler
getLongString() (defined in DataClasses.Wrestler)DataClasses.Wrestler
getRating() (defined in DataClasses.Wrestler)DataClasses.Wrestler
getSeed() (defined in DataClasses.Wrestler)DataClasses.Wrestler
getTeamID() (defined in DataClasses.Wrestler)DataClasses.Wrestler
getUserName() (defined in DataClasses.Wrestler)DataClasses.Wrestler
getWeightClass() (defined in DataClasses.Wrestler)DataClasses.Wrestler
setRating(double rating) (defined in DataClasses.Wrestler)DataClasses.Wrestler
setSeed(int seed) (defined in DataClasses.Wrestler)DataClasses.Wrestler
toString() (defined in DataClasses.Wrestler)DataClasses.Wrestler
Wrestler(String fn, String ln, String teamAlias, int grade, int weightClass, int totalWins, int totalMatches) (defined in DataClasses.Wrestler)DataClasses.Wrestler
Wrestler(int weightClass) (defined in DataClasses.Wrestler)DataClasses.Wrestler
+
+ + + + diff --git a/Doxygen/class_data_classes_1_1_wrestler.html b/Doxygen/class_data_classes_1_1_wrestler.html new file mode 100644 index 0000000..446729f --- /dev/null +++ b/Doxygen/class_data_classes_1_1_wrestler.html @@ -0,0 +1,163 @@ + + + + + + + +My Project: DataClasses.Wrestler Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
DataClasses.Wrestler Class Reference
+
+
+
+Inheritance diagram for DataClasses.Wrestler:
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Wrestler (String fn, String ln, String teamAlias, int grade, int weightClass, int totalWins, int totalMatches) throws Exception
 
Wrestler (int weightClass)
 
+String getLastName ()
 
+String getFirstName ()
 
+String getUserName ()
 
+int getWeightClass ()
 
+void setSeed (int seed)
 
+int getSeed ()
 
+void setRating (double rating)
 
+double getRating ()
 
+String getTeamID ()
 
+void addMatch (boolean win)
 
+String getLongString ()
 
+String toString ()
 
+int compareTo (Object o)
 
+

Detailed Description

+
Author
Jared Murphy https://github.com/murphman29
+

The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/Doxygen/class_data_classes_1_1_wrestler.js b/Doxygen/class_data_classes_1_1_wrestler.js new file mode 100644 index 0000000..62c100a --- /dev/null +++ b/Doxygen/class_data_classes_1_1_wrestler.js @@ -0,0 +1,18 @@ +var class_data_classes_1_1_wrestler = +[ + [ "Wrestler", "class_data_classes_1_1_wrestler.html#ab0c93167be156cf2fccf51043f712053", null ], + [ "Wrestler", "class_data_classes_1_1_wrestler.html#ab1ceba54112680082ed8261828d80795", null ], + [ "addMatch", "class_data_classes_1_1_wrestler.html#a156cddcc8c88428a6eb99cae96f06218", null ], + [ "compareTo", "class_data_classes_1_1_wrestler.html#ad13f45dac3590952f7c00bdbf6cef8df", null ], + [ "getFirstName", "class_data_classes_1_1_wrestler.html#a2342f7e24e336dbf023bdfdec58e9599", null ], + [ "getLastName", "class_data_classes_1_1_wrestler.html#a1e007ea778e6f2aa7c23b484960b229d", null ], + [ "getLongString", "class_data_classes_1_1_wrestler.html#a6df2b14638ead4f10f3eb111e1ee28b4", null ], + [ "getRating", "class_data_classes_1_1_wrestler.html#a2a976c5620e029cfd311df67a43e066a", null ], + [ "getSeed", "class_data_classes_1_1_wrestler.html#a3c04dd510cf31c28d680cfa0ddec030f", null ], + [ "getTeamID", "class_data_classes_1_1_wrestler.html#a241c239891dcc51e0603096a57bd5c94", null ], + [ "getUserName", "class_data_classes_1_1_wrestler.html#a15541986b5b87a4e0d337ea0d9f57872", null ], + [ "getWeightClass", "class_data_classes_1_1_wrestler.html#a4421f1167a950de5c9b5fa3251e18ff6", null ], + [ "setRating", "class_data_classes_1_1_wrestler.html#a51bab66ed076f6cbe7e45d6a046eccdf", null ], + [ "setSeed", "class_data_classes_1_1_wrestler.html#a84c3c1edbf6578f838d76eceb758389d", null ], + [ "toString", "class_data_classes_1_1_wrestler.html#afd17ba4ef4ef61b346cb5066d8349112", null ] +]; \ No newline at end of file diff --git a/Doxygen/class_data_classes_1_1_wrestler.png b/Doxygen/class_data_classes_1_1_wrestler.png new file mode 100644 index 0000000..3eb9c45 Binary files /dev/null and b/Doxygen/class_data_classes_1_1_wrestler.png differ diff --git a/Doxygen/classes.html b/Doxygen/classes.html new file mode 100644 index 0000000..7e3301d --- /dev/null +++ b/Doxygen/classes.html @@ -0,0 +1,93 @@ + + + + + + + +My Project: Class Index + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+
+
a | c | t
+ + + + + + + + + + + +
  a  
+
  c  
+
  t  
+
AttrDict (main)   Config (main)   test (main)   
+
a | c | t
+
+ + + + diff --git a/Doxygen/classmain_1_1_attr_dict-members.html b/Doxygen/classmain_1_1_attr_dict-members.html new file mode 100644 index 0000000..7e84582 --- /dev/null +++ b/Doxygen/classmain_1_1_attr_dict-members.html @@ -0,0 +1,84 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
main.AttrDict Member List
+
+
+ +

This is the complete list of members for main.AttrDict, including all inherited members.

+ + +
__init__(self, *args, **kwargs) (defined in main.AttrDict)main.AttrDict
+ + + + diff --git a/Doxygen/classmain_1_1_attr_dict.html b/Doxygen/classmain_1_1_attr_dict.html new file mode 100644 index 0000000..7f8da9e --- /dev/null +++ b/Doxygen/classmain_1_1_attr_dict.html @@ -0,0 +1,102 @@ + + + + + + + +My Project: main.AttrDict Class Reference + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+Public Member Functions | +List of all members
+
+
main.AttrDict Class Reference
+
+
+
+Inheritance diagram for main.AttrDict:
+
+
+ + +main.Config + +
+ + + + +

+Public Member Functions

+def __init__ (self, *args, **kwargs)
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/Doxygen/classmain_1_1_attr_dict.js b/Doxygen/classmain_1_1_attr_dict.js new file mode 100644 index 0000000..ce6e64c --- /dev/null +++ b/Doxygen/classmain_1_1_attr_dict.js @@ -0,0 +1,4 @@ +var classmain_1_1_attr_dict = +[ + [ "__init__", "classmain_1_1_attr_dict.html#a6b2077e37b23e4682610f07a7f9ed45c", null ] +]; \ No newline at end of file diff --git a/Doxygen/classmain_1_1_attr_dict.png b/Doxygen/classmain_1_1_attr_dict.png new file mode 100644 index 0000000..d040fc5 Binary files /dev/null and b/Doxygen/classmain_1_1_attr_dict.png differ diff --git a/Doxygen/classmain_1_1_config-members.html b/Doxygen/classmain_1_1_config-members.html new file mode 100644 index 0000000..84a4315 --- /dev/null +++ b/Doxygen/classmain_1_1_config-members.html @@ -0,0 +1,94 @@ + + + + + + + +My Project: Member List + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
main.Config Member List
+
+
+ +

This is the complete list of members for main.Config, including all inherited members.

+ + + + + + + + + + + + +
__init__(self, *args, **kwargs) (defined in main.AttrDict)main.AttrDict
a (defined in main.Config)main.Config
description(self) (defined in main.Config)main.Config
m (defined in main.Config)main.Config
n (defined in main.Config)main.Config
parse(self, text) (defined in main.Config)main.Config
r (defined in main.Config)main.Config
randomize(self) (defined in main.Config)main.Config
rep (defined in main.Config)main.Config
s (defined in main.Config)main.Config
validate(self) (defined in main.Config)main.Config
+ + + + diff --git a/Doxygen/classmain_1_1_config.html b/Doxygen/classmain_1_1_config.html new file mode 100644 index 0000000..2b87f58 --- /dev/null +++ b/Doxygen/classmain_1_1_config.html @@ -0,0 +1,137 @@ + + + + + + + +My Project: main.Config Class Reference + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+Public Member Functions | +Public Attributes | +List of all members
+
+
main.Config Class Reference
+
+
+
+Inheritance diagram for main.Config:
+
+
+ + +main.AttrDict + +
+ + + + + + + + + + + + + +

+Public Member Functions

+def randomize (self)
 
+def parse (self, text)
 
+def validate (self)
 
+def description (self)
 
- Public Member Functions inherited from main.AttrDict
+def __init__ (self, *args, **kwargs)
 
+ + + + + + + + + + + + + +

+Public Attributes

m
 
n
 
rep
 
a
 
r
 
s
 
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/Doxygen/classmain_1_1_config.js b/Doxygen/classmain_1_1_config.js new file mode 100644 index 0000000..0e35075 --- /dev/null +++ b/Doxygen/classmain_1_1_config.js @@ -0,0 +1,13 @@ +var classmain_1_1_config = +[ + [ "description", "classmain_1_1_config.html#ab0838ba554111dd059bf24a5f65ede68", null ], + [ "parse", "classmain_1_1_config.html#aa22e6880379baf5824c1d1a5b249b314", null ], + [ "randomize", "classmain_1_1_config.html#af797053cd3e0ede5b9572a544eab28fa", null ], + [ "validate", "classmain_1_1_config.html#a39e8159e7f65ecf5f21b66914cd6172f", null ], + [ "a", "classmain_1_1_config.html#a6f19075e1e0cae21c047954c272d3075", null ], + [ "m", "classmain_1_1_config.html#ae0b024c30f4eb3a5d25eb5055961a5d7", null ], + [ "n", "classmain_1_1_config.html#ad5c31869607ed0db2cb0c14212e057bf", null ], + [ "r", "classmain_1_1_config.html#a21574fa70fb16ae0f574052ce849674a", null ], + [ "rep", "classmain_1_1_config.html#af9cf2a64f1fa0621094551d475e0a22c", null ], + [ "s", "classmain_1_1_config.html#a88eaac75c1047ff6c779aa19bf72fcd0", null ] +]; \ No newline at end of file diff --git a/Doxygen/classmain_1_1_config.png b/Doxygen/classmain_1_1_config.png new file mode 100644 index 0000000..b330e4d Binary files /dev/null and b/Doxygen/classmain_1_1_config.png differ diff --git a/Doxygen/classmain_1_1test.html b/Doxygen/classmain_1_1test.html new file mode 100644 index 0000000..68a2931 --- /dev/null +++ b/Doxygen/classmain_1_1test.html @@ -0,0 +1,83 @@ + + + + + + + +My Project: main.test Class Reference + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
main.test Class Reference
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/Doxygen/classwrestlingtournamentcli_1_1_argument_mismatch_exception-members.html b/Doxygen/classwrestlingtournamentcli_1_1_argument_mismatch_exception-members.html new file mode 100644 index 0000000..1bb8317 --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_argument_mismatch_exception-members.html @@ -0,0 +1,103 @@ + + + + + + + +My Project: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
wrestlingtournamentcli.ArgumentMismatchException Member List
+
+
+ +

This is the complete list of members for wrestlingtournamentcli.ArgumentMismatchException, including all inherited members.

+ + +
ArgumentMismatchException(int expectedArguments, int receivedArguments) (defined in wrestlingtournamentcli.ArgumentMismatchException)wrestlingtournamentcli.ArgumentMismatchException
+
+ + + + diff --git a/Doxygen/classwrestlingtournamentcli_1_1_argument_mismatch_exception.html b/Doxygen/classwrestlingtournamentcli_1_1_argument_mismatch_exception.html new file mode 100644 index 0000000..71f4f91 --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_argument_mismatch_exception.html @@ -0,0 +1,121 @@ + + + + + + + +My Project: wrestlingtournamentcli.ArgumentMismatchException Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
wrestlingtournamentcli.ArgumentMismatchException Class Reference
+
+
+
+Inheritance diagram for wrestlingtournamentcli.ArgumentMismatchException:
+
+
+ +
+ + + + +

+Public Member Functions

ArgumentMismatchException (int expectedArguments, int receivedArguments)
 
+

Detailed Description

+
Author
Jared Murphy https://github.com/murphman29
+

The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/Doxygen/classwrestlingtournamentcli_1_1_argument_mismatch_exception.js b/Doxygen/classwrestlingtournamentcli_1_1_argument_mismatch_exception.js new file mode 100644 index 0000000..22d507b --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_argument_mismatch_exception.js @@ -0,0 +1,4 @@ +var classwrestlingtournamentcli_1_1_argument_mismatch_exception = +[ + [ "ArgumentMismatchException", "classwrestlingtournamentcli_1_1_argument_mismatch_exception.html#a31ea258a5fe00cbf6e8f11a23c87c887", null ] +]; \ No newline at end of file diff --git a/Doxygen/classwrestlingtournamentcli_1_1_argument_mismatch_exception.png b/Doxygen/classwrestlingtournamentcli_1_1_argument_mismatch_exception.png new file mode 100644 index 0000000..b9e6c38 Binary files /dev/null and b/Doxygen/classwrestlingtournamentcli_1_1_argument_mismatch_exception.png differ diff --git a/Doxygen/classwrestlingtournamentcli_1_1_bad_command_exception-members.html b/Doxygen/classwrestlingtournamentcli_1_1_bad_command_exception-members.html new file mode 100644 index 0000000..1a9d3e7 --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_bad_command_exception-members.html @@ -0,0 +1,103 @@ + + + + + + + +My Project: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
wrestlingtournamentcli.BadCommandException Member List
+
+
+ +

This is the complete list of members for wrestlingtournamentcli.BadCommandException, including all inherited members.

+ + +
BadCommandException() (defined in wrestlingtournamentcli.BadCommandException)wrestlingtournamentcli.BadCommandException
+
+ + + + diff --git a/Doxygen/classwrestlingtournamentcli_1_1_bad_command_exception.html b/Doxygen/classwrestlingtournamentcli_1_1_bad_command_exception.html new file mode 100644 index 0000000..349bd1e --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_bad_command_exception.html @@ -0,0 +1,113 @@ + + + + + + + +My Project: wrestlingtournamentcli.BadCommandException Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
wrestlingtournamentcli.BadCommandException Class Reference
+
+
+
+Inheritance diagram for wrestlingtournamentcli.BadCommandException:
+
+
+ +
+

Detailed Description

+
Author
Jared Murphy https://github.com/murphman29
+

The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/Doxygen/classwrestlingtournamentcli_1_1_bad_command_exception.js b/Doxygen/classwrestlingtournamentcli_1_1_bad_command_exception.js new file mode 100644 index 0000000..1395d30 --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_bad_command_exception.js @@ -0,0 +1,4 @@ +var classwrestlingtournamentcli_1_1_bad_command_exception = +[ + [ "BadCommandException", "classwrestlingtournamentcli_1_1_bad_command_exception.html#a46dd0bb65faf63ef4db6cef16db820d1", null ] +]; \ No newline at end of file diff --git a/Doxygen/classwrestlingtournamentcli_1_1_bad_command_exception.png b/Doxygen/classwrestlingtournamentcli_1_1_bad_command_exception.png new file mode 100644 index 0000000..52353a4 Binary files /dev/null and b/Doxygen/classwrestlingtournamentcli_1_1_bad_command_exception.png differ diff --git a/Doxygen/classwrestlingtournamentcli_1_1_incorrect_format_exception-members.html b/Doxygen/classwrestlingtournamentcli_1_1_incorrect_format_exception-members.html new file mode 100644 index 0000000..19a48c6 --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_incorrect_format_exception-members.html @@ -0,0 +1,103 @@ + + + + + + + +My Project: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
wrestlingtournamentcli.IncorrectFormatException Member List
+
+
+ +

This is the complete list of members for wrestlingtournamentcli.IncorrectFormatException, including all inherited members.

+ + +
IncorrectFormatException(Object o) (defined in wrestlingtournamentcli.IncorrectFormatException)wrestlingtournamentcli.IncorrectFormatException
+
+ + + + diff --git a/Doxygen/classwrestlingtournamentcli_1_1_incorrect_format_exception.html b/Doxygen/classwrestlingtournamentcli_1_1_incorrect_format_exception.html new file mode 100644 index 0000000..e252bfe --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_incorrect_format_exception.html @@ -0,0 +1,121 @@ + + + + + + + +My Project: wrestlingtournamentcli.IncorrectFormatException Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
wrestlingtournamentcli.IncorrectFormatException Class Reference
+
+
+
+Inheritance diagram for wrestlingtournamentcli.IncorrectFormatException:
+
+
+ +
+ + + + +

+Public Member Functions

IncorrectFormatException (Object o)
 
+

Detailed Description

+
Author
Jared Murphy https://github.com/murphman29
+

The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/Doxygen/classwrestlingtournamentcli_1_1_incorrect_format_exception.js b/Doxygen/classwrestlingtournamentcli_1_1_incorrect_format_exception.js new file mode 100644 index 0000000..d6f4c29 --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_incorrect_format_exception.js @@ -0,0 +1,4 @@ +var classwrestlingtournamentcli_1_1_incorrect_format_exception = +[ + [ "IncorrectFormatException", "classwrestlingtournamentcli_1_1_incorrect_format_exception.html#a0f01d61607271479267207345c031dd6", null ] +]; \ No newline at end of file diff --git a/Doxygen/classwrestlingtournamentcli_1_1_incorrect_format_exception.png b/Doxygen/classwrestlingtournamentcli_1_1_incorrect_format_exception.png new file mode 100644 index 0000000..df9d90f Binary files /dev/null and b/Doxygen/classwrestlingtournamentcli_1_1_incorrect_format_exception.png differ diff --git a/Doxygen/classwrestlingtournamentcli_1_1_main-members.html b/Doxygen/classwrestlingtournamentcli_1_1_main-members.html new file mode 100644 index 0000000..c3a19ba --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_main-members.html @@ -0,0 +1,106 @@ + + + + + + + +My Project: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
wrestlingtournamentcli.Main Member List
+
+
+ +

This is the complete list of members for wrestlingtournamentcli.Main, including all inherited members.

+ + + + + +
main(String[] args) (defined in wrestlingtournamentcli.Main)wrestlingtournamentcli.Mainstatic
printHelp() (defined in wrestlingtournamentcli.Main)wrestlingtournamentcli.Mainstatic
processInput(ArrayList< String > args) (defined in wrestlingtournamentcli.Main)wrestlingtournamentcli.Mainstatic
start(Stage stage) (defined in wrestlingtournamentcli.Main)wrestlingtournamentcli.Main
+
+ + + + diff --git a/Doxygen/classwrestlingtournamentcli_1_1_main.html b/Doxygen/classwrestlingtournamentcli_1_1_main.html new file mode 100644 index 0000000..4a1aa36 --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_main.html @@ -0,0 +1,138 @@ + + + + + + + +My Project: wrestlingtournamentcli.Main Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
wrestlingtournamentcli.Main Class Reference
+
+
+
+Inheritance diagram for wrestlingtournamentcli.Main:
+
+
+ +
+ + + + +

+Public Member Functions

+void start (Stage stage) throws Exception
 
+ + + + + + + +

+Static Public Member Functions

+static void main (String[] args)
 
+static void processInput (ArrayList< String > args) throws Exception
 
+static void printHelp ()
 
+

Detailed Description

+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/Doxygen/classwrestlingtournamentcli_1_1_main.js b/Doxygen/classwrestlingtournamentcli_1_1_main.js new file mode 100644 index 0000000..d270b66 --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_main.js @@ -0,0 +1,4 @@ +var classwrestlingtournamentcli_1_1_main = +[ + [ "start", "classwrestlingtournamentcli_1_1_main.html#a59b104bbf1708ab698451070fa6f7afa", null ] +]; \ No newline at end of file diff --git a/Doxygen/classwrestlingtournamentcli_1_1_main.png b/Doxygen/classwrestlingtournamentcli_1_1_main.png new file mode 100644 index 0000000..bb1f36e Binary files /dev/null and b/Doxygen/classwrestlingtournamentcli_1_1_main.png differ diff --git a/Doxygen/classwrestlingtournamentcli_1_1_match_record-members.html b/Doxygen/classwrestlingtournamentcli_1_1_match_record-members.html new file mode 100644 index 0000000..43b180f --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_match_record-members.html @@ -0,0 +1,106 @@ + + + + + + + +My Project: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
wrestlingtournamentcli.MatchRecord Member List
+
+
+ +

This is the complete list of members for wrestlingtournamentcli.MatchRecord, including all inherited members.

+ + + + + +
getLocation() (defined in wrestlingtournamentcli.MatchRecord)wrestlingtournamentcli.MatchRecord
hasTeam(String teamID) (defined in wrestlingtournamentcli.MatchRecord)wrestlingtournamentcli.MatchRecord
hasWrestler(String username) (defined in wrestlingtournamentcli.MatchRecord)wrestlingtournamentcli.MatchRecord
MatchRecord(int bracketPosition, int roundNumber, int matchInRound, int weightClass, String greenWrestler, String greenTeam, String redWrestler, String redTeam) (defined in wrestlingtournamentcli.MatchRecord)wrestlingtournamentcli.MatchRecord
+
+ + + + diff --git a/Doxygen/classwrestlingtournamentcli_1_1_match_record.html b/Doxygen/classwrestlingtournamentcli_1_1_match_record.html new file mode 100644 index 0000000..dac9f06 --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_match_record.html @@ -0,0 +1,130 @@ + + + + + + + +My Project: wrestlingtournamentcli.MatchRecord Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
wrestlingtournamentcli.MatchRecord Class Reference
+
+
+
+Inheritance diagram for wrestlingtournamentcli.MatchRecord:
+
+
+ +
+ + + + + + + + + + +

+Public Member Functions

MatchRecord (int bracketPosition, int roundNumber, int matchInRound, int weightClass, String greenWrestler, String greenTeam, String redWrestler, String redTeam)
 
+int[] getLocation ()
 
+boolean hasWrestler (String username)
 
+boolean hasTeam (String teamID)
 
+

Detailed Description

+
Author
Jared Murphy https://github.com/murphman29 Not included in the original UML schematic
+

The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/Doxygen/classwrestlingtournamentcli_1_1_match_record.js b/Doxygen/classwrestlingtournamentcli_1_1_match_record.js new file mode 100644 index 0000000..e076e77 --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_match_record.js @@ -0,0 +1,7 @@ +var classwrestlingtournamentcli_1_1_match_record = +[ + [ "MatchRecord", "classwrestlingtournamentcli_1_1_match_record.html#a587413919a4f6fabfb3d9dc96151f342", null ], + [ "getLocation", "classwrestlingtournamentcli_1_1_match_record.html#aab0f653e93f52bd9e1c95cddde8f95c4", null ], + [ "hasTeam", "classwrestlingtournamentcli_1_1_match_record.html#a62b3cbef6812a6caef056797489819e8", null ], + [ "hasWrestler", "classwrestlingtournamentcli_1_1_match_record.html#a29c0f1552e5e99f4151a2f89ba9aad05", null ] +]; \ No newline at end of file diff --git a/Doxygen/classwrestlingtournamentcli_1_1_match_record.png b/Doxygen/classwrestlingtournamentcli_1_1_match_record.png new file mode 100644 index 0000000..fecf62e Binary files /dev/null and b/Doxygen/classwrestlingtournamentcli_1_1_match_record.png differ diff --git a/Doxygen/classwrestlingtournamentcli_1_1_model-members.html b/Doxygen/classwrestlingtournamentcli_1_1_model-members.html new file mode 100644 index 0000000..812674f --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_model-members.html @@ -0,0 +1,125 @@ + + + + + + + +My Project: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
wrestlingtournamentcli.Model Member List
+
+
+ +

This is the complete list of members for wrestlingtournamentcli.Model, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + +
addTeamPoints(String teamAlias, int points) (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
advanceTournament() (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
generateTournament() (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
getMatchID(MatchRecord mr) (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
getUserName(String lastName, String firstName) (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
getWeightClassPosition(int weightClass) (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
importTeamsFromText(String filePath) (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
importWrestlersFromText(String filePath) (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
loadTournament(String baseName) (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
Model() (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Model
printTeams() (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
printWrestlerInformation(String alias) (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
printWrestlers() (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
saveTournament() (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
saveTournament(String baseName) (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
setTournamentName(String name) (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
teamLookup(String alias) (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
updateMatch(int matchID, String winningColor, int greenPoints, int redPoints, int fallType, String fallTime) (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
updateWrestlerMatchRecord(String alias, boolean win) (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
updateWrestlerSeed(String alias, int seed) (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
verifyWeightClass(int weightClass) (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
wrestlerLookup(String alias) (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
writeSettings(File settings) (defined in wrestlingtournamentcli.Model)wrestlingtournamentcli.Modelstatic
+
+ + + + diff --git a/Doxygen/classwrestlingtournamentcli_1_1_model.html b/Doxygen/classwrestlingtournamentcli_1_1_model.html new file mode 100644 index 0000000..a0a1487 --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_model.html @@ -0,0 +1,185 @@ + + + + + + + +My Project: wrestlingtournamentcli.Model Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
wrestlingtournamentcli.Model Class Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

+static int generateTournament ()
 
+static void advanceTournament ()
 
+static void setTournamentName (String name)
 
+static void saveTournament ()
 
+static void saveTournament (String baseName)
 
+static void loadTournament (String baseName)
 
+static void writeSettings (File settings) throws Exception
 
+static int getMatchID (MatchRecord mr)
 
+static void updateMatch (int matchID, String winningColor, int greenPoints, int redPoints, int fallType, String fallTime)
 
+static String getUserName (String lastName, String firstName)
 
+static void addTeamPoints (String teamAlias, int points)
 
+static void updateWrestlerMatchRecord (String alias, boolean win)
 
+static void updateWrestlerSeed (String alias, int seed)
 
+static Team teamLookup (String alias) throws NotFoundException
 
+static Wrestler wrestlerLookup (String alias) throws NotFoundException
 
+static int importWrestlersFromText (String filePath)
 
+static int importTeamsFromText (String filePath)
 
+static ArrayList< WrestlerprintWrestlers ()
 
+static ArrayList< TeamprintTeams ()
 
+static void printWrestlerInformation (String alias)
 
+static int getWeightClassPosition (int weightClass)
 
+static boolean verifyWeightClass (int weightClass)
 
+

Detailed Description

+
Author
Jared Murphy https://github.com/murphman29
+
+Harold Farmer farme.nosp@m.r.79.nosp@m.@wrig.nosp@m.ht.e.nosp@m.du 2020
+
+Stan Hostetler hoste.nosp@m.tler.nosp@m..17@w.nosp@m.righ.nosp@m.t.edu 2020
+

==Model==

+

=Member Variables= -wrestlerList:ArrayList<Wrestler> -CreatedMatches:ArrayList<Match> -MatchesInProgress:ArrayList<Match> -FinishedMatches:ArrayList<Match> -weightClasses:ArrayList<WeightClass> -tournamentRound:int -numberOfMats:int -matchesByMat:ArrayList<ArrayList<Match>> -teamList:ArrayList<Team>

+

=Methods= +ArrayList<Match>:getMatchesByRound(int round) +ArrayList<Match>:getMatchesByWrestler(String wrestlerName) +ArrayList<Match>:getMatchesByWrestler(Wrestler wrestler) +void:importWrestlersFromText(String filePath) +void:importWrestlersFromExcel(String filePath) -Wrestler:wrestlerFactory(String wrestlerInfo) +void:importTeamsFromText(String filePath) +void:importTeamsFromExcel(String filePath) -String:separateArgumentsFromString(String largeString) +void:initializeWeightClasses() +int[matNumber]:getMatchesByMat() +int:getLeastUsedMat()

+

The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/Doxygen/classwrestlingtournamentcli_1_1_model.js b/Doxygen/classwrestlingtournamentcli_1_1_model.js new file mode 100644 index 0000000..34941e8 --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_model.js @@ -0,0 +1,4 @@ +var classwrestlingtournamentcli_1_1_model = +[ + [ "Model", "classwrestlingtournamentcli_1_1_model.html#a7cd7dac948cd6be415f9c94520da5add", null ] +]; \ No newline at end of file diff --git a/Doxygen/classwrestlingtournamentcli_1_1_not_found_exception-members.html b/Doxygen/classwrestlingtournamentcli_1_1_not_found_exception-members.html new file mode 100644 index 0000000..7f88b6c --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_not_found_exception-members.html @@ -0,0 +1,103 @@ + + + + + + + +My Project: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
wrestlingtournamentcli.NotFoundException Member List
+
+
+ +

This is the complete list of members for wrestlingtournamentcli.NotFoundException, including all inherited members.

+ + +
NotFoundException(Object o) (defined in wrestlingtournamentcli.NotFoundException)wrestlingtournamentcli.NotFoundException
+
+ + + + diff --git a/Doxygen/classwrestlingtournamentcli_1_1_not_found_exception.html b/Doxygen/classwrestlingtournamentcli_1_1_not_found_exception.html new file mode 100644 index 0000000..7ee1edb --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_not_found_exception.html @@ -0,0 +1,121 @@ + + + + + + + +My Project: wrestlingtournamentcli.NotFoundException Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
wrestlingtournamentcli.NotFoundException Class Reference
+
+
+
+Inheritance diagram for wrestlingtournamentcli.NotFoundException:
+
+
+ +
+ + + + +

+Public Member Functions

NotFoundException (Object o)
 
+

Detailed Description

+
Author
Jared Murphy https://github.com/murphman29
+

The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/Doxygen/classwrestlingtournamentcli_1_1_not_found_exception.js b/Doxygen/classwrestlingtournamentcli_1_1_not_found_exception.js new file mode 100644 index 0000000..f7ccd5c --- /dev/null +++ b/Doxygen/classwrestlingtournamentcli_1_1_not_found_exception.js @@ -0,0 +1,4 @@ +var classwrestlingtournamentcli_1_1_not_found_exception = +[ + [ "NotFoundException", "classwrestlingtournamentcli_1_1_not_found_exception.html#af1531cae7243af3d8dcc7ec2b06709f9", null ] +]; \ No newline at end of file diff --git a/Doxygen/classwrestlingtournamentcli_1_1_not_found_exception.png b/Doxygen/classwrestlingtournamentcli_1_1_not_found_exception.png new file mode 100644 index 0000000..1cb40c7 Binary files /dev/null and b/Doxygen/classwrestlingtournamentcli_1_1_not_found_exception.png differ diff --git a/Doxygen/closed.png b/Doxygen/closed.png new file mode 100644 index 0000000..98cc2c9 Binary files /dev/null and b/Doxygen/closed.png differ diff --git a/Doxygen/dir_30f56cd85179c0aaeec6f92fdf9f3471.html b/Doxygen/dir_30f56cd85179c0aaeec6f92fdf9f3471.html new file mode 100644 index 0000000..5421126 --- /dev/null +++ b/Doxygen/dir_30f56cd85179c0aaeec6f92fdf9f3471.html @@ -0,0 +1,80 @@ + + + + + + + +My Project: bot Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
bot Directory Reference
+
+
+
+ + + + diff --git a/Doxygen/dir_436b7384e9d7df12993b7512c1924c6b.html b/Doxygen/dir_436b7384e9d7df12993b7512c1924c6b.html new file mode 100644 index 0000000..bc1ffbc --- /dev/null +++ b/Doxygen/dir_436b7384e9d7df12993b7512c1924c6b.html @@ -0,0 +1,100 @@ + + + + + + + +My Project: P1Farmer Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
P1Farmer Directory Reference
+
+
+
+
+ + + + diff --git a/Doxygen/dir_53e6fa9553ac22a5646d2a2b2d7b97a1.html b/Doxygen/dir_53e6fa9553ac22a5646d2a2b2d7b97a1.html new file mode 100644 index 0000000..428858a --- /dev/null +++ b/Doxygen/dir_53e6fa9553ac22a5646d2a2b2d7b97a1.html @@ -0,0 +1,80 @@ + + + + + + + +My Project: scripts Directory Reference + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
scripts Directory Reference
+
+
+
+ + + + diff --git a/Doxygen/dir_6210a66012276bc01fe4611b13560f7a.html b/Doxygen/dir_6210a66012276bc01fe4611b13560f7a.html new file mode 100644 index 0000000..ad2f2b1 --- /dev/null +++ b/Doxygen/dir_6210a66012276bc01fe4611b13560f7a.html @@ -0,0 +1,100 @@ + + + + + + + +My Project: src/DataClasses Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
DataClasses Directory Reference
+
+
+
+
+ + + + diff --git a/Doxygen/dir_646204c9af9781fce2afa3226d8021fd.html b/Doxygen/dir_646204c9af9781fce2afa3226d8021fd.html new file mode 100644 index 0000000..060ca24 --- /dev/null +++ b/Doxygen/dir_646204c9af9781fce2afa3226d8021fd.html @@ -0,0 +1,100 @@ + + + + + + + +My Project: src/wrestlingtournamentcli Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
wrestlingtournamentcli Directory Reference
+
+
+
+
+ + + + diff --git a/Doxygen/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/Doxygen/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 0000000..53d41ca --- /dev/null +++ b/Doxygen/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,104 @@ + + + + + + + +My Project: src Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
src Directory Reference
+
+
+ + +

+Directories

+
+
+ + + + diff --git a/Doxygen/dir_9227e835f4c051524a857647e59d2e58.html b/Doxygen/dir_9227e835f4c051524a857647e59d2e58.html new file mode 100644 index 0000000..632be65 --- /dev/null +++ b/Doxygen/dir_9227e835f4c051524a857647e59d2e58.html @@ -0,0 +1,104 @@ + + + + + + + +My Project: primitive-master Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
primitive-master Directory Reference
+
+
+ + +

+Directories

+
+
+ + + + diff --git a/Doxygen/dir_a5d9abd989d79ac2d94f351a9a5491b4.html b/Doxygen/dir_a5d9abd989d79ac2d94f351a9a5491b4.html new file mode 100644 index 0000000..fa052eb --- /dev/null +++ b/Doxygen/dir_a5d9abd989d79ac2d94f351a9a5491b4.html @@ -0,0 +1,100 @@ + + + + + + + +My Project: primitive-master/bot Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
bot Directory Reference
+
+
+
+
+ + + + diff --git a/Doxygen/dir_effac0607d2133c1b167b996d741dcde.html b/Doxygen/dir_effac0607d2133c1b167b996d741dcde.html new file mode 100644 index 0000000..adbac0c --- /dev/null +++ b/Doxygen/dir_effac0607d2133c1b167b996d741dcde.html @@ -0,0 +1,100 @@ + + + + + + + +My Project: primitive-master/scripts Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
scripts Directory Reference
+
+
+
+
+ + + + diff --git a/Doxygen/doc.png b/Doxygen/doc.png new file mode 100644 index 0000000..17edabf Binary files /dev/null and b/Doxygen/doc.png differ diff --git a/Doxygen/doxygen.css b/Doxygen/doxygen.css new file mode 100644 index 0000000..73ecbb2 --- /dev/null +++ b/Doxygen/doxygen.css @@ -0,0 +1,1771 @@ +/* The standard CSS for doxygen 1.8.17 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, p.intertd, p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #FFFFFF; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #FFFFFF; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #FFFFFF; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +/* +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTableHead tr { +} + +table.markdownTableBodyLeft td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft { + text-align: left +} + +th.markdownTableHeadRight { + text-align: right +} + +th.markdownTableHeadCenter { + text-align: center +} +*/ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/Doxygen/doxygen.png b/Doxygen/doxygen.png new file mode 100644 index 0000000..3ff17d8 Binary files /dev/null and b/Doxygen/doxygen.png differ diff --git a/Doxygen/dynsections.js b/Doxygen/dynsections.js new file mode 100644 index 0000000..ea0a7b3 --- /dev/null +++ b/Doxygen/dynsections.js @@ -0,0 +1,120 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +My Project: Class Hierarchy + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+
This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 123]
+ + + + +
 Cdict
 Cmain.AttrDict
 Cmain.Config
 Cmain.test
+
+
+ + + + diff --git a/Doxygen/hierarchy.js b/Doxygen/hierarchy.js new file mode 100644 index 0000000..9e26a64 --- /dev/null +++ b/Doxygen/hierarchy.js @@ -0,0 +1,8 @@ +var hierarchy = +[ + [ "dict", null, [ + [ "main.AttrDict", "classmain_1_1_attr_dict.html", [ + [ "main.Config", "classmain_1_1_config.html", null ] + ] ] + ] ] +]; \ No newline at end of file diff --git a/Doxygen/index.html b/Doxygen/index.html new file mode 100644 index 0000000..6473b4e --- /dev/null +++ b/Doxygen/index.html @@ -0,0 +1,76 @@ + + + + + + + +My Project: Main Page + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
My Project Documentation
+
+
+
+ + + + diff --git a/Doxygen/jquery.js b/Doxygen/jquery.js new file mode 100644 index 0000000..103c32d --- /dev/null +++ b/Doxygen/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/Doxygen/md__l_i_c_e_n_s_e.html b/Doxygen/md__l_i_c_e_n_s_e.html new file mode 100644 index 0000000..ba237ba --- /dev/null +++ b/Doxygen/md__l_i_c_e_n_s_e.html @@ -0,0 +1,81 @@ + + + + + + + +My Project: LICENSE + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
LICENSE
+
+
+

Copyright (C) 2016 Michael Fogleman

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+
+
+ + + + diff --git a/Doxygen/md__r_e_a_d_m_e.html b/Doxygen/md__r_e_a_d_m_e.html new file mode 100644 index 0000000..5efe1df --- /dev/null +++ b/Doxygen/md__r_e_a_d_m_e.html @@ -0,0 +1,195 @@ + + + + + + + +My Project: Primitive Pictures + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
Primitive Pictures
+
+
+

Reproducing images with geometric primitives.

+

Example

+

+How it Works

+

A target image is provided as input. The algorithm tries to find the single most optimal shape that can be drawn to minimize the error between the target image and the drawn image. It repeats this process, adding one shape at a time. Around 50 to 200 shapes are needed to reach a result that is recognizable yet artistic and abstract.

+

+Primitive for macOS

+

Now available as a native Mac application!

+

https://primitive.lol/

+

+Twitter

+

Follow @PrimitivePic on Twitter to see a new primitive picture every 30 minutes!

+

The Twitter bot looks for interesting photos using the Flickr API, runs the algorithm using randomized parameters, and posts the picture using the Twitter API.

+

You can tweet a picture to the bot and it will process it for you.

+

+Command-line Usage

+

Run it on your own images! First, install Go.

go get -u github.com/fogleman/primitive
+primitive -i input.png -o output.png -n 100
+

Small input images should be used (like 256x256px). You don't need the detail anyway and the code will run faster.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Flag Default Description
i n/a input file
o n/a output file
n n/a number of shapes
m 1 mode: 0=combo, 1=triangle, 2=rect, 3=ellipse, 4=circle, 5=rotatedrect, 6=beziers, 7=rotatedellipse, 8=polygon
rep 0 add N extra shapes each iteration with reduced search (mostly good for beziers)
nth 1 save every Nth frame (only when d is in output path)
r 256 resize large input images to this size before processing
s 1024 output image size
a 128 color alpha (use 0 to let the algorithm choose alpha for each shape)
bg avg starting background color (hex)
j 0 number of parallel workers (default uses all cores)
v off verbose output
vv off very verbose output
+

+Output Formats

+

Depending on the output filename extension provided, you can produce different types of output.

+
    +
  • PNG: raster output
  • +
  • JPG: raster output
  • +
  • SVG: vector output
  • +
  • GIF: animated output showing shapes being added - requires ImageMagick (specifically the convert command)
  • +
+

For PNG and SVG outputs, you can also include d, %03d, etc. in the filename. In this case, each frame will be saved separately.

+

You can use the -o flag multiple times. This way you can save both a PNG and an SVG, for example.

+

+Progression

+

This GIF demonstrates the iterative nature of the algorithm, attempting to minimize the mean squared error by adding one shape at a time. (Use a ".gif" output file to generate one yourself!)

+

+

+Static Animation

+

Since the algorithm has a random component to it, you can run it against the same input image multiple times to bring life to a static image.

+

Pencils

+

+Creative Constraints

+

If you're willing to dabble in the code, you can enforce constraints on the shapes to produce even more interesting results. Here, the rectangles are constrained to point toward the sun in this picture of a pyramid sunset.

+

Pyramids

+

+Shape and Iteration Comparison Matrix

+

The matrix below shows triangles, ellipses and rectangles at 50, 100 and 200 iterations each.

+

Matrix

+

+How it Works, Part II

+

Say we have a Target Image. This is what we're working towards recreating. We start with a blank canvas, but we fill it with a single solid color. Currently, this is the average color of the Target Image. We call this new blank canvas the Current Image. Now, we start evaluating shapes. To evaluate a shape, we draw it on top of the Current Image, producing a New Image. This New Image is compared to the Target Image to compute a score. We use the root-mean-square error for the score.

Current Image + Shape => New Image
+RMSE(New Image, Target Image) => Score
+

The shapes are generated randomly. We can generate a random shape and score it. Then we can mutate the shape (by tweaking a triangle vertex, tweaking an ellipse radius or center, etc.) and score it again. If the mutation improved the score, we keep it. Otherwise we rollback to the previous state. Repeating this process is known as hill climbing. Hill climbing is prone to getting stuck in local minima, so we actually do this many different times with several different starting shapes. We can also generate N random shapes and pick the best one before we start hill climbing. Simulated annealing is another good option, but in my tests I found the hill climbing technique just as good and faster, at least for this particular problem.

+

Once we have found a good-scoring shape, we add it to the Current Image, where it will remain unchanged. Then we start the process again to find the next shape to draw. This process is repeated as many times as desired.

+

+Primitives

+

The following primitives are supported:

+
    +
  • Triangle
  • +
  • Rectangle (axis-aligned)
  • +
  • Ellipse (axis-aligned)
  • +
  • Circle
  • +
  • Rotated Rectangle
  • +
  • Combo (a mix of the above in a single image)
  • +
+

More shapes can be added by implementing the following interface:

+
type Shape interface {
+
Rasterize() []Scanline
+
Copy() Shape
+
Mutate()
+
Draw(dc *gg.Context)
+
SVG(attrs string) string
+
}
+

+Features

+
    +
  • Hill Climbing or Simulated Annealing for optimization (hill climbing multiple random shapes is nearly as good as annealing and faster)
  • +
  • Scanline rasterization of shapes in pure Go (preferable for implementing the features below)
  • +
  • Optimal color computation based on affected pixels for each shape (color is directly computed, not optimized for)
  • +
  • Partial image difference for faster scoring (only pixels that change need be considered)
  • +
  • Anti-aliased output rendering
  • +
+

+Inspiration

+

This project was originally inspired by the popular and excellent work of Roger Johansson - Genetic Programming: Evolution of Mona Lisa. Since seeing that article when it was quite new, I've tinkered with this problem here and there over the years. But only now am I satisfied with my results.

+

It should be noted that there are significant differences in my implementation compared to Roger's original work. Mine is not a genetic algorithm. Mine only operates on one shape at a time. Mine is much faster (AFAIK) and supports many types of shapes.

+

+Examples

+

Here are more examples from interesting photos found on Flickr.

+

Example Example Example Example Example Example Example Example Example Example Example Example Example Example Example Example Example Example Example Example

+
+
+ + + + diff --git a/Doxygen/md_primitive-master__l_i_c_e_n_s_e.html b/Doxygen/md_primitive-master__l_i_c_e_n_s_e.html new file mode 100644 index 0000000..259e55f --- /dev/null +++ b/Doxygen/md_primitive-master__l_i_c_e_n_s_e.html @@ -0,0 +1,104 @@ + + + + + + + +My Project: LICENSE + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
LICENSE
+
+
+

Copyright (C) 2016 Michael Fogleman

+

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

+

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

+

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+
+
+
+ + + + diff --git a/Doxygen/md_primitive-master__r_e_a_d_m_e.html b/Doxygen/md_primitive-master__r_e_a_d_m_e.html new file mode 100644 index 0000000..869de47 --- /dev/null +++ b/Doxygen/md_primitive-master__r_e_a_d_m_e.html @@ -0,0 +1,218 @@ + + + + + + + +My Project: Primitive Pictures + + + + + + + + + + + + + +
+
+ + + + + + +
+
My Project +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Primitive Pictures
+
+
+

Reproducing images with geometric primitives.

+

Example

+

+How it Works

+

A target image is provided as input. The algorithm tries to find the single most optimal shape that can be drawn to minimize the error between the target image and the drawn image. It repeats this process, adding one shape at a time. Around 50 to 200 shapes are needed to reach a result that is recognizable yet artistic and abstract.

+

+Primitive for macOS

+

Now available as a native Mac application!

+

https://primitive.lol/

+

+Twitter

+

Follow @PrimitivePic on Twitter to see a new primitive picture every 30 minutes!

+

The Twitter bot looks for interesting photos using the Flickr API, runs the algorithm using randomized parameters, and posts the picture using the Twitter API.

+

You can tweet a picture to the bot and it will process it for you.

+

+Command-line Usage

+

Run it on your own images! First, install Go.

go get -u github.com/fogleman/primitive
+primitive -i input.png -o output.png -n 100
+

Small input images should be used (like 256x256px). You don't need the detail anyway and the code will run faster.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Flag Default Description
i n/a input file
o n/a output file
n n/a number of shapes
m 1 mode: 0=combo, 1=triangle, 2=rect, 3=ellipse, 4=circle, 5=rotatedrect, 6=beziers, 7=rotatedellipse, 8=polygon
rep 0 add N extra shapes each iteration with reduced search (mostly good for beziers)
nth 1 save every Nth frame (only when d is in output path)
r 256 resize large input images to this size before processing
s 1024 output image size
a 128 color alpha (use 0 to let the algorithm choose alpha for each shape)
bg avg starting background color (hex)
j 0 number of parallel workers (default uses all cores)
v off verbose output
vv off very verbose output
+

+Output Formats

+

Depending on the output filename extension provided, you can produce different types of output.

+
    +
  • PNG: raster output
  • +
  • JPG: raster output
  • +
  • SVG: vector output
  • +
  • GIF: animated output showing shapes being added - requires ImageMagick (specifically the convert command)
  • +
+

For PNG and SVG outputs, you can also include d, %03d, etc. in the filename. In this case, each frame will be saved separately.

+

You can use the -o flag multiple times. This way you can save both a PNG and an SVG, for example.

+

+Progression

+

This GIF demonstrates the iterative nature of the algorithm, attempting to minimize the mean squared error by adding one shape at a time. (Use a ".gif" output file to generate one yourself!)

+

+

+Static Animation

+

Since the algorithm has a random component to it, you can run it against the same input image multiple times to bring life to a static image.

+

Pencils

+

+Creative Constraints

+

If you're willing to dabble in the code, you can enforce constraints on the shapes to produce even more interesting results. Here, the rectangles are constrained to point toward the sun in this picture of a pyramid sunset.

+

Pyramids

+

+Shape and Iteration Comparison Matrix

+

The matrix below shows triangles, ellipses and rectangles at 50, 100 and 200 iterations each.

+

Matrix

+

+How it Works, Part II

+

Say we have a Target Image. This is what we're working towards recreating. We start with a blank canvas, but we fill it with a single solid color. Currently, this is the average color of the Target Image. We call this new blank canvas the Current Image. Now, we start evaluating shapes. To evaluate a shape, we draw it on top of the Current Image, producing a New Image. This New Image is compared to the Target Image to compute a score. We use the root-mean-square error for the score.

Current Image + Shape => New Image
+RMSE(New Image, Target Image) => Score
+

The shapes are generated randomly. We can generate a random shape and score it. Then we can mutate the shape (by tweaking a triangle vertex, tweaking an ellipse radius or center, etc.) and score it again. If the mutation improved the score, we keep it. Otherwise we rollback to the previous state. Repeating this process is known as hill climbing. Hill climbing is prone to getting stuck in local minima, so we actually do this many different times with several different starting shapes. We can also generate N random shapes and pick the best one before we start hill climbing. Simulated annealing is another good option, but in my tests I found the hill climbing technique just as good and faster, at least for this particular problem.

+

Once we have found a good-scoring shape, we add it to the Current Image, where it will remain unchanged. Then we start the process again to find the next shape to draw. This process is repeated as many times as desired.

+

+Primitives

+

The following primitives are supported:

+
    +
  • Triangle
  • +
  • Rectangle (axis-aligned)
  • +
  • Ellipse (axis-aligned)
  • +
  • Circle
  • +
  • Rotated Rectangle
  • +
  • Combo (a mix of the above in a single image)
  • +
+

More shapes can be added by implementing the following interface:

+
type Shape interface {
+
Rasterize() []Scanline
+
Copy() Shape
+
Mutate()
+
Draw(dc *gg.Context)
+
SVG(attrs string) string
+
}
+

+Features

+
    +
  • Hill Climbing or Simulated Annealing for optimization (hill climbing multiple random shapes is nearly as good as annealing and faster)
  • +
  • Scanline rasterization of shapes in pure Go (preferable for implementing the features below)
  • +
  • Optimal color computation based on affected pixels for each shape (color is directly computed, not optimized for)
  • +
  • Partial image difference for faster scoring (only pixels that change need be considered)
  • +
  • Anti-aliased output rendering
  • +
+

+Inspiration

+

This project was originally inspired by the popular and excellent work of Roger Johansson - Genetic Programming: Evolution of Mona Lisa. Since seeing that article when it was quite new, I've tinkered with this problem here and there over the years. But only now am I satisfied with my results.

+

It should be noted that there are significant differences in my implementation compared to Roger's original work. Mine is not a genetic algorithm. Mine only operates on one shape at a time. Mine is much faster (AFAIK) and supports many types of shapes.

+

+Examples

+

Here are more examples from interesting photos found on Flickr.

+

Example Example Example Example Example Example Example Example Example Example Example Example Example Example Example Example Example Example Example Example

+
+
+
+ + + + diff --git a/Doxygen/menu.js b/Doxygen/menu.js new file mode 100644 index 0000000..433c15b --- /dev/null +++ b/Doxygen/menu.js @@ -0,0 +1,50 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchEnabled) { + if (serverSide) { + $('#main-menu').append('
  • '); + } else { + $('#main-menu').append('
  • '); + } + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/Doxygen/menudata.js b/Doxygen/menudata.js new file mode 100644 index 0000000..1143bb6 --- /dev/null +++ b/Doxygen/menudata.js @@ -0,0 +1,29 @@ +/* +@licstart The following is the entire license notice for the +JavaScript code in this file. + +Copyright (C) 1997-2019 by Dimitri van Heesch + +This program is free software; you can redistribute it and/or modify +it under the terms of version 2 of the GNU General Public License as published by +the Free Software Foundation + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +@licend The above is the entire license notice +for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Related Pages",url:"pages.html"}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"hierarchy.html"}]}]} diff --git a/Doxygen/nav_f.png b/Doxygen/nav_f.png new file mode 100644 index 0000000..72a58a5 Binary files /dev/null and b/Doxygen/nav_f.png differ diff --git a/Doxygen/nav_g.png b/Doxygen/nav_g.png new file mode 100644 index 0000000..2093a23 Binary files /dev/null and b/Doxygen/nav_g.png differ diff --git a/Doxygen/nav_h.png b/Doxygen/nav_h.png new file mode 100644 index 0000000..33389b1 Binary files /dev/null and b/Doxygen/nav_h.png differ diff --git a/Doxygen/navtree.css b/Doxygen/navtree.css new file mode 100644 index 0000000..33341a6 --- /dev/null +++ b/Doxygen/navtree.css @@ -0,0 +1,146 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; + outline:none; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:#fff; +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + background-color: #FAFAFF; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: 250px; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background-image:url("splitbar.png"); + background-size:100%; + background-repeat:repeat-y; + background-attachment: scroll; + cursor:ew-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/Doxygen/navtree.js b/Doxygen/navtree.js new file mode 100644 index 0000000..edc31ef --- /dev/null +++ b/Doxygen/navtree.js @@ -0,0 +1,544 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2019 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of version 2 of the GNU General Public License as + published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +var navTreeSubIndices = new Array(); +var arrowDown = '▼'; +var arrowRight = '►'; + +function getData(varName) +{ + var i = varName.lastIndexOf('/'); + var n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function hashValue() +{ + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); +} + +function hashUrl() +{ + return '#'+hashValue(); +} + +function pathName() +{ + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=arrowRight; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=arrowRight; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + var span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + var ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || + ancParent.hasClass('fieldtype') || + ancParent.is(':header')) + { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath(pathName()); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = hashUrl(); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname'){ + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + $('#nav-sync').css('top','30px'); + } else { + $('#nav-sync').css('top','5px'); + } + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +var loadTriggered = false; +var readyTriggered = false; +var loadObject,loadToRoot,loadUrl,loadRelPath; + +$(window).on('load',function(){ + if (readyTriggered) { // ready first + navTo(loadObject,loadToRoot,loadUrl,loadRelPath); + showRoot(); + } + loadTriggered=true; +}); + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("span"); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = arrowRight; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + if (loadTriggered) { // load before ready + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + } else { // ready before load + loadObject = o; + loadToRoot = toroot; + loadUrl = hashUrl(); + loadRelPath = relpath; + readyTriggered=true; + } + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/ + + + + + + +My Project: Related Pages + + + + + + + + + +
    +
    + + + + + + +
    +
    My Project +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Related Pages
    +
    +
    +
    Here is a list of all related documentation pages:
    +
    + + + + diff --git a/Doxygen/resize.js b/Doxygen/resize.js new file mode 100644 index 0000000..a0bb5f4 --- /dev/null +++ b/Doxygen/resize.js @@ -0,0 +1,137 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function initResizable() +{ + var cookie_namespace = 'doxygen'; + var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight; + + function readCookie(cookie) + { + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) { + var index = document.cookie.indexOf(myCookie); + if (index != -1) { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + return 0; + } + + function writeCookie(cookie, val, expiration) + { + if (val==undefined) return; + if (expiration == null) { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + } + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; + } + + function resizeWidth() + { + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + writeCookie('width',sidenavWidth-barWidth, null); + } + + function restoreWidth(navWidth) + { + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight() + { + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px"}); + var width=$(window).width(); + if (width!=collapsedWidth) { + if (width=desktop_vp) { + if (!collapsed) { + collapseExpand(); + } + } else if (width>desktop_vp && collapsedWidth0) { + restoreWidth(0); + collapsed=true; + } + else { + var width = readCookie('width'); + if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); } + collapsed=false; + } + } + + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + $(window).resize(function() { resizeHeight(); }); + var device = navigator.userAgent.toLowerCase(); + var touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + var width = readCookie('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(".ui-resizable-handle").dblclick(collapseExpand); + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/Doxygen/search/all_0.html b/Doxygen/search/all_0.html new file mode 100644 index 0000000..26dd244 --- /dev/null +++ b/Doxygen/search/all_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Doxygen/search/all_0.js b/Doxygen/search/all_0.js new file mode 100644 index 0000000..7c55e35 --- /dev/null +++ b/Doxygen/search/all_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['attrdict_0',['AttrDict',['../classmain_1_1_attr_dict.html',1,'main']]] +]; diff --git a/Doxygen/search/all_1.html b/Doxygen/search/all_1.html new file mode 100644 index 0000000..8eb215b --- /dev/null +++ b/Doxygen/search/all_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Doxygen/search/all_1.js b/Doxygen/search/all_1.js new file mode 100644 index 0000000..aa0c02b --- /dev/null +++ b/Doxygen/search/all_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['config_1',['Config',['../classmain_1_1_config.html',1,'main']]] +]; diff --git a/Doxygen/search/all_2.html b/Doxygen/search/all_2.html new file mode 100644 index 0000000..b26d916 --- /dev/null +++ b/Doxygen/search/all_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Doxygen/search/all_2.js b/Doxygen/search/all_2.js new file mode 100644 index 0000000..f1b41af --- /dev/null +++ b/Doxygen/search/all_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['license_2',['LICENSE',['../md__l_i_c_e_n_s_e.html',1,'']]] +]; diff --git a/Doxygen/search/all_3.html b/Doxygen/search/all_3.html new file mode 100644 index 0000000..b61b96f --- /dev/null +++ b/Doxygen/search/all_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Doxygen/search/all_3.js b/Doxygen/search/all_3.js new file mode 100644 index 0000000..0047438 --- /dev/null +++ b/Doxygen/search/all_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['primitive_20pictures_3',['Primitive Pictures',['../md__r_e_a_d_m_e.html',1,'']]] +]; diff --git a/Doxygen/search/all_4.html b/Doxygen/search/all_4.html new file mode 100644 index 0000000..06de155 --- /dev/null +++ b/Doxygen/search/all_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Doxygen/search/all_4.js b/Doxygen/search/all_4.js new file mode 100644 index 0000000..6a6a7fe --- /dev/null +++ b/Doxygen/search/all_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['test_4',['test',['../classmain_1_1test.html',1,'main']]] +]; diff --git a/Doxygen/search/all_5.html b/Doxygen/search/all_5.html new file mode 100644 index 0000000..2544c4e --- /dev/null +++ b/Doxygen/search/all_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Doxygen/search/all_5.js b/Doxygen/search/all_5.js new file mode 100644 index 0000000..e954b66 --- /dev/null +++ b/Doxygen/search/all_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['raidersma_9',['RaiderSMA',['../md__r_e_a_d_m_e.html',1,'']]] +]; diff --git a/Doxygen/search/all_6.html b/Doxygen/search/all_6.html new file mode 100644 index 0000000..43f14ea --- /dev/null +++ b/Doxygen/search/all_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Doxygen/search/all_6.js b/Doxygen/search/all_6.js new file mode 100644 index 0000000..a73d714 --- /dev/null +++ b/Doxygen/search/all_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['team_10',['Team',['../class_data_classes_1_1_team.html',1,'DataClasses']]] +]; diff --git a/Doxygen/search/all_7.html b/Doxygen/search/all_7.html new file mode 100644 index 0000000..af52f82 --- /dev/null +++ b/Doxygen/search/all_7.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Doxygen/search/all_7.js b/Doxygen/search/all_7.js new file mode 100644 index 0000000..62fe7be --- /dev/null +++ b/Doxygen/search/all_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['wrestler_11',['Wrestler',['../class_data_classes_1_1_wrestler.html',1,'DataClasses']]] +]; diff --git a/Doxygen/search/classes_0.html b/Doxygen/search/classes_0.html new file mode 100644 index 0000000..f7e4c14 --- /dev/null +++ b/Doxygen/search/classes_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Doxygen/search/classes_0.js b/Doxygen/search/classes_0.js new file mode 100644 index 0000000..df53be1 --- /dev/null +++ b/Doxygen/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['attrdict_5',['AttrDict',['../classmain_1_1_attr_dict.html',1,'main']]] +]; diff --git a/Doxygen/search/classes_1.html b/Doxygen/search/classes_1.html new file mode 100644 index 0000000..c7ff4b3 --- /dev/null +++ b/Doxygen/search/classes_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Doxygen/search/classes_1.js b/Doxygen/search/classes_1.js new file mode 100644 index 0000000..7e7f5fd --- /dev/null +++ b/Doxygen/search/classes_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['config_6',['Config',['../classmain_1_1_config.html',1,'main']]] +]; diff --git a/Doxygen/search/classes_2.html b/Doxygen/search/classes_2.html new file mode 100644 index 0000000..0d1e8a0 --- /dev/null +++ b/Doxygen/search/classes_2.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Doxygen/search/classes_2.js b/Doxygen/search/classes_2.js new file mode 100644 index 0000000..6f1832b --- /dev/null +++ b/Doxygen/search/classes_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['test_7',['test',['../classmain_1_1test.html',1,'main']]] +]; diff --git a/Doxygen/search/classes_3.html b/Doxygen/search/classes_3.html new file mode 100644 index 0000000..2102545 --- /dev/null +++ b/Doxygen/search/classes_3.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Doxygen/search/classes_3.js b/Doxygen/search/classes_3.js new file mode 100644 index 0000000..3ad8617 --- /dev/null +++ b/Doxygen/search/classes_3.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['main_16',['Main',['../classwrestlingtournamentcli_1_1_main.html',1,'wrestlingtournamentcli']]], + ['match_17',['Match',['../class_data_classes_1_1_match.html',1,'DataClasses']]], + ['matchrecord_18',['MatchRecord',['../classwrestlingtournamentcli_1_1_match_record.html',1,'wrestlingtournamentcli']]], + ['model_19',['Model',['../classwrestlingtournamentcli_1_1_model.html',1,'wrestlingtournamentcli']]] +]; diff --git a/Doxygen/search/classes_4.html b/Doxygen/search/classes_4.html new file mode 100644 index 0000000..095ab59 --- /dev/null +++ b/Doxygen/search/classes_4.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Doxygen/search/classes_4.js b/Doxygen/search/classes_4.js new file mode 100644 index 0000000..8d4f191 --- /dev/null +++ b/Doxygen/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['notfoundexception_20',['NotFoundException',['../classwrestlingtournamentcli_1_1_not_found_exception.html',1,'wrestlingtournamentcli']]] +]; diff --git a/Doxygen/search/classes_5.html b/Doxygen/search/classes_5.html new file mode 100644 index 0000000..fc9cdc9 --- /dev/null +++ b/Doxygen/search/classes_5.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Doxygen/search/classes_5.js b/Doxygen/search/classes_5.js new file mode 100644 index 0000000..95fc7f7 --- /dev/null +++ b/Doxygen/search/classes_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['team_21',['Team',['../class_data_classes_1_1_team.html',1,'DataClasses']]] +]; diff --git a/Doxygen/search/classes_6.html b/Doxygen/search/classes_6.html new file mode 100644 index 0000000..1ecfddd --- /dev/null +++ b/Doxygen/search/classes_6.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Doxygen/search/classes_6.js b/Doxygen/search/classes_6.js new file mode 100644 index 0000000..18ca137 --- /dev/null +++ b/Doxygen/search/classes_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['wrestler_22',['Wrestler',['../class_data_classes_1_1_wrestler.html',1,'DataClasses']]] +]; diff --git a/Doxygen/search/close.png b/Doxygen/search/close.png new file mode 100644 index 0000000..9342d3d Binary files /dev/null and b/Doxygen/search/close.png differ diff --git a/Doxygen/search/mag_sel.png b/Doxygen/search/mag_sel.png new file mode 100644 index 0000000..39c0ed5 Binary files /dev/null and b/Doxygen/search/mag_sel.png differ diff --git a/Doxygen/search/nomatches.html b/Doxygen/search/nomatches.html new file mode 100644 index 0000000..4377320 --- /dev/null +++ b/Doxygen/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/Doxygen/search/pages_0.html b/Doxygen/search/pages_0.html new file mode 100644 index 0000000..9a6a29a --- /dev/null +++ b/Doxygen/search/pages_0.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Doxygen/search/pages_0.js b/Doxygen/search/pages_0.js new file mode 100644 index 0000000..c915ccf --- /dev/null +++ b/Doxygen/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['license_8',['LICENSE',['../md__l_i_c_e_n_s_e.html',1,'']]] +]; diff --git a/Doxygen/search/pages_1.html b/Doxygen/search/pages_1.html new file mode 100644 index 0000000..132ee03 --- /dev/null +++ b/Doxygen/search/pages_1.html @@ -0,0 +1,30 @@ + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/Doxygen/search/pages_1.js b/Doxygen/search/pages_1.js new file mode 100644 index 0000000..abe8434 --- /dev/null +++ b/Doxygen/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['primitive_20pictures_9',['Primitive Pictures',['../md__r_e_a_d_m_e.html',1,'']]] +]; diff --git a/Doxygen/search/search.css b/Doxygen/search/search.css new file mode 100644 index 0000000..3cf9df9 --- /dev/null +++ b/Doxygen/search/search.css @@ -0,0 +1,271 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#MSearchBox { + white-space : nowrap; + float: none; + margin-top: 8px; + right: 0px; + width: 170px; + height: 24px; + z-index: 102; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:115px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:8px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; + z-index:10000; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/Doxygen/search/search.js b/Doxygen/search/search.js new file mode 100644 index 0000000..a554ab9 --- /dev/null +++ b/Doxygen/search/search.js @@ -0,0 +1,814 @@ +/* + @licstart The following is the entire license notice for the + JavaScript code in this file. + + Copyright (C) 1997-2017 by Dimitri van Heesch + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + @licend The above is the entire license notice + for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; eli>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/GUI.py b/GUI.py new file mode 100644 index 0000000..59c9089 --- /dev/null +++ b/GUI.py @@ -0,0 +1,88 @@ +import tkinter.filedialog as filedialog +import tkinter as tk + +master = tk.Tk() +master.title("Primitive") + +def input(): + input_path = tk.filedialog.askopenfilename() + input_entry.delete(1, tk.END) # Remove current text in entry + input_entry.insert(0, input_path) # Insert the 'path' + +def output(): + path = tk.filedialog.askopenfilename() + input_entry.delete(1, tk.END) # Remove current text in entry + input_entry.insert(0, path) # Insert the 'path' + + + + + +top_frame = tk.Frame(master) +bottom_frame = tk.Frame(master) +line = tk.Frame(master, height=1, width=400, bg="grey80", relief='groove') + + +top_frame.pack(side=tk.TOP) +line.pack(pady=10) +bottom_frame.pack(side=tk.BOTTOM) + + + +input_path = tk.Label(top_frame, text="Picture path:") +input_entry = tk.Entry(top_frame, text="", width=40) +browse1 = tk.Button(top_frame, text="Browse", command=input) + +output_path = tk.Label(bottom_frame, text="Output Path:") +output_entry = tk.Entry(bottom_frame, text="", width=40) +browse2 = tk.Button(bottom_frame, text="Browse", command=output) + +begin_button = tk.Button(bottom_frame, text='Begin!') #beginButton + +top_frame.pack(side=tk.TOP) +line.pack(pady=10) +bottom_frame.pack(side=tk.BOTTOM) + +input_path.pack(pady=5) +input_entry.pack(pady=5) +browse1.pack(pady=5) + +output_path.pack(pady=5) +output_entry.pack(pady=5) +browse2.pack(pady=5) + +begin_button.pack(pady=20, fill=tk.X) + + +master.mainloop() + +#def window(): +# Creates window for the program + +#TODO Req 1.0 +#def helpButton() +# Creates a help button + +#TODO 1.1 +#def export() +# allow the user to export their finished +# picture to the location of their choice +#TODO 1.2 +#def difficulty() +# allows the user to select the number of geometric shapes to form +# the image + +#TODO 1.3 +#def geometricShapes() +# allows the user to select what geometric shape to form +# the image + +#TODO 1.4 +#def display() +# Shows the final form of the image + +#TODO Req 1.5 +#def file() + #allows the user to select the photo they want + #import easygui + #file = easygui.fileopenbox() diff --git a/bot/main.py b/bot/main.py index 8853dbe..852ab77 100644 --- a/bot/main.py +++ b/bot/main.py @@ -41,6 +41,7 @@ print 'no config found!' class AttrDict(dict): + # This is a test for Doxygen def __init__(self, *args, **kwargs): super(AttrDict, self).__init__(*args, **kwargs) self.__dict__ = self diff --git a/features.md b/features.md new file mode 100644 index 0000000..6c1a2e8 --- /dev/null +++ b/features.md @@ -0,0 +1,14 @@ +# Planned Features + +1) Privide a GUI for configuring and running program + + A) As an App user, I want to use the program through a GUI. This GUI should have options like; select file and how many polygons used. + +2) Keep track of each color used, and output an image that identifies each primitive with a number corresponding to the color of that primitive. + + A) As an App user, I want to produce an image with numbers identifying each color so that I can produce "Paint by Numbers" and a person can maunually reproduce the image by filling each primitive with the numbered color. + + +3) Create an image filter option to change the appearance of the photo by altering the shades and/or colors of the primitive shapes. + + A) As an App user, I want to apply a filter so that I can produce my picture in gray scale, sepia, or negative. diff --git a/main.go b/main.go index 59e3345..c55bd2e 100644 --- a/main.go +++ b/main.go @@ -62,6 +62,7 @@ func (i *shapeConfigArray) Set(value string) error { } func init() { + //TODO ADD FILTER OPTION REQ 3.0 & 3.4 flag.StringVar(&Input, "i", "", "input image path") flag.Var(&Outputs, "o", "output image path") flag.Var(&Configs, "n", "number of primitives") diff --git a/primitive/color.go b/primitive/color.go index 2828957..e6bdfcc 100644 --- a/primitive/color.go +++ b/primitive/color.go @@ -42,3 +42,21 @@ func MakeHexColor(x string) Color { func (c *Color) NRGBA() color.NRGBA { return color.NRGBA{uint8(c.R), uint8(c.G), uint8(c.B), uint8(c.A)} } + +// Req. 3.1 +func GrayScaleFilter(c color.Color) Color { + // TODO: apply gray scale algorithm + return Color{} +} + +// Req. 3.2 +func SepiaFilter(c color.Color) Color { + // TODO: apply sepia algorithm + return Color{} +} + +// Req. 3.3 +func NegativeFilter(c color.Color) Color { + // TODO: apply negative algorithm + return Color{} +} diff --git a/primitive/difficulty.go b/primitive/difficulty.go new file mode 100644 index 0000000..c788876 --- /dev/null +++ b/primitive/difficulty.go @@ -0,0 +1,16 @@ +package primitive + +// REQ 2.4.0 2.4.1/2.4.2/2.4.3/2.4.4 +type Difficulty int + +const ( + easy Difficulty = 0 + medium Difficulty = 2 + hard Difficulty = 3 + expert Difficulty = 4 +) + +func setDifficulty() int { + //Todo easy=50, medium=100, hard=150, expert=300 + return 0 +} diff --git a/primitive/model.go b/primitive/model.go index 80f49ae..ce4efba 100644 --- a/primitive/model.go +++ b/primitive/model.go @@ -8,6 +8,8 @@ import ( "github.com/fogleman/gg" ) +//TODO: add FILTER +//Note: default = none type Model struct { Sw, Sh int Scale float64 diff --git a/primitive/paintByNumbers.go b/primitive/paintByNumbers.go new file mode 100644 index 0000000..47b048d --- /dev/null +++ b/primitive/paintByNumbers.go @@ -0,0 +1,33 @@ +package primitive + +// color type +type clr struct { + name string + c Color +} + +//REQ 2.0 +//maps type clr with number +colorMap := make(map[clr]int) + + +//REQ 2.2 2.2.1 +//makes the fill transparent +func clearFill(c *Shape) { + +} + +//Gets the fill +func getFill(c *Shape) { + //Generates clr (color) based on fill color + //Add to map +} + +//REQ 2.1 2.1.1 2.1.2 2.1.2.1 +//Writes the number in generated shape +func annotate() { + //Gets fill then clearsFill + //Writes int key corresponding color value + //Note: Look into DrawString + Font f = new Font(8) +} diff --git a/primitive/polygon.go b/primitive/polygon.go index dee3a6c..c3d5179 100644 --- a/primitive/polygon.go +++ b/primitive/polygon.go @@ -15,6 +15,7 @@ type Polygon struct { X, Y []float64 } +//NewRandomPolygon creates random polygon func NewRandomPolygon(worker *Worker, order int, convex bool) *Polygon { rnd := worker.Rnd x := make([]float64, order) diff --git a/primitive/util.go b/primitive/util.go index 83446cd..cca2fb4 100644 --- a/primitive/util.go +++ b/primitive/util.go @@ -203,3 +203,8 @@ func AverageImageColor(im image.Image) color.NRGBA { b /= w * h return color.NRGBA{uint8(r), uint8(g), uint8(b), 255} } + +//REQ 2.3 +func printKey(colorMap *map) { + +} diff --git a/requirements.md b/requirements.md new file mode 100644 index 0000000..3e70bec --- /dev/null +++ b/requirements.md @@ -0,0 +1,67 @@ +# Software Requirements Specification for Spring 2020 "Software Engineering" Primitives Project at Wright State University + +## Overview + +This document specifies the project modifation to Fogleman's Primitive Application, hereafter called "App". + +## References + +## Functional Requirements + +### [User Story 1 ](features.md "Ref. Features And User Stories") + +Req. 1.0 The User Interface shall have a help button to walk the user through how to use primitive. + +Req. 1.1 The User Interface shall have an export option to export the image as a paint by numbers. + +Req. 1.2 The User Interface shall allow the user to select the number of geometric shapes to form their image. + +Req. 1.3 The User Interface shall allow the user to select up to five different geometric shapes. + +Req. 1.4 The User Interface shall display the final image. + +Req. 1.5 The User Interface shall allow the user to select an image from their device to modify. + + +### [User Story 2 ](features.md "Ref. Features And User Stories") + + +Req. 2.0 The App shall for each output image identify each distinct color within the output image using a different number per color. + +Req. 2.1 The App shall annotate each output image to show the number corresponding to each area of distict color in the output. + +Req. 2.1.1 Each annotation shall consist of text in 8pt font or greater. + +Req. 2.1.2 Each annotation shall be presented in each output image directly above the distict color to which the annotation corresponds + +Req. 2.1.2.1 Each area of distinct color in the output shall have a corresponding annotation. + +Req. 2.2 The App shall output an image consisting of outlines for each area of distict color. + +Req. 2.2.1 Output outlines shall be annotated in the same manner as specified for areas of distict color in Req. 2.1. + +Req. 2.3 The App shall output a table correlating numbers with distinct colors that appears in the output image. + +Req. 2.4 The App shall have levels of difficulty to limit the number of geometric shapes annotated. + +Req. 2.4.1 The App shall have an easy level consisting of 50 geometric shapes. + +Req. 2.4.2 The App shall have a medium level consisting of 100 geometric shapes. + +Req. 2.4.3 The App shall have a hard level consisting of 150 geometric shapes. + +Req. 2.4.4 The App shall have an expert level consisting of 300 geometric shapes. + + +### [User Story 3 ](features.md "Ref. Features And User Stories") + + +Req. 3.0 The User shall have an option to apply a filter to the output image. + +Req. 3.1 The App shall produce an output image in gray scale. + +Req. 3.2 The App shall produce an output image in sepia. + +Req. 3.3 The App shall produce an output image in negative. + +Req. 3.4 The User shall be able to select a filter. diff --git a/scripts/html.py b/scripts/html.py index 49fc921..eb8a0a1 100644 --- a/scripts/html.py +++ b/scripts/html.py @@ -1,6 +1,9 @@ import os import sys - +#This is a comment to test godoc +#This is a comment to test godoc +#This is a comment to test godoc +#This is a comment to test godoc def run(in_folder, out_folder): seen = set() for name in os.listdir(out_folder):