;; Hand, Foot, and Mouth Disease will be represented throughout the code as "HFMD" turtles-own [ in-latent-period? ; high spread chance while infected infected-symptomatic? ; infected and showing symptoms of HFMD infected-asymptomatic? ; infected and not showing symptoms of HFMD immune? ; immune to HFMD adult? ; includes teachers and student workers early-drop-off? ; designates the children who are in a combined room group-id ; id number to designate which room each turtle is in latent-period-time ; time for each of the states of HFMD infected-symptomatic-time infected-asymptomatic-time self-isolation-time ; time that a symptomatic turtle spends with links not active ] ;Group-Ids go from left to right in the view ;Infant Rooms have Group-Ids 0-3 (Top Row) ;Toddler Rooms have Group-Ids 4-7 (Second Row from Top) ;Preschool Rooms have Group-Ids 8-15 (Bottom Two Rows) links-own [ active? ; allows for isolation policy, spreading only occurs on active links ] globals [ group-list ; Variable of group-ids for the floaters to choose from infant-list ; Variable of group-ids for each of the room types toddler-list preschool-list total-people ; Calculates the total number of people in the daycare total-kids ; Calculates the total number of kids in the daycare day-of-week ; Variable that keeps track of the weekday ] ;The link-breeds define particular connections undirected-link-breed [siblings sibling] ; Connects siblings undirected-link-breed [friendships friendship] ; Connects each room group and floaters with their Monday, Wednesday, and Friday (MWF) scheduled rooms undirected-link-breed [floatfriends floatfriend] ; Connects floaters with the Tuesday and Thursday (TR) scheduled rooms breed [teachers teacher] breed [floaters floater] to setup clear-all ask patches [set pcolor white] set-default-shape turtles "person" set-default-shape teachers "circle" set-default-shape floaters "star" ; Set up the infant rooms let i 0 while [ i < number-of-infant-rooms ] [ create-turtles 8 [set group-id i] ask turtles with [group-id = i] [ create-friendships-with turtles with [group-id = i and self != myself] ] create-teachers 2 [set group-id i] ask teachers with [group-id = i] [ create-friendships-with turtles with [group-id = i and self != myself] ] set i (i + 1) ] layout-circle turtles with [group-id < 4] (3) ask turtles with [group-id = 0] [ setxy xcor - 12 ycor + 12] ask turtles with [group-id = 1] [ setxy xcor - 4 ycor + 12] ask turtles with [group-id = 2] [ setxy xcor + 4 ycor + 12] ask turtles with [group-id = 3] [ setxy xcor + 12 ycor + 12] ; Set up the toddler rooms let j 0 while [ j < number-of-toddler-rooms ] [ create-turtles 10 [set group-id (j + 4)] ask turtles with [group-id = (j + 4)] [ create-friendships-with turtles with [group-id = (j + 4) and self != myself]] create-teachers 2 [set group-id (j + 4)] ask teachers with [group-id = (j + 4)] [ create-friendships-with turtles with [group-id = (j + 4) and self != myself]] set j (j + 1) ] layout-circle turtles with [group-id > 3] (3) ask turtles with [group-id = 4] [ setxy xcor - 12 ycor + 4] ask turtles with [group-id = 5] [ setxy xcor - 4 ycor + 4] ask turtles with [group-id = 6] [ setxy xcor + 4 ycor + 4] ask turtles with [group-id = 7] [ setxy xcor + 12 ycor + 4] ; Set up the pre-schooler rooms let k 0 while [ k < number-of-preschool-rooms ] [ create-turtles 14 [set group-id (k + 8)] ask turtles with [group-id = (k + 8)] [ create-friendships-with turtles with [group-id = (k + 8) and self != myself]] create-teachers 2 [set group-id (k + 8)] ask teachers with [group-id = (k + 8)] [ create-friendships-with turtles with [group-id = (k + 8) and self != myself]] set k (k + 1) ] layout-circle turtles with [group-id > 7] (3) ask turtles with [group-id = 8] [ setxy xcor - 12 ycor - 4] ask turtles with [group-id = 9] [ setxy xcor - 4 ycor - 4] ask turtles with [group-id = 10] [ setxy xcor + 4 ycor - 4] ask turtles with [group-id = 11] [ setxy xcor + 12 ycor - 4] ask turtles with [group-id = 12] [ setxy xcor - 12 ycor - 12] ask turtles with [group-id = 13] [ setxy xcor - 4 ycor - 12] ask turtles with [group-id = 14] [ setxy xcor + 4 ycor - 12] ask turtles with [group-id = 15] [ setxy xcor + 12 ycor - 12] ; Differentiate kids and adults and set all turtles not in the early drop off group ask turtles [set adult? false] ask teachers [set adult? true] ask turtles [set early-drop-off? false] ; Create the sibling pairs ask n-of sib-pairs turtles with [(not adult?)] [ create-siblings-with n-of 1 turtles with [(not adult?) and self != myself]] ask turtles [ ask sibling-neighbors [ create-siblings-with other [sibling-neighbors] of myself] ] ; Create the floaters and their links for the two schedules: MWF and TR ; First, define what rooms are being used set group-list [0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15] if (number-of-preschool-rooms < 8) [ set group-list remove-item 15 group-list] if (number-of-preschool-rooms < 7) [ set group-list remove-item 14 group-list] if (number-of-preschool-rooms < 6) [ set group-list remove-item 13 group-list] if (number-of-preschool-rooms < 5) [ set group-list remove-item 12 group-list] if (number-of-preschool-rooms < 4) [ set group-list remove-item 11 group-list] if (number-of-preschool-rooms < 3) [ set group-list remove-item 10 group-list] if (number-of-preschool-rooms < 2) [ set group-list remove-item 9 group-list] if (number-of-preschool-rooms < 1) [ set group-list remove-item 8 group-list] if (number-of-toddler-rooms < 4) [ set group-list remove-item 7 group-list] if (number-of-toddler-rooms < 3) [ set group-list remove-item 6 group-list] if (number-of-toddler-rooms < 2) [ set group-list remove-item 5 group-list] if (number-of-toddler-rooms < 1) [ set group-list remove-item 4 group-list] if (number-of-infant-rooms < 4) [ set group-list remove-item 3 group-list] if (number-of-infant-rooms < 3) [ set group-list remove-item 2 group-list] if (number-of-infant-rooms < 2) [ set group-list remove-item 1 group-list] if (number-of-infant-rooms < 1) [ set group-list remove-item 0 group-list] ; Second, create floaters and their MWF and TR rooms by link breeds create-floaters number-of-floaters ask floaters [ set adult? true set early-drop-off? false] repeat max-rooms-per-floater [ ask floaters [set group-id one-of group-list] ask floaters [ create-friendships-with turtles with [group-id = [group-id] of myself and (not adult?)]]] repeat max-rooms-per-floater [ ask floaters [set group-id one-of group-list] ask floaters [ create-floatfriends-with turtles with [group-id = [group-id] of myself and (not adult?)]]] ask floaters [setxy random-xcor mod 10 random-ycor mod 10 ] ask floaters [move-to one-of turtles with [group-id = [group-id] of myself]] ask floaters [fd 3] ; Offset floater location, so they are close to one of the group they are linked to ; Now to create links of those in the combined room ; First, define the rooms being used for each type set infant-list [0 1 2 3] if (number-of-infant-rooms < 4) [ set infant-list remove-item 3 infant-list] if (number-of-infant-rooms < 3) [ set infant-list remove-item 2 infant-list] if (number-of-infant-rooms < 2) [ set infant-list remove-item 1 infant-list] if (number-of-infant-rooms < 1) [ set infant-list remove-item 0 infant-list] set toddler-list [4 5 6 7] if (number-of-toddler-rooms < 4) [ set toddler-list remove-item 3 toddler-list] if (number-of-toddler-rooms < 3) [ set toddler-list remove-item 2 toddler-list] if (number-of-toddler-rooms < 2) [ set toddler-list remove-item 1 toddler-list] if (number-of-toddler-rooms < 1) [ set toddler-list remove-item 0 toddler-list] set preschool-list [8 9 10 11 12 13 14 15] if (number-of-preschool-rooms < 8) [ set preschool-list remove-item 7 preschool-list] if (number-of-preschool-rooms < 7) [ set preschool-list remove-item 6 preschool-list] if (number-of-preschool-rooms < 6) [ set preschool-list remove-item 5 preschool-list] if (number-of-preschool-rooms < 5) [ set preschool-list remove-item 4 preschool-list] if (number-of-preschool-rooms < 4) [ set preschool-list remove-item 3 preschool-list] if (number-of-preschool-rooms < 3) [ set preschool-list remove-item 2 preschool-list] if (number-of-preschool-rooms < 2) [ set preschool-list remove-item 1 preschool-list] if (number-of-preschool-rooms < 1) [ set preschool-list remove-item 0 preschool-list] ; Second, combine children and then schedule two sets of teachers (one pair for MWF and one pair for TTh) if (number-of-infant-rooms > 1)[ let a one-of infant-list let b one-of infant-list ask n-of (random 8) turtles with [(group-id = 0) or (group-id = 1) or (group-id = 2) or (group-id = 3) and (not adult?)] [ set early-drop-off? true] ask turtles with [(group-id = 0) or (group-id = 1) or (group-id = 2) or (group-id = 3) and early-drop-off?] [ create-friendships-with turtles with [(group-id = 0) or (group-id = 1) or (group-id = 2) or (group-id = 3) and early-drop-off? and self != myself and group-id != [group-id] of myself] if (group-id != a) [ create-friendships-with teachers with [group-id = a] ] if (group-id != b) [ create-floatfriends-with teachers with [group-id = b] ] ] ] if (number-of-toddler-rooms > 1) [ let c one-of toddler-list let d one-of toddler-list ask n-of (random 10) turtles with [(group-id = 4) or (group-id = 5) or (group-id = 6) or (group-id = 7) and (not adult?)] [ set early-drop-off? true] ask turtles with [(group-id = 4) or (group-id = 5) or (group-id = 6) or (group-id = 7) and early-drop-off?] [ create-friendships-with turtles with [(group-id = 4) or (group-id = 5) or (group-id = 6) or (group-id = 7) and early-drop-off? and self != myself and group-id != [group-id] of myself] if (group-id != c) [ create-friendships-with teachers with [group-id = c] ] if (group-id != d) [ create-floatfriends-with teachers with [group-id = d] ] ] ] if (number-of-preschool-rooms > 1) [ let f one-of preschool-list let g one-of preschool-list ask n-of (random 14) turtles with [(group-id > 7) and (not adult?)] [ set early-drop-off? true] ask turtles with [(group-id > 7) and early-drop-off?] [ create-friendships-with turtles with [(group-id > 7) and early-drop-off? and self != myself and group-id != [group-id] of myself] if (group-id != f) [ create-friendships-with teachers with [group-id = f] ] if (group-id != g) [ create-floatfriends-with teachers with [group-id = g] ] ] ] ; Assumes that at most the combined kids fill one room so only random turtles up to maximum room amount selected ; Two pairs of teachers selected to rotate MWF and TR ; Calculate the total number of people and children in the daycare set total-people (count turtles) set total-kids (count turtles - (number-of-floaters + (2 * (number-of-infant-rooms + number-of-toddler-rooms + number-of-preschool-rooms)))) ; Set the links either hidden or shown ask turtles [ask my-links [hide-link]] if see-links? [ ask turtles [ ask my-links [show-link] ]] ; Set the number of individuals that are susceptible, immune, or in-latent-period ask turtles [ask my-links [set active? true] ] ; Initialize all links to be active ask turtles [become-susceptible] ; If a turtle is susceptible there is a possibility that they can get HFMD ask n-of (floor ((percent-immune / 100) * (count turtles with [adult?]))) (turtles with [adult?]) [ become-immune ] ; If a turtles is immune there is no possibility that they can get HFMD ask n-of number-of-in-latent-period turtles with [(not immune?)] [ become-in-latent-period ] ask turtles [ set latent-period-time 0 set self-isolation-time 0 ] set day-of-week random 7 ; Initialize day-of-week reset-ticks end ;Define the 5 possible states an individual can be in to become-in-latent-period set in-latent-period? true ; In order for a turtle to go in-latent-period, then the other 3 states must be false set infected-symptomatic? false set infected-asymptomatic? false set immune? false set color red end to become-infected-symptomatic set in-latent-period? false set infected-symptomatic? true ; In order for a turtle to become-infected-symptomatic, then the other 3 states must be false set infected-asymptomatic? false set immune? false set color blue end to become-infected-asymptomatic set in-latent-period? false set infected-symptomatic? false set infected-asymptomatic? true ; In order for a turtle to become-infected-asymptomatic, then the other 3 states must be false set immune? false set color green end to become-immune set in-latent-period? false set infected-symptomatic? false set infected-asymptomatic? false set immune? true ; In order for a turtle to become-immune, the other 3 states must be false set color violet end to become-susceptible ; In order for a turtle to become-susceptible, then the other 4 states must be false set in-latent-period? false set infected-symptomatic? false set infected-asymptomatic? false set immune? false set color black end to go ifelse day-of-week = (6 mod 7) or day-of-week = (0 mod 7) ; 6 represents Saturday, 0 represents Sunday, and 7 represents the seven days in a week [spread-virus-on-weekend] ; Since students in a childcare center do not go on the weekends to the daycare, that affects the spread of HFMD [ifelse day-of-week = (2 mod 7) or day-of-week = (4 mod 7) ; On Tuesday (2) and Thursday (4) the schedules change and different links are used, so use a different process to spread HMFD [spread-virus-off-schedule] [spread-virus]] advance-sickness set day-of-week remainder (day-of-week + 1) 7 ; Move to next day tick if ticks >= 4500 [stop] ; Stops program from going on indefinitely but allows virus to run its course end to spread-virus ; MWF Schedule let poissmu (virus-spread-chance) ; Adults with HFMD and Symptomatic ask turtles with [ infected-symptomatic? and adult? ] [ask my-friendships [ if active? [ ; Only asks turtles with active links and not isolating from childcare center ask myself [ ask friendship-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (adult?) ] ; "link-neighbors" must be susceptible [ if poissdist poissmu > .36 [ become-in-latent-period ] ] ask friendship-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (not adult?) ] [ if poissdist poissmu > .2 [ become-in-latent-period ] ] ]]]] ; Adults with HFMD and Asymptomatic ask turtles with [ infected-asymptomatic? and adult? ] [ask my-friendships [ if active? [ ask myself [ ask friendship-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (adult?) ] [ if poissdist poissmu > .37 [ become-in-latent-period ] ] ask friendship-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (not adult?) ] [ if poissdist poissmu > .3 [ become-in-latent-period ] ] ]]]] ; Children with HFMD and Symptomatic ask turtles with [ infected-symptomatic? and (not adult?) ] [ask my-friendships [ if active? [ ask myself [ ask friendship-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (adult?) ] [ if poissdist poissmu > .36 [ become-in-latent-period ] ] ask friendship-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (not adult?) ] [ if poissdist poissmu > .05 [ become-in-latent-period ] ] ]]]] ; Children with HFMD and Asymptomatic ask turtles with [ infected-asymptomatic? and (not adult?) ] [ask my-friendships [ if active? [ ask myself [ ask friendship-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (adult?) ] [ if poissdist poissmu > .36 [ become-in-latent-period ] ] ask friendship-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (not adult?) ] [ if poissdist poissmu > .1 [ become-in-latent-period ] ] ]]]] ; Siblings with HFMD and Symptomatic ask turtles with [ infected-symptomatic? and (not adult?) ] [ ask sibling-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) ] [ if poissdist poissmu > .05 [ become-in-latent-period ] ] ] ; Siblings with HFMD and Asymptomatic ask turtles with [ infected-asymptomatic? and (not adult?) ] [ ask sibling-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) ] [ if poissdist poissmu > .05 [ become-in-latent-period ] ] ] end to spread-virus-off-schedule ; TR schedule let poissmu (virus-spread-chance) ; Teachers with HFMD and Symptomatic ask teachers with [ infected-symptomatic? and adult? ] [ask my-friendships [ if active? [ ask myself [ ask friendship-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (adult?) ] [ if poissdist poissmu > .36 [ become-in-latent-period ] ] ask friendship-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (not adult?) ] [ if poissdist poissmu > .2 [ become-in-latent-period ] ] ask floatfriend-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (not adult?) ] [ if poissdist poissmu > .2 [ become-in-latent-period ] ] ]]]] ; Teachers with HFMD and Asymptomatic ask teachers with [ infected-asymptomatic? and adult? ] [ask my-friendships [ if active? [ ask myself [ ask friendship-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (adult?) ] [ if poissdist poissmu > .36 [ become-in-latent-period ] ] ask friendship-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (not adult?) ] [ if poissdist poissmu > .3 [ become-in-latent-period ] ] ask floatfriend-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (not adult?) ] [ if poissdist poissmu > .3 [ become-in-latent-period ] ] ]]]] ; Floaters with HFMD and Symptomatic ask floaters with [ infected-symptomatic? and adult? ] [ask my-floatfriends [ if active? [ ask myself [ ask floatfriend-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (adult?) ] [ if poissdist poissmu > .36 [ become-in-latent-period ] ] ask floatfriend-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (not adult?) ] [if poissdist poissmu > .2 [ become-in-latent-period ] ] ]]]] ; Floaters with HFMD and Asymptomatic ask floaters with [ infected-asymptomatic? and adult? ] [ask my-floatfriends [ if active? [ ask myself [ ask floatfriend-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (adult?) ] [ if poissdist poissmu > .37 [ become-in-latent-period ] ] ask floatfriend-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (not adult?) ] [ if poissdist poissmu > .3 [ become-in-latent-period ] ] ]]]] ; Children with HFMD and Symptomatic ask turtles with [ infected-symptomatic? and (not adult?) ] [ask my-friendships [ if active? [ ask myself [ ask friendship-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (adult?) ] [ if poissdist poissmu > .36 [ become-in-latent-period ] ] ask friendship-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (not adult?) ] [ if poissdist poissmu > .05 [ become-in-latent-period ] ] ]]]] ; Children with HFMD and Asymptomatic ask turtles with [ infected-asymptomatic? and (not adult?) ] [ask my-friendships [ if active? [ ask myself [ ask friendship-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (adult?) ] [ if poissdist poissmu > .36 [ become-in-latent-period ] ] ask friendship-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) and (not adult?) ] [ if poissdist poissmu > .1 [ become-in-latent-period ] ] ]]]] ; Siblings with HFMD and Symptomatic ask turtles with [ infected-symptomatic? and (not adult?) ] [ ask sibling-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) ] [ if poissdist poissmu > .05 [ become-in-latent-period ] ] ] ; Siblings with HFMD and Asymptomatic ask turtles with [ infected-asymptomatic? and (not adult?) ] [ ask sibling-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) ] [ if poissdist poissmu > .05 [ become-in-latent-period ] ] ] end to spread-virus-on-weekend let poissmu (virus-spread-chance) ; Siblings with HFMD and Symptomatic ask turtles with [ infected-symptomatic? and (not adult?) ] [ ask sibling-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) ] [ if poissdist poissmu > .05 [ become-in-latent-period ] ] ] ; Siblings with HFMD and Asymptomatic ask turtles with [ infected-asymptomatic? and (not adult?) ] [ ask sibling-neighbors with [ (not immune?) and (not in-latent-period?) and (not infected-symptomatic?) and (not infected-asymptomatic?) ] [ if poissdist poissmu > .05 [ become-in-latent-period ] ] ] end to advance-sickness ; Latent-period-time lasts a total of 3 to 8 days ; Self Isolation Policy ; Asks any symptomatic individuals to remove themselves and their siblings from the daycare by deactivating links for a certain time period if remove-symptomatic-individual? [ ask turtles with [infected-symptomatic?][ ; Ask symptomatic individuals and siblings to deactivate links ask my-friendships [ if active? [set active? false]] ask my-floatfriends [ if active? [set active? false]] ask sibling-neighbors [ ask my-friendships [set active? false] ask my-floatfriends [set active? false]] ] ask turtles with [infected-symptomatic? or infected-asymptomatic?] [ ; If in isolation, add to timer to count days in isolation ask my-friendships [ if (not active?) [ ask myself [ set self-isolation-time (self-isolation-time + 1) ]]]] ask turtles with [self-isolation-time = days-in-isolation] [ ; If been in isolation for the designated time, set links active ask my-friendships [set active? true] ask my-floatfriends [set active? true] ] ] ; Now go through the probabilities of becoming infected from latent period ; Adults with incubation period of 3 days ask turtles with [adult?] [if latent-period-time = 3 [if lognormal 4.4 2 < 3 [ifelse random-float 100 < 9.8 [ become-infected-symptomatic ] [ become-infected-asymptomatic ] set latent-period-time 0 ] ]] ; Children with incubation period of 3 days ask turtles with [not adult?] [if latent-period-time = 3 [if lognormal 4.4 2 < 3 [ifelse random-float 100 < 71.4 [ become-infected-symptomatic ] [ become-infected-asymptomatic ] set latent-period-time 0 ] ]] ; Adults with incubation period of 4 days ask turtles with [adult?] [if latent-period-time = 4 [if lognormal 4.4 2 < 4 [ifelse random-float 100 < 9.8 [ become-infected-symptomatic ] [ become-infected-asymptomatic ] set latent-period-time 0 ] ]] ; Children with incubation period of 4 days ask turtles with [not adult?] [if latent-period-time = 4 [if lognormal 4.4 2 < 4 [ifelse random-float 100 < 71.4 [ become-infected-symptomatic ] [ become-infected-asymptomatic ] set latent-period-time 0 ] ]] ; Adults with incubation period of 5 days ask turtles with [adult?] [if latent-period-time = 5 [if lognormal 4.4 2 < 5 [ifelse random-float 100 < 9.8 [ become-infected-symptomatic ] [ become-infected-asymptomatic ] set latent-period-time 0 ] ]] ; Children with incubation period of 5 days ask turtles with [not adult?] [if latent-period-time = 5 [if lognormal 4.4 2 < 5 [ifelse random-float 100 < 71.4 [ become-infected-symptomatic ] [ become-infected-asymptomatic ] set latent-period-time 0 ] ]] ; Adults with incubation period of 6 days ask turtles with [adult?] [if latent-period-time = 6 [if lognormal 4.4 2 < 6 [ifelse random-float 100 < 9.8 [ become-infected-symptomatic ] [ become-infected-asymptomatic ] set latent-period-time 0 ] ]] ; Children with incubation period of 6 days ask turtles with [not adult?] [if latent-period-time = 6 [if lognormal 4.4 2 < 6 [ifelse random-float 100 < 71.4 [ become-infected-symptomatic ] [ become-infected-asymptomatic ] set latent-period-time 0 ] ]] ; Adults with incubation period of 7 days ask turtles with [adult?] [if latent-period-time = 7 [if lognormal 4.4 2 < 7 [ifelse random-float 100 < 9.8 [ become-infected-symptomatic ] [ become-infected-asymptomatic ] set latent-period-time 0 ] ]] ; Children with incubation period of 7 days ask turtles with [not adult?] [if latent-period-time = 7 [if lognormal 4.4 2 < 7 [ifelse random-float 100 < 71.4 [ become-infected-symptomatic ] [ become-infected-asymptomatic ] set latent-period-time 0 ] ]] ; Adults with incubation period of 8 days ask turtles with [adult?] [if latent-period-time = 8 [ifelse random-float 100 < 9.8 [ become-infected-symptomatic ] [ become-infected-asymptomatic ] set latent-period-time 0 ] ] ; Children with incubation period of 8 days ask turtles with [not adult?] [if latent-period-time = 8 [ifelse random-float 100 < 71.4 [ become-infected-symptomatic ] [ become-infected-asymptomatic ] set latent-period-time 0 ] ] ; Ask Sympotmatic Individuals if Recovery Time < 7 days ; If the generated recovery time is less than the number of days spent symptomatic, they become asymptomatic-infected ask turtles [ if ((infected-symptomatic-time > 0) and (infected-symptomatic-time < 7)) [if random-gamma mean-symptom-recovery-time 1 < infected-symptomatic-time [become-infected-asymptomatic set infected-symptomatic-time 0] ] ] ; Move times and applicable stages forward ask turtles [ if infected-symptomatic-time > 7 [ become-infected-asymptomatic set infected-symptomatic-time 0 ] if infected-asymptomatic-time > max-asymptomatic-time [ become-immune set infected-asymptomatic-time 0 ] if in-latent-period? [ set latent-period-time latent-period-time + 1 ] ; + 1 adds a day to the counter if infected-symptomatic? [ set infected-symptomatic-time infected-symptomatic-time + 1 ] if infected-asymptomatic? [ set infected-asymptomatic-time infected-asymptomatic-time + 1 ] ] end ; Lognormal distribution, generates a number of days in incubation to-report lognormal [mu sigma] let beta (ln( 1 + ((sigma ^ 2) / (mu ^ 2)))) let m (ln(mu) - (beta / 2)) let x (exp( random-normal m (sqrt beta) ) ) report x end ; Poisson Distribution, generates a random probability to-report poissdist [poissmu] ifelse poissmu = 0 [report 0] [let k random 100 let kfact (factorial k) let p ((exp (- poissmu)) * ( (poissmu ^ k) / (kfact) ) ) report p] end ; Factorial Calculation for Poisson Distribution to-report factorial [a] ifelse (a = 0) [report 1] [report a * factorial (a - 1)] end @#$#@#$#@ GRAPHICS-WINDOW 658 17 1400 760 -1 -1 22.242424242424246 1 10 1 1 1 0 0 0 1 -16 16 -16 16 1 1 1 ticks 30.0 BUTTON 100 25 163 58 NIL Go T 1 T OBSERVER NIL NIL NIL NIL 0 BUTTON 20 25 86 58 NIL Setup NIL 1 T OBSERVER NIL NIL NIL NIL 1 SLIDER 5 110 270 143 number-of-in-latent-period number-of-in-latent-period 1 10 7.0 1 1 NIL HORIZONTAL SLIDER 5 145 270 178 virus-spread-chance virus-spread-chance 0 1 0.5 .01 1 NIL HORIZONTAL PLOT 25 410 550 714 Percentage in each group Time % of nodes 0.0 50.0 -5.0 100.0 true true "" "" PENS "susceptible" 1.0 0 -16777216 true "" "plot (count turtles with [not in-latent-period? and not infected-symptomatic? and not infected-asymptomatic? and immune?]) / (count turtles) * 100" "in-latent-period" 1.0 0 -2674135 true "" "plot (count turtles with [in-latent-period?]) / (count turtles) * 100" "infected-symptomatic" 1.0 0 -13345367 true "" "plot (count turtles with [infected-symptomatic?]) / (count turtles) * 100" "infected-asymptomatic" 1.0 0 -10899396 true "" "plot (count turtles with [infected-asymptomatic?]) / (count turtles) * 100" "immune" 1.0 0 -8630108 true "" "plot (count turtles with [immune?]) / (count turtles) * 100" SLIDER 290 110 560 143 number-of-infant-rooms number-of-infant-rooms 0 4 3.0 1 1 rooms HORIZONTAL SLIDER 290 145 560 178 number-of-toddler-rooms number-of-toddler-rooms 0 4 2.0 1 1 rooms HORIZONTAL SLIDER 290 180 560 213 number-of-preschool-rooms number-of-preschool-rooms 0 8 5.0 1 1 rooms HORIZONTAL SLIDER 290 215 560 248 sib-pairs sib-pairs 0 10 5.0 1 1 pairs HORIZONTAL SLIDER 290 250 560 283 number-of-floaters number-of-floaters 0 10 5.0 1 1 floaters HORIZONTAL MONITOR 180 20 250 61 Total People total-people 0 1 10 MONITOR 265 20 335 61 Total Children total-kids 0 1 10 SWITCH 355 25 455 58 see-links? see-links? 1 1 -1000 SLIDER 5 180 270 213 percent-immune percent-immune 90 100 95.0 1 1 % HORIZONTAL SLIDER 5 215 270 248 mean-symptom-recovery-time mean-symptom-recovery-time 1 7 3.0 .5 1 days HORIZONTAL SLIDER 5 250 270 283 max-asymptomatic-time max-asymptomatic-time 20 40 33.0 1 1 days HORIZONTAL TEXTBOX 360 75 540 94 Daycare Construction 14 0.0 1 TEXTBOX 65 75 195 94 HFMD Construction 14 0.0 1 SWITCH 25 320 240 353 remove-symptomatic-individual? remove-symptomatic-individual? 0 1 -1000 SLIDER 25 355 240 388 days-in-isolation days-in-isolation 1 14 7.0 1 1 days HORIZONTAL TEXTBOX 35 295 230 314 Spreading Intervention Policy 14 0.0 1 SLIDER 290 285 560 318 max-rooms-per-floater max-rooms-per-floater 1 16 5.0 1 1 rooms HORIZONTAL @#$#@#$#@ ## WHAT IS IT? This model is a part of a research study conducted at Rochester Institute of Technology named ``Agent-Based Modeling of Hand, Foot, and Mouth Disease.'' Hand, Foot, and Mouth Disease (HFMD) is a contagious viral infection caused by coxsackievirus and other viruses from the enteroviruses genus. The software shows how the contagious viral illness spreads in a childcare center. In particular, it explores the interactions made between infected and susceptible children, teachers and adults, and one type of intervention policy requiring symptomatic individuals to remain isolated from the daycare for a set time period. ## HOW IT WORKS Setup: In the childcare center, there are sixteen possible classrooms of three types: infant (8 weeks - 18 months), toddler (18 months - 3 years) and preschool (3 - 4 years). The top row in the view has up to four infant rooms with eight children per room. The second row from the top has up to four toddler rooms with ten children each. And the bottom two rows has up to eight rooms for preschool aged children with fourteen per room. Each classroom has two teachers that take care of the children on a daily basis. There are floaters that are randomly assigned to different rooms throughout the daycare. There are a set number of randomly generated sibling pairs among the children in the daycare as well. Additionally, if there is more than one room of any type, then there is a random assignment of links between children of different rooms to designate children who are dropped off early and wait in a combined room until more children arrive. Three link breeds are used to define the links of siblings, and then two links for the two schedules of the weekdays that teachers and floaters rotate room assignments with. People: Children, teachers and floaters who are susceptible (colored black) have a possibility of catching HFMD and can either get sick or stay healthy. Infected people go into a latent period (colored red) that last 3-7 days. Infected people colored blue are symptomatic (show symptoms) while people who are colored green are asymptomatic (no symptoms). Purple-colored people have become recovered and are considered immune. There is a portion of the adult population in the daycare that are already immune. Virus Spread: Each day, all possible contacts by which HFMD can spread generates a probability that the virus spreads or not. This varies based on the day of the week. Then the sickness is advanced for each individual, and, if the intervention policy is enforced, any symptomatic individuals are removed from the daycare for a set number of days. Each time step (tick) represents a day. ## HOW TO USE IT The system created is a NETWORK that shows are everyone in the daycare is linked and have a possibility of catching the contagious illness. To Define the Settings of the Virus Spreading The slider NUMBER-OF-IN-LATENT-PERIOD gives the user the option to choose how many people (from the ten available) in the childcare center should be infected with HFMD at first. The slider VIRUS-SPREAD-CHANCE enables the user to determine how high or low the possibility of HFMD spreading in the childcare center. The slider PERCENT-IMMUNE sets a percentage of the adult population (teachers and floaters) as immune previous to the virus spreading. The slider MEAN-SYMPTOM-RECOVERY-TIME allows a range of days to define probable mean symptomatic recovery time of symptomatic individuals. The slider MAX-ASYMPTOMATIC-TIME enables the user the ability to assign the length of days for the lingering infectious chance in asymptomatic individuals. The switch REMOVE-SYMPTOMATIC-INDIVIDUAL? enforces an intervention policy in which symptomatic infected individuals and their siblings are removed from the daycare for a set number of days. The slider DAYS-IN-ISOLATION is the number of days an individual must remain away from the daycare when the intervention policy is enforced and includes the weekend in the number of days. To Define the Settings of the Daycare The slider NUMBER-OF-INFANT-ROOMS defines the number of rooms in the daycare for infants. The slider NUMBER-OF-TODDLER-ROOMS defines the number of rooms in the daycare for toddlers. The slider NUMBER-OF-PRESCHOOL-ROOMS defines the number of rooms in the daycare for preschoolers. The slider SIB-PAIRS enables the user to define how many sibling pairs are in the daycare. The slider NUMBER-OF-FLOATERS gives flexibility to designate the number of floaters working in the daycare. The slider MAX-ROOMS-PER-FLOATERS provides the user the ability to designate how many rooms a floater works between during a day. Other Features The switch SEE-LINKS? turns the links visible to see the defined connections between individuals in the daycare. The monitors inform users of the total number of individuals and children in the daycare based on the chosen daycare settings. The NETWORK plot enables users to observe the % OF NODES (children, teachers and student workers) infected or not with HFMD over time. After Sliders and Switches are Selected Select the SETUP button to set all the connections and infected individuals, then select the GO button to run the simulation. ## THINGS TO NOTICE Estimations and Probability Distributions Used There is a lack of information surrounding the transmissibility and other properties of HFMD. Many sources detail that a regression analysis of many infectious diseases fits a Poisson distribution, so that is the distribution used to determine the spread of infection in the virus-spread, virus-spread-off-schedule, and virus-spread-on-weekend procedures (Chen),(Wang). The advance-sickness process goes through the range of days of incubation from 3 to 8 and generates a random probability with a lognormal distribution as to whether or not the turtle will leave the latent period with a mean of 4.4 days as it is an estimated amount of time and best fit probability distribution for children in kindergarten (Yang). Since most sources believe the average latent period is 3 to 7 days, the code forces all turtles who have not left the latent stage after 8 days to leave it (Chen). The randomly generated number to decide whether a turtle becomes symptomatic or asymptomatic infected is determined as the percentage of people infected being symptomatic (Koh). There has also been found that a gamma distribution fits the probability that an individual will recover from being symptomatic within a week (Yang). During the Simulation Once the illness has stopped spreading, there may be some people (colored black) who remain. This means that they did not catch HFMD and remained susceptible all throughout. What is the percentage of susceptible (black) to recovered and immune (purple)? When the intervention policy is applied, is there a noticeable difference in the spread of the virus? How does changing the daycare structure (number of rooms or floaters) affect the virus spread? ## THINGS TO TRY Set the NUMBER-OF-IN-LATENT-PERIOD slider to one and run the program. How many people were infected and recovered over time? Try repeating the same procedure but with different number of people in the latent period and see how many people stay susceptible and how many recovered and immune. What happens when the other sliders for the virus spread are adjusted? Set the NUMBER-OF-FLOATERS and the MAX-ROOMS-PER-FLOATERS sliders to different combinations and run the program. The floaters can be the connecters between room types. How do these factors affect the virus spreading? Trying turning the switch REMOVE-SYMPTOMATIC-INDIVIDUAL? off. How does the intervention policy affect the virus spread? ## EXTENDING THE MODEL The model only takes into account students, teachers and student workers. What if more people were to be added such as cooks, administrators, or parents? Would the illness be even more prevalent in childcare centers than it already is with students, teachers and student workers? What if possible weekend connections between children were included? Are there other closing policies that a daycare could implement? When better estimations and distributions become available, does changing those factors impact the current model estimations? What is the impact of vacations on the virus spread? ## NETLOGO FEATURES The link breed feature is used to define links based on schedules for the daycare workers and siblings. The use of variables based on links and people are also used to define what connections to spread the virus over as well as what rooms and stage for the virus any particular individual is in. The random Poisson number generator is limited to generating the x-value of the distribution whereas with the structure of this model, the probability was needed. At the end of the code, a Poisson distribution function was defined to be able to generate the probabilities with, and, since the random-number generator is constricted within a certain number of probabilities possible to be generated, the thresholds were set to the amounts within the range of the probabilities that would give the estimated ratios of the spread between the ages and stages of the turtles within the daycare. A lognormal distribution was also needed and constructed at the end of the code. The last work around was where to put all the rooms in the daycare for better visibility, so the locations had to be predesignated much like rooms in a daycare, so each room has its own place and cannot be moved around. ## RELATED MODELS - Virus on a Network - Virus - Spread of Disease ## HOW TO CITE If you mention this model or the NetLogo software in a publication, we ask that you include the citations below. For the model itself: McGraw, V, Eguiluz, A, and Jacob, B (2020). NetLogo Modeling of Daycare HFMD Spread. Please cite the NetLogo software as: Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL. ## CREDITS AND REFERENCES Backhausz, A. and Bognar, E. (Feb 2020). “Virus Spread and Voter Model on Random Graphs with Multiple Type Nodes.” Chadsuthi, S. and Wichapeng, S. (June 2018). “The Modelling of Hand, Foot, and Mouth Disease in Contaminated Environments in Bangkok, Thailand.” Chen, Y., et al. (Oct 2018). “The Effect of School Closure on Hand, Foot, and Mouth Disease Transmission in Singapore: A Modeling Approach.” The American Journal of Tropical Medicine and Hygiene. 99(6): 1625-1632. Esposito, S. and Principi, N. (2018). “Hand, foot, and mouth disease current knowledge on clinical manifestations, epidemiology, aetiology and prevention.” European Journal of Clinical Microbiology and Infectious Diseases. 37, 391-398. Koh, W., et al. (Oct 2016). “The Epidemiology of Hand, Foot and Mouth Disease in Asia.” Pediatric Infectious Disease Journal. 35(10): 285-300. Wang, Y., et al. (Nov 2012). “Hand, Foot and Mouth Disease in China: Patterns of Spread and Transmissibility during 2008-2009.” Epidemiology. Wilensky, U. & Stroup, W. (1999). HubNet. http://ccl.northwestern.edu/netlogo/hubnet.html. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL. Yang, Z, et al. (Nov 2017). “Estimating the incubation period of hand, foot and mouth disease for children in different age groups.” Scientific Reports. @#$#@#$#@ default true 0 Polygon -7500403 true true 150 5 40 250 150 205 260 250 airplane true 0 Polygon -7500403 true true 150 0 135 15 120 60 120 105 15 165 15 195 120 180 135 240 105 270 120 285 150 270 180 285 210 270 165 240 180 180 285 195 285 165 180 105 180 60 165 15 arrow true 0 Polygon -7500403 true true 150 0 0 150 105 150 105 293 195 293 195 150 300 150 box false 0 Polygon -7500403 true true 150 285 285 225 285 75 150 135 Polygon -7500403 true true 150 135 15 75 150 15 285 75 Polygon -7500403 true true 15 75 15 225 150 285 150 135 Line -16777216 false 150 285 150 135 Line -16777216 false 150 135 15 75 Line -16777216 false 150 135 285 75 bug true 0 Circle -7500403 true true 96 182 108 Circle -7500403 true true 110 127 80 Circle -7500403 true true 110 75 80 Line -7500403 true 150 100 80 30 Line -7500403 true 150 100 220 30 butterfly true 0 Polygon -7500403 true true 150 165 209 199 225 225 225 255 195 270 165 255 150 240 Polygon -7500403 true true 150 165 89 198 75 225 75 255 105 270 135 255 150 240 Polygon -7500403 true true 139 148 100 105 55 90 25 90 10 105 10 135 25 180 40 195 85 194 139 163 Polygon -7500403 true true 162 150 200 105 245 90 275 90 290 105 290 135 275 180 260 195 215 195 162 165 Polygon -16777216 true false 150 255 135 225 120 150 135 120 150 105 165 120 180 150 165 225 Circle -16777216 true false 135 90 30 Line -16777216 false 150 105 195 60 Line -16777216 false 150 105 105 60 car false 0 Polygon -7500403 true true 300 180 279 164 261 144 240 135 226 132 213 106 203 84 185 63 159 50 135 50 75 60 0 150 0 165 0 225 300 225 300 180 Circle -16777216 true false 180 180 90 Circle -16777216 true false 30 180 90 Polygon -16777216 true false 162 80 132 78 134 135 209 135 194 105 189 96 180 89 Circle -7500403 true true 47 195 58 Circle -7500403 true true 195 195 58 circle false 0 Circle -7500403 true true 0 0 300 circle 2 false 0 Circle -7500403 true true 0 0 300 Circle -16777216 true false 30 30 240 cow false 0 Polygon -7500403 true true 200 193 197 249 179 249 177 196 166 187 140 189 93 191 78 179 72 211 49 209 48 181 37 149 25 120 25 89 45 72 103 84 179 75 198 76 252 64 272 81 293 103 285 121 255 121 242 118 224 167 Polygon -7500403 true true 73 210 86 251 62 249 48 208 Polygon -7500403 true true 25 114 16 195 9 204 23 213 25 200 39 123 cylinder false 0 Circle -7500403 true true 0 0 300 dot false 0 Circle -7500403 true true 90 90 120 face happy false 0 Circle -7500403 true true 8 8 285 Circle -16777216 true false 60 75 60 Circle -16777216 true false 180 75 60 Polygon -16777216 true false 150 255 90 239 62 213 47 191 67 179 90 203 109 218 150 225 192 218 210 203 227 181 251 194 236 217 212 240 face neutral false 0 Circle -7500403 true true 8 7 285 Circle -16777216 true false 60 75 60 Circle -16777216 true false 180 75 60 Rectangle -16777216 true false 60 195 240 225 face sad false 0 Circle -7500403 true true 8 8 285 Circle -16777216 true false 60 75 60 Circle -16777216 true false 180 75 60 Polygon -16777216 true false 150 168 90 184 62 210 47 232 67 244 90 220 109 205 150 198 192 205 210 220 227 242 251 229 236 206 212 183 fish false 0 Polygon -1 true false 44 131 21 87 15 86 0 120 15 150 0 180 13 214 20 212 45 166 Polygon -1 true false 135 195 119 235 95 218 76 210 46 204 60 165 Polygon -1 true false 75 45 83 77 71 103 86 114 166 78 135 60 Polygon -7500403 true true 30 136 151 77 226 81 280 119 292 146 292 160 287 170 270 195 195 210 151 212 30 166 Circle -16777216 true false 215 106 30 flag false 0 Rectangle -7500403 true true 60 15 75 300 Polygon -7500403 true true 90 150 270 90 90 30 Line -7500403 true 75 135 90 135 Line -7500403 true 75 45 90 45 flower false 0 Polygon -10899396 true false 135 120 165 165 180 210 180 240 150 300 165 300 195 240 195 195 165 135 Circle -7500403 true true 85 132 38 Circle -7500403 true true 130 147 38 Circle -7500403 true true 192 85 38 Circle -7500403 true true 85 40 38 Circle -7500403 true true 177 40 38 Circle -7500403 true true 177 132 38 Circle -7500403 true true 70 85 38 Circle -7500403 true true 130 25 38 Circle -7500403 true true 96 51 108 Circle -16777216 true false 113 68 74 Polygon -10899396 true false 189 233 219 188 249 173 279 188 234 218 Polygon -10899396 true false 180 255 150 210 105 210 75 240 135 240 house false 0 Rectangle -7500403 true true 45 120 255 285 Rectangle -16777216 true false 120 210 180 285 Polygon -7500403 true true 15 120 150 15 285 120 Line -16777216 false 30 120 270 120 leaf false 0 Polygon -7500403 true true 150 210 135 195 120 210 60 210 30 195 60 180 60 165 15 135 30 120 15 105 40 104 45 90 60 90 90 105 105 120 120 120 105 60 120 60 135 30 150 15 165 30 180 60 195 60 180 120 195 120 210 105 240 90 255 90 263 104 285 105 270 120 285 135 240 165 240 180 270 195 240 210 180 210 165 195 Polygon -7500403 true true 135 195 135 240 120 255 105 255 105 285 135 285 165 240 165 195 line true 0 Line -7500403 true 150 0 150 300 line half true 0 Line -7500403 true 150 0 150 150 pentagon false 0 Polygon -7500403 true true 150 15 15 120 60 285 240 285 285 120 person false 0 Circle -7500403 true true 110 5 80 Polygon -7500403 true true 105 90 120 195 90 285 105 300 135 300 150 225 165 300 195 300 210 285 180 195 195 90 Rectangle -7500403 true true 127 79 172 94 Polygon -7500403 true true 195 90 240 150 225 180 165 105 Polygon -7500403 true true 105 90 60 150 75 180 135 105 plant false 0 Rectangle -7500403 true true 135 90 165 300 Polygon -7500403 true true 135 255 90 210 45 195 75 255 135 285 Polygon -7500403 true true 165 255 210 210 255 195 225 255 165 285 Polygon -7500403 true true 135 180 90 135 45 120 75 180 135 210 Polygon -7500403 true true 165 180 165 210 225 180 255 120 210 135 Polygon -7500403 true true 135 105 90 60 45 45 75 105 135 135 Polygon -7500403 true true 165 105 165 135 225 105 255 45 210 60 Polygon -7500403 true true 135 90 120 45 150 15 180 45 165 90 sheep false 15 Circle -1 true true 203 65 88 Circle -1 true true 70 65 162 Circle -1 true true 150 105 120 Polygon -7500403 true false 218 120 240 165 255 165 278 120 Circle -7500403 true false 214 72 67 Rectangle -1 true true 164 223 179 298 Polygon -1 true true 45 285 30 285 30 240 15 195 45 210 Circle -1 true true 3 83 150 Rectangle -1 true true 65 221 80 296 Polygon -1 true true 195 285 210 285 210 240 240 210 195 210 Polygon -7500403 true false 276 85 285 105 302 99 294 83 Polygon -7500403 true false 219 85 210 105 193 99 201 83 square false 0 Rectangle -7500403 true true 30 30 270 270 square 2 false 0 Rectangle -7500403 true true 30 30 270 270 Rectangle -16777216 true false 60 60 240 240 star false 0 Polygon -7500403 true true 151 1 185 108 298 108 207 175 242 282 151 216 59 282 94 175 3 108 116 108 target false 0 Circle -7500403 true true 0 0 300 Circle -16777216 true false 30 30 240 Circle -7500403 true true 60 60 180 Circle -16777216 true false 90 90 120 Circle -7500403 true true 120 120 60 tree false 0 Circle -7500403 true true 118 3 94 Rectangle -6459832 true false 120 195 180 300 Circle -7500403 true true 65 21 108 Circle -7500403 true true 116 41 127 Circle -7500403 true true 45 90 120 Circle -7500403 true true 104 74 152 triangle false 0 Polygon -7500403 true true 150 30 15 255 285 255 triangle 2 false 0 Polygon -7500403 true true 150 30 15 255 285 255 Polygon -16777216 true false 151 99 225 223 75 224 truck false 0 Rectangle -7500403 true true 4 45 195 187 Polygon -7500403 true true 296 193 296 150 259 134 244 104 208 104 207 194 Rectangle -1 true false 195 60 195 105 Polygon -16777216 true false 238 112 252 141 219 141 218 112 Circle -16777216 true false 234 174 42 Rectangle -7500403 true true 181 185 214 194 Circle -16777216 true false 144 174 42 Circle -16777216 true false 24 174 42 Circle -7500403 false true 24 174 42 Circle -7500403 false true 144 174 42 Circle -7500403 false true 234 174 42 turtle true 0 Polygon -10899396 true false 215 204 240 233 246 254 228 266 215 252 193 210 Polygon -10899396 true false 195 90 225 75 245 75 260 89 269 108 261 124 240 105 225 105 210 105 Polygon -10899396 true false 105 90 75 75 55 75 40 89 31 108 39 124 60 105 75 105 90 105 Polygon -10899396 true false 132 85 134 64 107 51 108 17 150 2 192 18 192 52 169 65 172 87 Polygon -10899396 true false 85 204 60 233 54 254 72 266 85 252 107 210 Polygon -7500403 true true 119 75 179 75 209 101 224 135 220 225 175 261 128 261 81 224 74 135 88 99 wheel false 0 Circle -7500403 true true 3 3 294 Circle -16777216 true false 30 30 240 Line -7500403 true 150 285 150 15 Line -7500403 true 15 150 285 150 Circle -7500403 true true 120 120 60 Line -7500403 true 216 40 79 269 Line -7500403 true 40 84 269 221 Line -7500403 true 40 216 269 79 Line -7500403 true 84 40 221 269 wolf false 0 Polygon -16777216 true false 253 133 245 131 245 133 Polygon -7500403 true true 2 194 13 197 30 191 38 193 38 205 20 226 20 257 27 265 38 266 40 260 31 253 31 230 60 206 68 198 75 209 66 228 65 243 82 261 84 268 100 267 103 261 77 239 79 231 100 207 98 196 119 201 143 202 160 195 166 210 172 213 173 238 167 251 160 248 154 265 169 264 178 247 186 240 198 260 200 271 217 271 219 262 207 258 195 230 192 198 210 184 227 164 242 144 259 145 284 151 277 141 293 140 299 134 297 127 273 119 270 105 Polygon -7500403 true true -1 195 14 180 36 166 40 153 53 140 82 131 134 133 159 126 188 115 227 108 236 102 238 98 268 86 269 92 281 87 269 103 269 113 x false 0 Polygon -7500403 true true 270 75 225 30 30 225 75 270 Polygon -7500403 true true 30 75 75 30 270 225 225 270 @#$#@#$#@ NetLogo 6.1.1 @#$#@#$#@ @#$#@#$#@ @#$#@#$#@ @#$#@#$#@ @#$#@#$#@ default 0.0 -0.2 0 0.0 1.0 0.0 1 1.0 0.0 0.2 0 0.0 1.0 link direction true 0 Line -7500403 true 150 150 90 180 Line -7500403 true 150 150 210 180 @#$#@#$#@ 0 @#$#@#$#@