;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Creation of breed : Agent categories ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; breed [personnes personne] ;;;;; Creation of an agent family called persons breed [portes porte] breed [dors dor] breed [voitures voiture] breed [cameras camera] breed [fenetres fenetre] breed [televisions television] breed [fauteuils fauteuil] breed [tables table ] breed [plans plan ] breed [refregirateurs refregirateur ] breed [machinelavs machinelav ] breed [radiateurs radiateur] breed [bidets bidet] breed [robinets robinet] breed [climatiseurs climatiseur] breed [baignoires baignoire] breed [lits lit] breed [garages garage] breed [armoires armoire ] breed [planPs planP] breed [tableBs tableB] breed [ wave-components wave-component ] ;;;;;; Creation of a family of waves called wave-components (wave camera surveillance) breed [ wave-componentCs wave-componentC ] ;;;;;; Creation of a family of waves called wave-componentCs (air conditioner wave) breed [ wave-componentChs wave-componentCh ] ;;;;;; Creation of a wave family called wave-componentChs ( wave radiator bathroom ) breed [ wave-componentChCs wave-componentChC ] ;;;;;; Creation of a wave family called wave-componentChCs (wave radiator chamber) breed [ wave-componentChSas wave-componentChSa ] ;;;;;;Creation of a wave family called wave-componentSas ( wave radiator lounge ) breed [ wave-componentChBs wave-componentChB ] ;;;;;; Creation of a wave family called wave-componentChBs ( wave radiator kitchen ) breed [ wave-componentTeles wave-componentTele ] ;;;;;;Creation of a wave family called wave-componentTeles ( wave television ) breed [ wave-componentalarmes wave-componentalarme ] ;;;;;; Creation of a family of waves called wave-componentalarmes ( wave alarm ) breed [ wave-componentphones wave-componentphone ] ;;;;;; Creation of a family of waves called wave-components (smartphone wave) breed [ plantes plante ] breed [ fleurs fleur ] breed [ ordinateurs ordinateur] breed [ routeurs routeur] breed [ alarmes alarme ] breed [ smartphones smartphone] breed [ meubles meuble ] breed [bateaux bateau ] breed [ ancres ancre ] breed [ logss logs ] breed [ grues grue ] breed [boxs box] breed [camions camion] breed [poteaux poteau ] breed [capteurs capteur] breed [ clarks clark] breed [usines usine ] breed [planches planche] breed [ cafetieres cafetiere ] breed [ cafes cafe ] breed [ coffres coffre ] breed [ books book] breed [poubelles poubelle] breed [ paquets paquet ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Declaration of variables ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; globals[ initial-wave-amplitude ;;;; (initial amplitude of the wave): This is the initial value of the amplitude of a wave. This value can represent the maximum height reached by the wave at the beginning of its propagation. next-wave-id ;; (identifiant of next wave ) : This is a counter or identifier used to track the next wave generated in a model or system. Each time a new wave is created, this identifier is incremented to represent the next wave. wave-interval ;; (wave interval): This refers to the time period or interval between two successive waves. It indicates how much time passes before the next wave is generated or propagated initialewaveamplitude nextwaveid initialewaveamplitudech nextwaveidch initialewaveamplitudechC nextwaveidchC initialewaveamplitudechB nextwaveidchB initialewaveamplitudechSa nextwaveidchSa initialewaveamplitudeTele nextwaveidtele initialewaveamplitudealarme nextwaveidalarme initialewaveamplitudephone nextwaveidphone network-addresses ; list of IP addresses on the network hello-size ; Hello package size attack-duration ; duration of the attack hello-packet ; number of packets sent cache-max-objet ;maximum hello-size that a camera and other objects can support objet-lifetime ;; lifetime of connected objects battery ;; battery of objects heat-procedure ;; variable procedure-heat: if it is true it allows to execute the procedure heat load-procedure ;; variable procedure-load : if it is true it allows to execute the load/unload/accoster procedure clim-procedure ;; variable procedure-clim : if it is true it allows to execute the procedure clim openwindow-procedure ;; variable procedure-openwindow : if it is true it allows to execute the openwindow and closewindow procedure ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; declaration of variables for a specific agent (turtle, patch or link) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; patches-own [ w ] alarmes-own [ip-address] fenetres-own [ip-address] radiateurs-own[ip-address] dors-own[ip-address] climatiseurs-own[ip-address] ordinateurs-own[ip-address] cameras-own [ip-address] portes-own [ip-address] smartphones-own [ip-address] capteurs-own[ip-address] clarks-own[ip-address] personnes-own [ name ip-address ] wave-components-own [ amplitude ;; It is a variable that represents the amplitude of a wave component. Amplitude is typically used to measure the size or intensity of a wave. wave-id ;; (Wave ID): This variable is used to identify or track a specific wave component. Each wave component can be assigned a unique identifier that differentiates it from other wave components in the model. ] wave-componentCs-own [ amplitude waveid ] wave-componentChs-own [ amplitude waveid ] wave-componentChCs-own [ amplitude waveid ] wave-componentChBs-own [ amplitude waveid ] wave-componentChSas-own [ amplitude waveid ] wave-componentTeles-own [ amplitude waveid ] wave-componentalarmes-own [ amplitude waveid ] wave-componentphones-own [ amplitude waveid ] to setup ;; The to setup instruction is a custom procedure that is usually used to perform the initialization steps of the model before starting the simulation. set travel "house" clear-all reset-ticks set température 20 set-default-shape wave-components "wave" set-default-shape wave-componentCs "wave" set-default-shape wave-componentChs "wave" set-default-shape wave-componentChSas "wave" set-default-shape wave-componentChBs "wave" set-default-shape wave-componentChCs "wave" set-default-shape wave-componentTeles "wave" set-default-shape wave-componentalarmes "alarmewave" set-default-shape wave-componentphones "wave" set initialewaveamplitude 8 set initial-wave-amplitude 6 set initialewaveamplitudech 1.5 set initialewaveamplitudechC 1.5 set initialewaveamplitudechB 1.5 set initialewaveamplitudechSa 1.5 set initialewaveamplitudeTele 6 set initialewaveamplitudealarme 6 set initialewaveamplitudephone 1 set wave-interval 3 set heat-procedure true set load-procedure true set clim-procedure true set openwindow-procedure true ;;;;;;;;;;;;;;; hello flood attack ;;;;;;;;;;;;;;;;;;;;;; set objet-lifetime 200 setup-plot set hello-packet 0 set attack-duration 20 ; 20 ticks d'attaque set hello-size 0 ; paquets Hello de 64 bytes set hello-frequency 1 ; envoi de paquets Hello toutes les 1 ticks set network-addresses [ "192.168.1.1" "192.168.1.2" "192.168.1.3" "192.168.1.4" "192.168.1.5" "192.168.1.6" "192.168.1.7" "192.168.1.8" "192.168.1.9" "192.168.1.10" "192.168.1.11" "192.168.1.12" "192.168.1.13" "192.168.1.14" "192.168.1.15" "192.168.1.16" "192.168.1.17" "192.168.1.18" "192.168.1.19" "192.168.1.20" ] ; network IP addresses ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Creation of agents ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; create-portes 2 [ set shape "porte" ask porte 0 [ set xcor 6 set ycor 5.5 set heading 360 set size 5 set color brown ] ask porte 1[ ;; bathroom set xcor 8 set ycor -0.5 set heading 360 set size 5 ]] create-personnes 2 [ ;; agent MOHAMED : main character of our simulation ask personne 2 [ set shape "person";; form person set size 2 set heading 180;; set color blue set xcor 0 set ycor -14 ] ask personne 3 [ ;; ATTAKING agent set shape "attaquant" set size 2 set heading 180 set color white set xcor 3 set ycor -13 ]] create-voitures 1 [ set shape "car top" set size 5.5 set xcor 13.5 set ycor -13.5 set color red set heading 270 ] create-cameras 1 [ set shape "camera" set size 5 set xcor -6 set ycor -11 set heading 360 set color gray set ip-address "192.168.1.1" set cache-max-objet 1344 ] create-fenetres 4 [ ask fenetre 6 [ set shape "fenetre" set size 10 set xcor 16.5 set ycor 7 set color 9 set heading 360 set ip-address "192.168.1.19" ] ask fenetre 7 [ set shape "fenetre" set size 10 set xcor -16.15 set ycor 0 set color 9 set heading 360 set ip-address "192.168.1.17" ] ask fenetre 8 [ set shape "fenetre" set size 10 set xcor -16.15 set ycor 7 set color 9 set heading 360 set ip-address "192.168.1.18" ] ask fenetre 9 [ set shape "fenetre" set size 10 set xcor 7 set ycor -9.5 set color 9 set heading 90 set ip-address "192.168.1.20" ] ] create-televisions 2 [ ask television 10 [ set shape "tele" set size 9 set xcor -3.5 set ycor -4 set color gray set heading 90 ] ask television 11 [ set shape "tele" set size 9 set xcor 2.5 set ycor 13 set color white set heading 270 ]] create-fauteuils 3 [ ask fauteuil 12 [ set shape "fauteuil1" set size 18 set xcor -14.40 set ycor -6.5 set color gray set heading 360 ] ask fauteuil 13 [ set shape "fauteuil2" set size 7 set xcor -11 set ycor -8.5 set color gray set heading 180 ] ask fauteuil 14 [ set shape "fauteuil2" set size 7 set xcor -14.5 set ycor -1.25 set color gray set heading 360 ] ] create-tables 1 [ ask table 15 [ set shape "tableM" set size 15 set xcor -9 set ycor 11 set color gray set heading 270 ] ] create-plans 1 [ set shape "plan" set size 15 set xcor -12 set ycor 12.75 set color gray set heading 360 ] create-refregirateurs 1 [ ask refregirateur 17[ set shape "frigoouvert" set size 12 set xcor -0.60 set ycor 12.30 set color gray set heading 360] ] create-machinelavs 1 [ set shape "machinelaver" set size 3.75 set xcor -8 set ycor 15.15 set color gray set heading 360 ] create-radiateurs 4 [ ask radiateur 19 [ set shape "radiateur" set size 3.5 set xcor -1 set ycor 9 set color white set heading 90 set ip-address "192.168.1.7" ] ask radiateur 20 [ set shape "radiateur" set size 3.5 set xcor -9.5 set ycor -8.75 set color white set heading 180 set ip-address "192.168.1.8" ] ask radiateur 21 [ set shape "radiateur" set size 3.5 set xcor 2.5 set ycor 6 set color white set heading 180 set ip-address "192.168.1.9"] ask radiateur 22 [ set shape "radiateur" set size 3.5 set xcor 13 set ycor -1 set color white set heading 360 set ip-address "192.168.1.10"]] create-bidets 1 [ set shape "bidet" set size 3 set xcor 3 set ycor -8.75 set color gray set heading 180 ] create-robinets 1 [ ask robinet 24 [ set shape "robineteau" set size 3 set xcor 3 set ycor -1 set color blue set heading 360 ]] create-climatiseurs 2 [ ask climatiseur 25 [ set shape "clim" set size 6 set xcor 13 set ycor 6 set color gray set heading 180 set ip-address "192.168.1.12"] ask climatiseur 26 [ set shape "clim" set size 6 set xcor -1 set ycor -8 set color gray set heading 90 set ip-address "192.168.1.13"]] create-baignoires 1 [ ask baignoire 27 [ set shape "bain" set size 8 set xcor 13 set ycor -5 set color gray set heading 90 ]] create-lits 1 [ set shape "lit" set size 10 set xcor 12.5 set ycor 13 set color gray set heading 90 ] create-dors 1 [ set shape "porteSo" set size 10 set xcor -4 set ycor -11 set color gray set heading 360 set ip-address "192.168.1.15" ] create-garages 1 [ set shape "garage" set size 8 set xcor -9 set ycor -13.5 set color gray set heading 270 ] create-armoires 2 [ ask armoire 31 [ set shape "armoire" set size 10 set xcor 5 set ycor 15 set color brown set heading 360 ] ask armoire 32 [ set shape "armoire" set size 6 set xcor 11 set ycor -9 set color gray set heading 180 ]] create-planPs 1 [ set shape "plan2" set size 15 set xcor -4.65 set ycor 12 set color gray set heading 360 ] create-tableBs 1 [ set shape "tableb" set size 10 set xcor -9 set ycor -4.5 set color gray set heading 270 ] create-plantes 3 [ ask plante 35 [ set shape "plant" set size 2 set xcor -2 set ycor -11 set color green set heading 360 ] ask plante 36 [ set shape "plant" set size 2 set xcor 5 set ycor -11 set color green set heading 360 ] ask plante 37 [ set shape "plant" set size 2 set xcor 11 set ycor -11 set color green set heading 360 ] ] create-fleurs 5 [ ask fleur 38 [ set shape "flower" set size 1.5 set xcor 0 set ycor -11 set color red set heading 360 ] ask fleur 39 [ set shape "flower" set size 1.5 set xcor 2 set ycor -11 set color red set heading 360 ] ask fleur 40 [ set shape "flower" set size 1.5 set xcor 7 set ycor -11 set color yellow set heading 360 ] ask fleur 41 [ set shape "flower" set size 1.5 set xcor 9 set ycor -11 set color red set heading 360 ] ask fleur 42 [ set shape "flower" set size 1.5 set xcor 13 set ycor -11 set color yellow set heading 360 ] ] create-ordinateurs 1 [ ask ordinateur 43 [ set shape "pc2" set size 2.5 set xcor 8.5 set ycor 6 set color blue set heading 90 set ip-address "192.168.1.14" ]] create-routeurs 1 [ ask routeur 44 [ set shape "routeur" set size 3 set xcor 10 set ycor 5.5 set color gray set heading 180 ] ] create-alarmes 2 [ ask alarme 45 [ set shape "alarme2" set size 3 set xcor -2.5 set ycor -9 set color black set heading 180 set ip-address "192.168.1.16" ] ask alarme 46 [ set shape "alarme" set size 3 set xcor -2.5 set ycor -9 set color black set heading 180 set ip-address "192.168.1.16" ] ] create-smartphones 2 [ ask smartphone 47 [ set shape "phone" set size 2 move-to personne 3 set color violet set heading 360 set ip-address "192.168.1.11" ] ask smartphone 48 [ set shape "phone" set size 2 move-to personne 2 set color red set heading 360 set ip-address "192.168.1.2" ] ] create-refregirateurs 1 [ ask refregirateur 49[ set shape "frigo" set size 12 set xcor -0.60 set ycor 12.30 set color gray set heading 360] ] create-robinets 1 [ ask robinet 50 [ set shape "robinet" set size 3 set xcor 3 set ycor -1 set color blue set heading 360 ]] create-baignoires 1 [ ask baignoire 51 [ set shape "bainvide" set size 8 set xcor 13 set ycor -5 set color gray set heading 90 ]] create-meubles 1 [ ask meuble 52 [ set shape "meuble3" set size 10 set xcor -1.75 set ycor -4 set color gray set heading 90 ]] create-plantes 2 [ ask plante 53 [ set shape "plant maison" set size 2 set xcor -15 set ycor 4 set color green set heading 360 ] ask plante 54 [ set shape "plant maison" set size 2 set xcor -7 set ycor -8.5 set color green set heading 360 ]] create-portes 1 [ ask porte 55 [ set shape "portegarage" set size 7 set xcor -9.5 set ycor -11.5 set color gray set heading 90 ]] create-cafetieres 1 [ ask cafetiere 56 [ set shape "cafetiere" set size 3 set xcor -16 set ycor 15.5 set heading 360 ]] create-cafes 2 [ ask cafe 57 [ set shape "cafe2" set size 2 set xcor -16 set ycor 14 hide-turtle set heading 360 ] ask cafe 58 [ set shape "cafe" set size 2 set xcor -16 set ycor 14 hide-turtle set heading 360 ] ] create-personnes 1 [ ask personne 59 [ set shape "personnepyj" set size 2;; taile set heading 90;; set xcor 13 set ycor 12 ]] create-voitures 1 [ ask voiture 60 [ set shape "car top" set size 5.5 set xcor -12.85 set ycor -13.5 set color red set heading 90 ] ] create-coffres 3 [ ask coffre 61 [ set shape "coffre" set size 6.5 set xcor 7 set ycor 15 set color gray set heading 360 ] ask coffre 62 [ set shape "coffreouvert" set size 6.5 set xcor 7 set ycor 15 set color gray set heading 360 hide-turtle ] ask coffre 63 [ set shape "coffrevide" set size 6.5 set xcor 7 set ycor 15 set color gray set heading 360 hide-turtle ] ] create-poubelles 1 [ ask poubelle 64 [ set shape "garbage can" set size 1 set xcor -3 set ycor -11.5 set color gray set heading 360]] create-paquets 7 [ ask paquet 65 [ set shape "paquet" set size 1 set xcor 12 set ycor 7.75 set color white set heading 360] ask paquet 66 [ set shape "paquet" set size 1 set xcor 11.25 set ycor 7.15 set color white set heading 360] ask paquet 67 [ set shape "paquet" set size 1 set xcor 13 set ycor 8.25 set color white set heading 360] ask paquet 68 [ set shape "paquet" set size 1 set xcor 14 set ycor 8.5 set color white set heading 360] ask paquet 69 [ set shape "paquet" set size 1 set xcor 15 set ycor 8.5 set color white set heading 360] ask paquet 70 [ set shape "paquet" set size 1 set xcor 10.75 set ycor 6.5 set color red set heading 360 hide-turtle ] ask paquet 71 [ set shape "paquet" set size 1 set xcor 10.75 set ycor 6.5 set color white set heading 360] ] create-personnes 1 [ ask personne 72 [ set shape "person police" set size 2 set xcor -4 set ycor -14 set color black set heading 360 hide-turtle]] create-voitures 1 [ ask voiture 73 [ set shape "car police" set size 5.5 set xcor 13.5 set ycor -13.5 set color gray set heading 270 hide-turtle]] create-paquets 1 [ ask paquet 74 [ set shape "paquetperdu" set size 1 set xcor 10.75 set ycor 6.5 set color gray set heading 360 hide-turtle ]] ask alarme 45 [ show-turtle] ask alarme 46 [hide-turtle] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Creation of patches that allow to limit the rooms of the house ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ask patches [ if (pxcor > -17 and pxcor < -4 ) and pycor = -10 [ set w 1 ] if (pxcor < 17 and pxcor > -4 ) and pycor = -10 [ set w 1 ] if pxcor = 0 and ( pycor > 5 and pycor < 17)[ set w 2 ] if ( pxcor > -17 and pxcor < -12) and pycor = 6 [ set w 3 ] if pxcor = 0 and ( pycor > -10 and pycor < 1)[ set w 4 ] if ( pxcor > -1 and pxcor < 8) and pycor = 0[ set w 4 ] if ( pxcor < 17 and pxcor > 8) and pycor = 0[ set w 4 ] if ( pxcor > -1 and pxcor < 6) and pycor = 5[ set w 2 ] if ( pxcor < 17 and pxcor > 6) and pycor = 5[ set w 2 ] if pxcor = -9 and pycor = -10 [ set w 1 ] if pxcor = -9 and pycor = -16 [ set w 1 ] ask patches with [(pxcor = min-pxcor ) or (pxcor = max-pxcor ) or (pycor = min-pycor ) or (pycor = max-pycor ) ] [ set pcolor gray] if w = 1 [set pcolor brown ] if w = 2 [ set pcolor magenta ] if w = 3 [ set pcolor green ] if w = 4 [ set pcolor blue] ] if (time = "morning")[ ask patches [ if (pxcor > -9 and pycor < -10) [set pcolor 47 ;;;; patch that shows that it is morning outside the house if you set time = morning then setup ] ] ask patches with [(pxcor <= -3 ) and (pxcor >= -4 ) and ;; patches that draw the line on the road in white (pycor <= -13.5 ) and (pycor >= -14 ) ] [ set pcolor white] ask patches with [(pxcor <= 2 ) and (pxcor >= 1 ) and (pycor <= -13.5 ) and (pycor >= -14 ) ] [ set pcolor white] ask patches with [(pxcor <= 7 ) and (pxcor >= 6 ) and (pycor <= -13.5 ) and (pycor >= -14 ) ] [ set pcolor white] ask patches with [(pxcor <= 12 ) and (pxcor >= 11 ) and (pycor <= -13.5 ) and (pycor >= -14 ) ] [ set pcolor white] ask patches with [(pxcor <= 17 ) and (pxcor >= 16 ) and (pycor <= -13.5 ) and (pycor >= -14 ) ] [ set pcolor white] ask patches [ if (pxcor < 17 and pxcor > -4 ) and pycor = -11 [ set pcolor 63 ]] ask patches [ if (pxcor < 17 and pxcor > -9 ) and pycor = -16 [ set pcolor 63 ]] ask voiture 4 [hide-turtle] ask voiture 60 [show-turtle] ] if (time = "night")[ ask patches [ if (pxcor > -9 and pycor < -10) [set pcolor 102 ]] ask patches with [(pxcor <= -3 ) and (pxcor >= -4 ) and (pycor <= -13.5 ) and (pycor >= -14 ) ] [ set pcolor white] ask patches with [(pxcor <= 2 ) and (pxcor >= 1 ) and (pycor <= -13.5 ) and (pycor >= -14 ) ] [ set pcolor white] ask patches with [(pxcor <= 7 ) and (pxcor >= 6 ) and (pycor <= -13.5 ) and (pycor >= -14 ) ] [ set pcolor white] ask patches with [(pxcor <= 12 ) and (pxcor >= 11 ) and (pycor <= -13.5 ) and (pycor >= -14 ) ] [ set pcolor white] ask patches with [(pxcor <= 17 ) and (pxcor >= 16 ) and (pycor <= -13.5 ) and (pycor >= -14 ) ] [ set pcolor white] ask patches [ if (pxcor < 17 and pxcor > -4 ) and pycor = -11 [ set pcolor 62 ]] ask patches [ if (pxcor < 17 and pxcor > -9 ) and pycor = -16 [ set pcolor 62 ]] ask voiture 4 [show-turtle] ask voiture 60 [hide-turtle] ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Graph ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to setup-plot set-current-plot "Objet Lifetime" set-plot-pen-mode 1 set-plot-pen-color red set-plot-x-range 0 20 set-plot-y-range 0 20 set-plot-pen-interval 1 set battery 20 end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Interaction procedure of the simulation (course of all procedures);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to go ;;; Procedure that allows to make our characters move and that executes other procedures underneath depending on their position ( it is the main procedure of our simulation ) if (travel = "house")[ if (character = "mohamed")[ ask personne 2 [ if [pcolor] of patch-ahead 1 != brown and [pcolor] of patch-ahead 1 != blue and [pcolor] of patch-ahead 1 != magenta and [pcolor] of patch-ahead 1 != green and [pcolor] of patch-ahead 1 != gray and [pcolor] of patch-ahead 1 != 63 and [pcolor] of patch-ahead 1 != 62 [ forward 1 ] if( xcor = -4 )and (ycor = -12)[ show " the surveillance camera recognizes mohamed and the door will be unlocked automatically" security ask dors [set xcor -2 set ycor -11]] ;;; if mohamed's position is xcor = -4 , ycor = -12 we call the procedure that allows to activate the surveillance camera and ask the external door (dors) to openif mohamed's position is xcor = -4 , ycor = -12 we call the procedure that allows to activate the surveillance camera and ask the external door (dors) to open if ( xcor = -4 )and (ycor = -8)[ ask alarme 45 [ hide-turtle ] ask alarme 46 [show-turtle] set room "living room" light ;;; if mohamed enters the house, the living room will be bright and the outside door will close and the surveillance camera will be turned off ask dors [set xcor -4 set ycor -11 ] turnCameraOff] if( xcor = -4 )and (ycor = -12)[ show "mohamed leaves the house the alarm is activated, the camera recognizes him and locks the door" ask alarme 45 [ show-turtle ] ask alarme 46 [hide-turtle] ;; mohamed who is outside goes back to the house security ask dors [set xcor -4 set ycor -11 ] ] if ( xcor >= -7 and xcor <= -2 )and (ycor = -9 )[ set room "living room" turn-off light ;; mohamed comes out of the house ask dors [ set xcor -2 set ycor -11] turnCameraOff] if ( xcor = 0 )and (ycor <= 4 and ycor >= 1)[ set room "lobby" light ;;;;; turn on the lights in the lobby (turn off the lights in the living room and kitchen when mohamed arrives at the lobby) ask patches with [ (pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16] [set pcolor black] ask patches with [ pxcor < 0 and pxcor > -16 and pycor > -10 and pycor < 6 ][set pcolor black] ask wave-componentTeles [die]] ;;;; turn off the television automatically if mohamed arrives at the lobby if ( xcor = -2 )and (ycor <= -1 and ycor >= 1)[ ask patches with [ pxcor < 0 and pxcor > -16 and pycor > -10 and pycor < 6] [set pcolor 48] ask patches with [ (pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16 ] [set pcolor 42] ask patches with [ pxcor > -1 and pxcor < 16 and (pycor > 0 and pycor < 5) ][set pcolor 42] ] if ( xcor = 6 )and (ycor = 4 )[ ;;; room light lobby off ask porte 0 [ set xcor 7.25 set ycor 5]] if ( xcor = 6 )and (ycor = 7 )[set room "bedroom" light ask patches with [ pxcor > -1 and pxcor < 16 and (pycor > 0 and pycor < 5) ][set pcolor black] ask porte 0 [ set xcor 6 set ycor 5.5]] if ( xcor = 6 )and (ycor = 3 )[ ;; lobby light bedroom off ask porte 0 [ set xcor 6 set ycor 5.5] ask patches with [ (((pxcor > 0 and pxcor < 16 ) and ( pycor > 5 and pycor < 16))) ][set pcolor black] ask patches with [ pxcor > -1 and pxcor < 16 and (pycor > 0 and pycor < 5) ][set pcolor 48]] if ( xcor = -1 )and (ycor >= 0 and ycor <= 4 )[ ;; living room light lobby off ask patches with [(pxcor < 0 and pxcor > -16 )and (pycor > -10 and pycor < 6) ][set pcolor 48] ask patches with [ pxcor > -1 and pxcor < 16 and (pycor > 0 and pycor < 5) ][set pcolor black] ask patches with [ (pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16 ] [set pcolor 42]] ;; kitchen if ( xcor >= -16 and xcor <= -1 )and (ycor = 6 )[ ;; kitchen light living room off ask patches with [((pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16) ][set pcolor 48] ask patches with [ (pxcor < 0 and pxcor > -16 )and (pycor > -10 and pycor < 6) ][set pcolor 42]] if ( xcor >= -16 and xcor <= -1 )and (ycor = 5 )[ ;; kitchen off living room light ask patches with [((pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16) ][set pcolor 42] ask patches with [ (pxcor < 0 and pxcor > -16 )and (pycor > -10 and pycor < 6) ][set pcolor 48]] if ( xcor = 8 )and (ycor = 1 )[ ;;; bathroom light lobby off ask porte 1 [ set xcor 6.75 set ycor 0]] if ( xcor = 8 )and (ycor = -2 )[ ask patches with [ ((pxcor > 0 and pxcor < 16) and (pycor > -10 and pycor < 0) ) ][set pcolor 48] ask patches with [ pxcor > -1 and pxcor < 16 and (pycor > 0 and pycor < 5) ][set pcolor black] ask porte 1 [ set xcor 8 set ycor -0.5]] if ( xcor = 8 )and (ycor = 2 )[ ;; lobby light bathroom off ask porte 1 [ set xcor 8 set ycor -0.5] ask patches with [((pxcor > 0 and pxcor < 16) and (pycor > -10 and pycor < 0) ) ][set pcolor black] ask patches with [ pxcor > -1 and pxcor < 16 and (pycor > 0 and pycor < 5) ][set pcolor 48]] if ( xcor <= -1 and xcor >= -2) and (ycor = 12 )[ show " what's in my fridge?" ;; open fridge ask refregirateur 17 [ show-turtle] ask refregirateur 49 [ hide-turtle] ] if (( xcor <= -1 and xcor >= -2 ) and (ycor = 11 )) [ ;; close fridge ask refregirateur 17 [ hide-turtle ask links [die] ] ask refregirateur 49 [ show-turtle] ] if ( xcor <= 3 and xcor >= 2) and (ycor = -3 )[ ;; open the tap ask robinet 24 [ show-turtle] ask robinet 50 [ hide-turtle] ] if ( xcor <= 3 and xcor >= 2 ) and (ycor = -4 )[ ;; close the tap ask robinet 50 [ show-turtle] ask robinet 24 [ hide-turtle] ] if ( xcor = -13) and ( ycor <= -2 and ycor >= -8 )[ show "I like this program" ;; sit on the chair and turn on the TV ask television 10 [ let i 0 let numwave-componentTeles 10.0 hatch-wave-componentTeles numwave-componentTeles [ set color white set size 1 set i i + 1 set amplitude initialewaveamplitudeTele set waveid nextwaveidTele set heading i * -10 ] set nextwaveidTele nextwaveidTele + 1 ask wave-componentTeles [ if not can-move? 0.5 [ die ] fd 0.2 set amplitude amplitude - 0.7 set color scale-color white amplitude 0 initialewaveamplitudeTele if amplitude < 0.1 [ die ] ]] ask patches with [ pxcor < 0 and pxcor > -16 and pycor > -10 and pycor < 6] [set pcolor 41] ;;; relaxing light in the living room when the TV is on ask patches with [ (pxcor < 0 and pxcor > -16) and ( pycor > 5 and pycor < 16)] [set pcolor black] ] if ( xcor = 13 ) and (ycor <= -3 and ycor >= -8 )[ show " I have to be quick " set température 14 ;; take a bath if (température <= 15) [ ask radiateur 22 [ ;; turn on the bathroom light when mohamed takes his bath let i 0 let numwave-componentChs 10.0 hatch-wave-componentChs numwave-componentChs [ set color red set size 3 set i i + 1 set amplitude initialewaveamplitudech set waveid nextwaveid set heading i * 30 ] set nextwaveid nextwaveid + 1] ask wave-componentChs [ if not can-move? 0.5 [ die ] fd 1 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initialewaveamplitudech if amplitude < 0.1 [ die ] ] ask radiateur 21 [ ;; ;;; turn on the bedroom light when mohamed takes his bath so he can change afterwards let i 0 let numwave-componentChCs 10.0 hatch-wave-componentChCs numwave-componentChCs [ set color red set size 3 set i i + 1 set amplitude initialewaveamplitudechC set waveid nextwaveid set heading i * 30 ] set nextwaveid nextwaveid + 1] ask wave-componentChCs [ if not can-move? 0.5 [ die ] fd 1 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initialewaveamplitudechC if amplitude < 0.1 [ die ] ]] ask smartphone 48 [ move-to personne 2 hide-turtle ] ;; ask mohamed's smartphone to move with him with move-to and hide him with hide-turtle ask patches with [ ((pxcor > 0 and pxcor < 16) and (pycor > -10 and pycor < 0) ) ] [set pcolor 19] ask baignoire 51 [ hide-turtle] ;; empty bathtub ask baignoire 27 [ show-turtle] ;; filled bathtub ask smartphone 48 [hide-turtle] ] if( xcor = 12 )and (ycor <= -3 and ycor >= -8 )[ show "I feel ready for the morning, I'll change !" ;;;;; get out of the bath ask baignoire 51 [ show-turtle] ask baignoire 27 [show-turtle] ask radiateur 22 [ ask wave-componentChs [die]] ;; turn off the radiator after the bath ask patches with [ ((pxcor > 0 and pxcor < 16) and (pycor > -10 and pycor < 0) )] [set pcolor 48]] if( xcor = -8 )and (ycor = -11)[ ;;;;;;;;;;;; mohamed goes back to the garage security ask porte 55 [ set xcor -9.5 set ycor -10.5]] if ( xcor = -10 )and (ycor = -11)[ set room "garage" ask patches with [(pxcor < -9 and pxcor > -16) and ( pycor < -10 and pycor > -16 )] [set pcolor 48] ask porte 55 [set xcor -9.5 set ycor -11.5 ] turnCameraOff] if( xcor = -9 )and (ycor = -11)[ ;;;;;;;;;;;; mohamed comes out of the garage ask porte 55 [ set xcor -9.5 set ycor -11.5]] if ( xcor = -7 )and (ycor = -11 )[ ask patches with [(pxcor < -9 and pxcor > -16) and ( pycor < -10 and pycor > -16 )] [set pcolor black] ask porte 55 [set xcor -9.5 set ycor -11.5 ] security] ask smartphone 48 [ move-to personne 2 ] if (time = "morning") [ ;;;;;;;;;;;;;;;;;;; mohamed asks and takes his coffee if ( xcor >= -7 and xcor <= -3 )and (ycor = 9 )[ show ("coffeeeeeeeeeee please") ask cafe 58 [ show-turtle ] ] if ( xcor = -15 )and (ycor >= 13 and ycor <= 14 )[ show ("too bitter coffee !") ask cafe 58 [hide-turtle] ask cafe 57 [show-turtle] ] ] if (xcor = -8 ) and ( ycor <= -12 and ycor >= -15 ) [ ;; limit garage ask patches with [ (pxcor = -9 ) and (pycor <= -12 and pycor >= -16 )][ set pcolor gray ] ] if (xcor = -13 ) and ( ycor = -12 ) [ show "my car is very nice" ask personne 2 [move-to voiture 60 ] ask smartphone 48 [hide-turtle]] if (xcor >= -10 and xcor <= -6 ) and (ycor = 7) [ ;; fridge notification ask refregirateur 17 [ create-link-with smartphone 48] ] if (xcor >= 6 and xcor <= 8 ) and (ycor = 14) [ show "Password : *********** " ;;open the safe ask coffre 61 [hide-turtle] ask coffre 62 [show-turtle] ] if (xcor >= 6 and xcor <= 8 ) and (ycor = 13) [ ;;close the safe ask coffre 61 [show-turtle] ask coffre 62 [hide-turtle] ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; go mohamed after the attack hello flood ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; if ( xcor = -4 )and (ycor = -12)[ if (hello-packet = 20)[ ;;;; if attack done show "mohamed is not recognized by the camera because it is out of order and finds the door locked by the attacker (mohamed cannot access his home)" turnCameraOff ask patches with [(pxcor <= -3 and pxcor >= -5 )and pycor = -11] [set pcolor brown] ] ] if ( xcor = -7 )and (ycor = -11)[ if (hello-packet = 20)[ show "mohamed is not recognized by the camera because it is out of order and finds the door locked by the attacker (mohamed cannot access his garage)" turnCameraOff ask patches with [(pxcor <= -8 and pxcor >= -9 )and pycor = -11] [set pcolor brown] ] ] if ( xcor <= 6 and xcor >= 4 )and (ycor = 14 )[ ask personne 2 [ set shape "person port"] ask radiateur 21 [ ask wave-componentChCs [die]] ] ;;;; mohamed is changing and the radiator will turn off after heating the room ] ]] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;go mohamed port;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; if (travel = "port")[if (character = "mohamed")[ ask personne 2 [ if [pcolor] of patch-ahead 1 != 3 and [pcolor] of patch-ahead 1 != 108 and [pcolor] of patch-ahead 1 != brown [ forward 1 ] if ( pxcor = -9 ) and (pycor >= -16 and pycor <= -15) [ set room "lobby" move-to voiture 4 ask smartphone 48 [hide-turtle] ask wave-components [hide-turtle ] ] if ( pxcor >= -3 and pxcor <= 2 ) and pycor = -11 [ ask porte 38 [ set xcor -2 set ycor -14 ] ;;; portal open ask porte 39 [ set xcor 2 set ycor -14]] if ( pxcor >= -2 and pxcor <= 2 ) and pycor = -16 [ ask porte 38 [ set xcor -1 set ycor -14 ] ;; portal close ask porte 39 [ set xcor 1 set ycor -14] ask camera 40 [ let j 0 let num-wave-components 150.0 ;; hatch-wave-components num-wave-components [ set color red set size 0.5 set j j + 1 set amplitude initial-wave-amplitude set wave-id next-wave-id set heading j * ( 270.0 / num-wave-components ) ] set next-wave-id next-wave-id + 1 ] ask wave-components [ fd 0.5 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initial-wave-amplitude if amplitude < 0.5 [ die ]] ] if ( pxcor >= -2 and pxcor <= 2 ) and pycor = -15 [ ask porte 38 [ set xcor -2 set ycor -14 ] ask porte 39 [ set xcor 2 set ycor -14] ask camera 40 [ let j 0 let num-wave-components 150.0 hatch-wave-components num-wave-components [ set color red set size 0.5 set j j + 1 set amplitude initial-wave-amplitude set wave-id next-wave-id set heading j * ( 270.0 / num-wave-components ) ] set next-wave-id next-wave-id + 1 ] ask wave-components [ fd 0.5 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initial-wave-amplitude if amplitude < 0.5 [ die ]] ] if ( pxcor >= -3 and pxcor <= 2 ) and pycor = -10 [ ask porte 38 [ set xcor -1 set ycor -14 ] ask porte 39 [ set xcor 1 set ycor -14] ask wave-components [hide-turtle ] ] if ( pxcor = -6 ) and (pycor >= -13 and pycor <= -6) [ ;;;;;;;;;;;;;;;;;;; turn on camera 45 if mohamed arrives in front of the crane ask camera 45 [ let j 0 let num-wave-components 150.0 ;; number of components in each wave hatch-wave-components num-wave-components [ set color red set size 0.5 set j j + 1 set amplitude initial-wave-amplitude set wave-id next-wave-id set heading j * ( 270.0 / num-wave-components ) ; if show-amplitudes? [ hide-turtle ] ] set next-wave-id next-wave-id + 1 ] ask wave-components [ fd 0.5 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initial-wave-amplitude if amplitude < 0.5 [ die ]] ] if ( pxcor >= -16 and pxcor <= -5 ) and pycor = -5 [ ask camera 45 [ let j 0 let num-wave-components 150.0 hatch-wave-components num-wave-components [ set color red set size 0.5 set j j + 1 set amplitude initial-wave-amplitude set wave-id next-wave-id set heading j * ( 270.0 / num-wave-components ) ] set next-wave-id next-wave-id + 1 ] ask wave-components [ fd 0.5 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initial-wave-amplitude if amplitude < 0.5 [ die ]] ] if ( pxcor >= -16 and pxcor <= -5 ) and pycor = -3 [ ask camera 45 [ ask wave-components [hide-turtle ] ]] if ( pxcor = -1 ) and (pycor >= -13 and pycor <= -6) [ ;;;;;;;;;;;;;;;;;;; turn off camera 45 if mohamed moves away from the crane ask camera 45 [ ask wave-components [hide-turtle ] ]] if ( pxcor = 0 ) and (pycor >= -1 and pycor <= 7) [ ;;;;;;;;;;;;;;;;;;; turn on camera 41 if mohamed arrives in front of the crane ask camera 41 [ let j 0 let num-wave-components 150.0 hatch-wave-components num-wave-components [ set color red set size 0.5 set j j + 1 set amplitude initial-wave-amplitude set wave-id next-wave-id set heading j * ( 270.0 / num-wave-components ) ] set next-wave-id next-wave-id + 1 ] ask wave-components [ fd 0.5 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initial-wave-amplitude if amplitude < 0.5 [ die ]] ] if ( pxcor >= -16 and pxcor <= -5 ) and pycor = -2 [ ask camera 41 [ let j 0 let num-wave-components 150.0 hatch-wave-components num-wave-components [ set color red set size 0.5 set j j + 1 set amplitude initial-wave-amplitude set wave-id next-wave-id set heading j * ( 270.0 / num-wave-components ) ] set next-wave-id next-wave-id + 1 ] ask wave-components [ fd 0.5 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initial-wave-amplitude if amplitude < 0.5 [ die ]] ] if ( pxcor >= -14 and pxcor <= 0 ) and pycor = 8 [ ask camera 41 [ let j 0 let num-wave-components 150.0 ;; number of components in each wave hatch-wave-components num-wave-components [ set color red set size 0.5 set j j + 1 set amplitude initial-wave-amplitude set wave-id next-wave-id set heading j * ( 270.0 / num-wave-components ) ; if show-amplitudes? [ hide-turtle ] ] set next-wave-id next-wave-id + 1 ] ask wave-components [ fd 0.5 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initial-wave-amplitude if amplitude < 0.5 [ die ]] ] if ( pxcor = 1 ) and (pycor >= -1 and pycor <= 7) [ ;;;;;;;;;;;;;;;;;;; turn off camera 41 if mohamed moves away from the crane ask camera 41 [ask wave-components [hide-turtle ]]] if ( pxcor >= -14 and pxcor <= 0 ) and pycor = 10 [ ask camera 41 [ask wave-components [hide-turtle ]]] if ( pxcor >= -16 and pxcor <= -5 ) and pycor = -3 [ ask camera 41 [ask wave-components [hide-turtle ]]] if ( pxcor = 1 ) and (pycor >= 8 and pycor <= 13) [ ;;;;;;;;;;;;;;;;;;; turn on camera 45 if mohamed arrives in front of the crane ask camera 46 [ let j 0 let num-wave-components 150.0 ;; number of components in each wave hatch-wave-components num-wave-components [ set color red set size 0.5 set j j + 1 set amplitude initial-wave-amplitude set wave-id next-wave-id set heading j * ( 270.0 / num-wave-components ) ; if show-amplitudes? [ hide-turtle ] ] set next-wave-id next-wave-id + 1 ] ask wave-components [ fd 0.5 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initial-wave-amplitude if amplitude < 0.5 [ die ]] ] if (xcor = -12 and ycor = -10 )[ ;;;; enter the office open the door ask porte 83[set xcor -13 set ycor -9.5] ask camera 45 [turnCameraOff] ] if (xcor = -14 and ycor = -10 )[ ;;;; enter the office close the door ask porte 83[set xcor -13 set ycor -10] ask patches with [ (pxcor > -17 and pxcor <= -14 ) and (pycor > -12 and pycor <= -10)] [ set pcolor 46] ] if (xcor = -13 and ycor = -10 )[ ;;;; leave the office, open the door ask porte 83[set xcor -13 set ycor -9.5] ] if (xcor = -11 and ycor = -10 )[ ;;;; leave the office, close the door ask porte 83[set xcor -13 set ycor -10] ask patches with [ (pxcor > -17 and pxcor <= -14 ) and (pycor > -12 and pycor <= -10)] [ set pcolor black]] ask smartphone 48 [ move-to personne 2 ] ]]] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; go after using the move procedure ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; if (travel = "in front of the bedroom door")[ ask personne 2 [ fd 1 turn-left turn-right turn-down turn-up] ask patches [if( (pxcor > 0 and pxcor < 16 ) and ( pycor > 5 and pycor < 16) )[ if not any? personnes-here [set pcolor 48] ask porte 0 [set xcor 6 set ycor 5.5 ] ]]] if (travel = "in front of the front door")[ ask personne 2 [ fd 1 turn-left turn-right turn-down turn-up ask dors [set xcor -4 set ycor -11 ]] ask smartphone 48 [ move-to personne 2 ] ask patches [ if (pxcor < 0 and pxcor > -16 and pycor > -10 and pycor < 6)[ if not any? personnes-here [set pcolor 48]] if (pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16 [set pcolor 42] if ((pxcor > -1 and pxcor < 16) and (pycor > 0 and pycor < 5)) [set pcolor 42]] turnCameraOff ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; attacker's go in the house ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; if (travel = "house")[ if (character = "attacker")[ ask personne 3 [ if [pcolor] of patch-ahead 1 != brown and [pcolor] of patch-ahead 1 != blue and [pcolor] of patch-ahead 1 != magenta and [pcolor] of patch-ahead 1 != green and [pcolor] of patch-ahead 1 != gray and [pcolor] of patch-ahead 1 != 63 [ forward 1 ] if( xcor = -4 )and (ycor = -12)[ security if attack-duration = 20 [ ask patches with [ (pxcor <= -3 and pxcor >= -6 ) and (pycor = -10 ) ] [ set pcolor brown ] show ("camera detects intruder locked door no access ") ;;;;;;; the door remains closed because it is not recognized by the camera ]] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; go of the attacker after the attack hello flood ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; if attack-duration = 0 [ ask patches with [ (pxcor <= -3.5 and pxcor >= -4 ) and (pycor = -10 ) ][set pcolor black] ] if attack-duration <= 0 [ ask camera 5 [turnCameraOff ] ask personne 3 [ if (xcor = -4 ) and (ycor = -9)[ ask dors [set xcor -2 set ycor -11] ] if( xcor = -4 )and (ycor = -12)[ ask dors [set xcor -4 set ycor -11 ] ask patches with [ pxcor < 0 and pxcor > -16 and pycor > -10 and pycor < 6] [set pcolor black]] if( xcor = -4 )and (ycor = -11)[ ask dors [set xcor -2 set ycor -11 ]] if ( xcor = -4 )and (ycor = -8)[ set room "living room" light ask dors [set xcor -4 set ycor -11 ] alert ask alarme 45 [ create-link-with routeur 44 ] ask link 44 45 [set color red] show ("the attacker locks the port behind him ") show ("the alarm detects the intruder and goes off while sending a notification to mohamed's smartphone")] ]] ;;;;;;;;;;; travel and brightness (go of the attacker after the attack) ;;;;;;;; if ( xcor = 0 )and (ycor <= 4 and ycor >= 1)[ ask patches with [ ( pxcor > -1 and pxcor < 16) and (pycor > 0 and pycor < 5)] [set pcolor 48] ask patches with [ (pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16] [set pcolor black] ask patches with [ pxcor < 0 and pxcor > -16 and pycor > -10 and pycor < 6 ][set pcolor black] ask wave-componentTeles [die] ] if ( xcor = -2 )and (ycor <= -1 and ycor >= 1)[ ask patches with [ pxcor < 0 and pxcor > -16 and pycor > -10 and pycor < 6] [set pcolor 48] ask patches with [ (pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16] [set pcolor 42] ;; kitchen ask patches with [ pxcor > -1 and pxcor < 16 and (pycor > 0 and pycor < 5) ][set pcolor black] ;; lobby ] if ( xcor = 6 )and (ycor = 4 )[ ask porte 0 [ set xcor 7.25 set ycor 5]] if ( xcor = 6 )and (ycor = 7 )[ ask patches with [(( (pxcor > 0 and pxcor < 16 ) and ( pycor > 5 and pycor < 16))) ][set pcolor 48] ask patches with [ pxcor > -1 and pxcor < 16 and (pycor > 0 and pycor < 5) ][set pcolor black] ask porte 0 [ set xcor 6 set ycor 5.5]] if ( xcor = 6 )and (ycor = 3 )[ ask porte 0 [ set xcor 6 set ycor 5.5] ask patches with [ (( (pxcor > 0 and pxcor < 16 ) and ( pycor > 5 and pycor < 16))) ][set pcolor black] ask patches with [ pxcor > -1 and pxcor < 16 and (pycor > 0 and pycor < 5) ][set pcolor 48] ] if ( xcor = -1 )and (ycor >= 0 and ycor <= 4 )[ ask patches with [(pxcor < 0 and pxcor > -16 )and (pycor > -10 and pycor < 6) ][set pcolor 48] ask patches with [ pxcor > -1 and pxcor < 16 and (pycor > 0 and pycor < 5) ][set pcolor black] ask patches with [ (pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16 ] [set pcolor 42] ] if ( xcor >= -16 and xcor <= -1 )and (ycor = 6 )[ ask patches with [((pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16) ][set pcolor 48] ask patches with [ (pxcor < 0 and pxcor > -16 )and (pycor > -10 and pycor < 6) ][set pcolor 42]] if ( xcor >= -16 and xcor <= -1 )and (ycor = 5 )[ ask patches with [( (pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16) ][set pcolor 42] ask patches with [ (pxcor < 0 and pxcor > -16 )and (pycor > -10 and pycor < 6) ][set pcolor 48]] if ( xcor = 8 )and (ycor = 1 )[ ask porte 1 [ set xcor 6.75 set ycor 0]] if ( xcor = 8 )and (ycor = -2 )[ask patches with [ ((pxcor > 0 and pxcor < 16) and (pycor > -10 and pycor < 0) ) ][set pcolor 48] ask patches with [ pxcor > -1 and pxcor < 16 and (pycor > 0 and pycor < 5) ][set pcolor black]ask porte 1 [ set xcor 8 set ycor -0.5]] if ( xcor = 8 )and (ycor = 2 )[ ask porte 1 [ set xcor 8 set ycor -0.5] ask patches with [((pxcor > 0 and pxcor < 16) and (pycor > -10 and pycor < 0) ) ][set pcolor black] ask patches with [ pxcor > -1 and pxcor < 16 and (pycor > 0 and pycor < 5) ][set pcolor 48] ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; hello flood attack inside the house with go ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; if ( xcor <= -2 and xcor >= -4 )and (ycor = -7)[clear-plot (set travel "inside the home") show "the attacker will harm the objects in his range " set attack-duration 20 set hello-size 0 set hello-packet 0 ] if ( xcor = 8 )and (ycor <= 9 and ycor >= 7)[clear-plot (set travel "go into the bedroom") show "the attacker will harm other objects in its range " set attack-duration 20 set hello-size 0 set hello-packet 0 ] if ( xcor <= 8 and xcor >= 6 )and (ycor = 14)[ ;; steal the safe ask coffre 61 [ create-link-with personne 3 [tie] ] ;; create a link between the attacker and the chest and ask the chest to follow the attacker anywhere with tie ;ask coffre 62 [show-turtle ] ask voiture 4 [show-turtle set xcor 3 set ycor -13.5] ask personne 2 [show-turtle set shape "person port" ] ask voiture 60 [hide-turtle] ask personne 72 [show-turtle] ask voiture 73 [show-turtle] ] ; if ( xcor <= 8 and xcor >= 6 )and (ycor = 13)[ ; ask coffre 62 [hide-turtle] ; ask coffre 63 [show-turtle] ;] ask smartphone 47 [ move-to personne 3 ] if (xcor = -8 ) and ( ycor <= -12 and ycor >= -15 ) [ ask patches with [ (pxcor = -9 ) and (pycor <= -12 and pycor >= -16 )][ set pcolor gray ]] ]]] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; go from the attacker to the port before the attack ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; if (travel = "port")[ if (character = "attacker")[ ask personne 3 [ if [pcolor] of patch-ahead 1 != 3 and [pcolor] of patch-ahead 1 != 108 [forward 1] if (attack-duration = 20) [ if ( pxcor >= -2 and pxcor <= 2 ) and pycor = -15 [ ask camera 40 [ let j 0 let num-wave-components 150.0 ;; number of components in each wave hatch-wave-components num-wave-components [ set color red set size 0.5 set j j + 1 set amplitude initial-wave-amplitude set wave-id next-wave-id set heading j * ( 270.0 / num-wave-components ) ] set next-wave-id next-wave-id + 1 ] ask wave-components [ fd 0.5 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initial-wave-amplitude if amplitude < 0.5 [ die ]]] ask patches with [ (pxcor <= 2 and pxcor >= -2 ) and (pycor = -13 ) ] [ set pcolor 3 ] show ("camera detects intruder locked door no access ")] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; go of the attacker after the attack outside the port ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; if attack-duration = 0 [ if (time = "morning")[ ask patches with [ (pxcor <= 1 and pxcor >= -2 ) and (pycor = -13 ) ][set pcolor 48]] if (time = "night")[ ask patches with [ (pxcor <= 1 and pxcor >= -2 ) and (pycor = -13 ) ][set pcolor black]] ] if attack-duration <= 0 [ ask camera 40 [turnCameraOff ] ask personne 3 [if ( pxcor >= -3 and pxcor <= 2 ) and pycor = -11 [ ask porte 38 [ set xcor -2 set ycor -14 ] ask porte 39 [ set xcor 2 set ycor -14]] if ( pxcor >= -3 and pxcor <= 2 ) and pycor = -10 [ ask porte 38 [ set xcor -1 set ycor -14 ] ask porte 39 [ set xcor 1 set ycor -14]] if ( pxcor >= -2 and pxcor <= 2 ) and pycor = -16 [ ask porte 38 [ set xcor -1 set ycor -14 ] ask porte 39 [ set xcor 1 set ycor -14]] if ( pxcor >= -2 and pxcor <= 2 ) and pycor = -15 [ ask porte 38 [ set xcor -2 set ycor -14 ] ask porte 39 [ set xcor 2 set ycor -14]] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; hello flood attack inside the port ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; if ( pxcor >= 0 and pxcor <= 2 ) and pycor = -10 [ clear-plot (set travel "inside the port") show "the attacker notices the other cameras inside the port and will harm all the equipment equipped with sensors as well as the sensor that detects the limitation of the ships and tries to unlock the office door " set attack-duration 20 set hello-size 0 set hello-packet 0 create-link-with camera 41 create-link-with camera 45 create-link-with camera 46 create-link-with porte 83 create-link-with camion 37 create-link-with clark 53 create-link-with clark 54 create-link-with clark 65 create-link-with capteur 51 create-link-with capteur 50 create-link-with capteur 81 ] if (xcor = -13 and ycor = -10 )[ ask patches with [ (pxcor > -17 and pxcor <= -14 ) and (pycor > -12 and pycor <= -10)] [ set pcolor 46] ask alarme 86 [ alert] show ("the alarm detects the intruder inside the office and sends a notification to mohamed on his smartphone") ask smartphone 48 [ create-link-with alarme 86 ] ] if (xcor = -11 and ycor = -10 )[ ask patches with [ (pxcor > -17 and pxcor <= -14 ) and (pycor > -12 and pycor <= -10)] [ set pcolor black]] if (xcor = -16 and ycor = -10 )[ ask book 87 [ create-link-with personne 3 [tie] ] ] ;; steal documents ] ] ask smartphone 47 [ move-to personne 3 ] ]]] reset-ticks end to turn-left ;;; procedure that allows the character to turn to the turn-left before going if (character = "mohamed" ) [ ask personne 2 [ set heading 270 ] ask smartphone 48 [ move-to personne 2] ] if (character = "attacker" ) [ ask personne 3 [ set heading 270 ] ask smartphone 47 [ move-to personne 3] ] end to turn-down ;;; procedure that allows the character to turn down before going if (character = "mohamed" ) [ ask personne 2 [ set heading 180 ] ask smartphone 48 [ move-to personne 2] ] if (character = "attacker" ) [ ask personne 3 [ set heading 180 ] ask smartphone 47 [ move-to personne 3] ] end to turn-right ;;; procedure that allows the character to turn to the right before going if (character = "mohamed" ) [ ask personne 2 [ set heading 90 ] ask smartphone 48 [ move-to personne 2] ] if (character = "attacker" ) [ ask personne 3 [ set heading 90 ] ask smartphone 47 [ move-to personne 3] ] end to turn-up ;;; ;;; procedure that allows the character to turn upwards before going if (character = "mohamed") [ ask personne 2 [ set heading 0 ] ask smartphone 48 [ move-to personne 2] ] if (character = "attacker") [ ask personne 3 [ set heading 0 ] ask smartphone 47 [ move-to personne 3] ] end to move ;;; procedure that allows to move the character instantly if (character = "mohamed")[ move-mohamed] end to move-mohamed if (travel = "sit on a chair")[ ;;; sit on the chair the TV turns on automatically and the light adjusts ask personne 2[ move-to patch 1 1 set xcor -13 set ycor -3] ask smartphone 48 [ move-to personne 2 ] ask television 10 [ let i 0 let numwave-componentTeles 10.0 hatch-wave-componentTeles numwave-componentTeles [ set color white set size 1 set i i + 1 set amplitude initialewaveamplitudeTele set waveid nextwaveidTele set heading i * -10 ] set nextwaveidTele nextwaveidTele + 1 ask wave-componentTeles [ if not can-move? 0.5 [ die ] fd 0.2 set amplitude amplitude - 0.7 set color scale-color white amplitude 0 initialewaveamplitudeTele if amplitude < 0.1 [ die ] ]] ask patches [ if pxcor < 0 and pxcor > -16 and pycor > -10 and pycor < 6 [set pcolor 41] ] ] if (travel = "go into the bedroom")[ ask personne 2[ move-to patch 1 2 set xcor 5 set ycor 9 ] ask smartphone 48 [ move-to personne 2 ] ask patches [if( (pxcor > 0 and pxcor < 16 ) and ( pycor > 5 and pycor < 16) ) [set pcolor 48 ]]] if (travel = "in front of the bedroom door")[ ask personne 2[move-to patch 1 2 set xcor 6 set ycor 3] ask smartphone 48 [ move-to personne 2 ] ask porte 0 [ set xcor 7.25 set ycor 5] ask patches [ if ((pxcor > -1 and pxcor < 16) and (pycor > 0 and pycor < 5)) [set pcolor 48]] ] if (travel = "go into the bathroom")[ ask personne 2[ move-to patch 1 2 set xcor 8 set ycor -5 ] ask smartphone 48 [ move-to personne 2 ] ask patches [if ((pxcor > 0 and pxcor < 16) and (pycor > -10 and pycor < 0) ) [set pcolor 48]]] if (travel = "to the lobby")[ ask personne 2[move-to patch 1 2 set xcor 3 set ycor 3] ask smartphone 48 [ move-to personne 2 ] ask patches [if ((pxcor > -1 and pxcor < 16) and (pycor > 0 and pycor < 5)) [set pcolor 48] if (pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16 [set pcolor black] if pxcor < 0 and pxcor > -16 and pycor > -10 and pycor < 6 [set pcolor black] if (pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16 [set pcolor black] if (pxcor < -9 and pxcor > -16) and ( pycor < -10 and pycor > -16 ) [set pcolor black] if( (pxcor > 0 and pxcor < 16 ) and ( pycor > 5 and pycor < 16) ) [ set pcolor black ] if ((pxcor > 0 and pxcor < 16) and (pycor > -10 and pycor < 0) ) [set pcolor black]]] if (travel = "in front of the front door")[ ask personne 2[move-to patch 1 2 set xcor -4 set ycor -12 repeat 5 [ security]] ask smartphone 48 [ move-to personne 2 ] ask dors [set xcor -2 set ycor -11]] if (travel = "to take a bath") [ ask personne 2 [ move-to baignoire 27 if (température <= 15) [ ask radiateur 22 [ let i 0 let numwave-componentChs 10.0 hatch-wave-componentChs numwave-componentChs [ set color red set size 3 set i i + 1 set amplitude initialewaveamplitudech set waveid nextwaveid set heading i * 30 ] set nextwaveid nextwaveid + 1] ask radiateur 21 [ let i 0 let numwave-componentChs 10.0 hatch-wave-componentChs numwave-componentChs [ set color red set size 3 set i i + 1 set amplitude initialewaveamplitudech set waveid nextwaveid set heading i * 30 ] set nextwaveid nextwaveid + 1] ] ask wave-componentChs [ if not can-move? 0.5 [ die ] fd 1 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initialewaveamplitudech if amplitude < 0.1 [ die ] ] ] ask smartphone 48 [ move-to personne 2 hide-turtle ] ask patches [ if ((pxcor > 0 and pxcor < 16) and (pycor > -10 and pycor < 0) ) [set pcolor 19] ] ask baignoire 27 [ show-turtle ] ask baignoire 51 [ hide-turtle] ] if (travel = "go to sleep") [ ask personne 2 [ move-to lit 28]] if (travel = "in front of the port gate")[ port ask personne 2[ move-to patch 1 1 set xcor -1 set ycor -15.5]] ask smartphone 48 [ move-to personne 2 ] end to security ;;;;;;;;;;;;; procedure to turn on the surveillance camera of the house if (hello-packet = 0)[ ;;; if the attack is not performed ask camera 5[ let j 0 let num-wave-components 150.0 hatch-wave-components num-wave-components [ set color yellow set size 0.5 set j j + 1 set amplitude initial-wave-amplitude set wave-id next-wave-id set heading j * ( 270.0 / num-wave-components ) ] set next-wave-id next-wave-id + 1 ] ask wave-components [ fd 0.5 set amplitude amplitude - 0.5 set color scale-color yellow amplitude 0 initial-wave-amplitude if amplitude < 0.5 [ die ]]] end to turnCameraOff ;;;; procedure for turning off surveillance cameras if (travel = "house")[ ask camera 5[ let j 0 let num-wave-components 150.0 ;; number of components in each wave hatch-wave-components num-wave-components [ set color -1 set size 0.5 set j j + 1 set amplitude initial-wave-amplitude set wave-id next-wave-id set heading j * ( 270.0 / num-wave-components ) ; if show-amplitudes? [ hide-turtle ] ] set next-wave-id next-wave-id + 1 ] ask wave-components [ hide-turtle]] if (travel = "port")[ ask camera 45 [ let j 0 let num-wave-components 150.0 ;; number of components in each wave hatch-wave-components num-wave-components [ set color red set size 0.5 set j j + 1 set amplitude initial-wave-amplitude set wave-id next-wave-id set heading j * ( 270.0 / num-wave-components ) ; if show-amplitudes? [ hide-turtle ] ] set next-wave-id next-wave-id + 1 ] ask wave-components [ hide-turtle] ask camera 41 [ let j 0 let num-wave-components 150.0 ;; number of components in each wave hatch-wave-components num-wave-components [ set color red set size 0.5 set j j + 1 set amplitude initial-wave-amplitude set wave-id next-wave-id set heading j * ( 270.0 / num-wave-components ) ; if show-amplitudes? [ hide-turtle ] ] set next-wave-id next-wave-id + 1 ] ask wave-components [ hide-turtle] ask camera 46 [ let j 0 let num-wave-components 150.0 ;; number of components in each wave hatch-wave-components num-wave-components [ set color red set size 0.5 set j j + 1 set amplitude initial-wave-amplitude set wave-id next-wave-id set heading j * ( 270.0 / num-wave-components ) ; if show-amplitudes? [ hide-turtle ] ] set next-wave-id next-wave-id + 1 ] ask wave-components [ hide-turtle] ] end to clim ;;; procedure to start the air conditioner set température température if (température >= 25) [ if (clim-procedure = true)[ ask climatiseurs [ if (clim-procedure = true)[ let i 0 let numwave-componentCs 10.0 hatch-wave-componentCs numwave-componentCs [ set color blue set size 1 set i i + 1 set amplitude initialewaveamplitude set waveid nextwaveid set heading i * -10 ] set nextwaveid nextwaveid + 1] if (clim-procedure = false) [stop] ] ask wave-componentCs [ if not can-move? 0.5 [ die ] fd 0.7 set amplitude amplitude - 0.5 set color scale-color blue amplitude 0 initialewaveamplitude if amplitude < 0.1 [ die ] ]] if (clim-procedure = false)[stop] ] end to openwindow ;;;;procedure that allows to open the windows of the house according to the temperature if ( température >= 16 and température <= 27 ) [ if (openwindow-procedure = true)[ if (time = "morning")[ if (room = "bedroom") [ ask fenetre 6 [ set color white ] ask patches [ if( (pxcor > 0 and pxcor < 16 ) and ( pycor > 5 and pycor < 16) ) [set pcolor 43] ]] if (room = "living room") [ ask fenetre 7 [ set color white ]ask patches [ if pxcor < 0 and pxcor > -16 and pycor > -10 and pycor < 6 [set pcolor 43] if ((pxcor > -1 and pxcor < 16) and (pycor > 0 and pycor < 5)) [set pcolor 43]]] if (room = "kitchen") [ ask fenetre 8 [ set color white ]ask patches [ if (pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16 [set pcolor 43] ]] if (room = "bathroom") [ ask fenetre 9 [ set color white ] ask patches [ if ((pxcor > 0 and pxcor < 16) and (pycor > -10 and pycor < 0) ) [set pcolor 43] ]]] if (time = "night")[ if (room = "bedroom") [ ask fenetre 6 [ set color 9 ] ask patches [ if( (pxcor > 0 and pxcor < 16 ) and ( pycor > 5 and pycor < 16) ) [set pcolor 101] ]] if (room = "living room") [ ask fenetre 7 [ set color 9 ]ask patches [ if pxcor < 0 and pxcor > -16 and pycor > -10 and pycor < 6 [set pcolor 101] if ((pxcor > -1 and pxcor < 16) and (pycor > 0 and pycor < 5)) [set pcolor 101]]] if (room = "kitchen") [ ask fenetre 8 [ set color 9 ]ask patches [ if (pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16 [set pcolor 101] ]] if (room = "bathroom") [ ask fenetre 9 [ set color 9 ] ask patches [ if ((pxcor > 0 and pxcor < 16) and (pycor > -10 and pycor < 0) ) [set pcolor 101] ]]] ] if(openwindow-procedure = false)[stop] ] end to closewindow ;;;;; procedure to close windows if (openwindow-procedure = true)[ if (room = "bedroom") [ ask fenetre 6 [ set color 9 ] ask patches [ if( (pxcor > 0 and pxcor < 16 ) and ( pycor > 5 and pycor < 16) ) [set pcolor black] ]] if (room = "living room") [ ask fenetre 7 [ set color 9 ]ask patches [ if pxcor < 0 and pxcor > -16 and pycor > -10 and pycor < 6 [set pcolor black] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; if ((pxcor > -1 and pxcor < 16) and (pycor > 0 and pycor < 5)) [set pcolor black]]] if (room = "kitchen") [ ask fenetre 8 [ set color 9 ]ask patches [ if (pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16 [set pcolor black] ]] if (room = "bathroom") [ ask fenetre 9 [ set color 9 ] ask patches [ if ((pxcor > 0 and pxcor < 16) and (pycor > -10 and pycor < 0) ) [set pcolor black] ]]] if (openwindow-procedure = false ) [stop] end to heat ;;;; procedure qui permet d'allumer les radiateurs selon la temperature set température température if (heat-procedure = true)[ if (température <= 15) [ if (room = "bathroom")[ ask radiateur 22 [ let i 0 let numwave-componentChs 10.0 hatch-wave-componentChs numwave-componentChs [ set color red set size 3 set i i + 1 set amplitude initialewaveamplitudech set waveid nextwaveid set heading i * 30 ] ask wave-componentChs [ if not can-move? 0.5 [ die ] fd 1 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initialewaveamplitudech if amplitude < 0.1 [ die ] ] set nextwaveid nextwaveid + 1]] if (room = "bedroom")[ ask radiateur 21 [ let i 0 let numwave-componentChCs 10.0 hatch-wave-componentChCs numwave-componentChCs [ set color red set size 3 set i i + 1 set amplitude initialewaveamplitudechC set waveid nextwaveid set heading i * 30 ] ask wave-componentChCs [ if not can-move? 0.5 [ die ] fd 1 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initialewaveamplitudechC if amplitude < 0.1 [ die ] ] set nextwaveid nextwaveid + 1]] if (room = "living room")[ ask radiateur 20 [ let i 0 let numwave-componentChSas 10.0 hatch-wave-componentChSas numwave-componentChSas [ set color red set size 3 set i i + 1 set amplitude initialewaveamplitudechSa set waveid nextwaveid set heading i * 30 ] ask wave-componentChSas [ if not can-move? 0.5 [ die ] fd 1 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initialewaveamplitudechSa if amplitude < 0.1 [ die ] ] set nextwaveid nextwaveid + 1]] if (room = "kitchen")[ ask radiateur 19 [let i 0 let numwave-componentChBs 10.0 hatch-wave-componentChBs numwave-componentChBs [ set color red set size 3 set i i + 1 set amplitude initialewaveamplitudechB set waveid nextwaveid set heading i * 30 ] ask wave-componentChBs [ if not can-move? 0.5 [ die ] fd 1 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initialewaveamplitudechB if amplitude < 0.1 [ die ] ] set nextwaveid nextwaveid + 1 ]] ] ]if (heat-procedure = false)[stop] end to light ;; procedure for turning on the lights in the house rooms if (room = "kitchen")[ ask patches with [ (pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16 ] [set pcolor 48] ask patches with [ ((pxcor > -1 and pxcor < 16) and (pycor > 0 and pycor < 5))] [set pcolor 42] ] if (room = "living room")[ ask patches with [ pxcor < 0 and pxcor > -16 and pycor > -10 and pycor < 6] [set pcolor 48] ask patches with [ (pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16 ] [set pcolor 42] ] if (room = "lobby")[ ask patches with [ ((pxcor > -1 and pxcor < 16) and (pycor > 0 and pycor < 5)) ] [set pcolor 48] ] if (room = "garage")[ ask patches with [ (pxcor < -9 and pxcor > -16) and ( pycor < -10 and pycor > -16 )] [set pcolor 48] ] if (room = "bedroom")[ ask patches with [ ( (pxcor > 0 and pxcor < 16 ) and ( pycor > 5 and pycor < 16) ) ][set pcolor 48] ] if (room = "bathroom")[ ask patches with [ ((pxcor > 0 and pxcor < 16) and (pycor > -10 and pycor < 0) )] [set pcolor 48] ] end to turn-off light ;;;;;;;; procedure to turn off the lights in the rooms if (room = "kitchen")[ ask patches with [ (pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16 ] [set pcolor black] ask patches with [ ((pxcor > -1 and pxcor < 16) and (pycor > 0 and pycor < 5))] [set pcolor black] ] if (room = "living room")[ ask patches with [ pxcor < 0 and pxcor > -16 and pycor > -10 and pycor < 6] [set pcolor black] ask patches with [ (pxcor < 0 and pxcor > -16) and pycor > 5 and pycor < 16 ] [set pcolor black] ] if (room = "lobby")[ ask patches with [ ((pxcor > -1 and pxcor < 16) and (pycor > 0 and pycor < 5)) ] [set pcolor black] ] if (room = "garage")[ ask patches with [ (pxcor < -9 and pxcor > -16) and ( pycor < -10 and pycor > -16 )] [set pcolor black] ] if (room = "bedroom")[ ask patches with [ ( (pxcor > 0 and pxcor < 16 ) and ( pycor > 5 and pycor < 16) ) ][set pcolor black] ] if (room = "bathroom")[ ask patches with [ ((pxcor > 0 and pxcor < 16) and (pycor > -10 and pycor < 0) )] [set pcolor black] ] end to driving/parking ;;;;procedure allows to drive the car and to park it if (character = "mohamed" )[ if (hello-packet = 0)[ ask voiture 4 [ if [pcolor] of patch-ahead 4 != gray [ forward 1 ] if( xcor = -4.5 )and (ycor = -13.5)[ ask camera 5 [ create-link-with garage 30] repeat 5 [security] ask patches with [(pxcor < -9 and pxcor > -16) and ( pycor < -10 and pycor > -16 )] [set pcolor 48] ask patches with [ (pxcor = -9 ) and (pycor <= -12 and pycor >= -15 )][ set pcolor black ] ask garage 30 [hide-turtle ]] ask personne 2 [ move-to voiture 4 if ( xcor = -12.5 ) and (ycor = -13.5)[ ask garage 30 [ show-turtle ] move-to patch 1 1 set xcor -12 set ycor -12 ask patches with [(pxcor < -9 and pxcor > -16) and ( pycor < -10 and pycor > -16 )] [ set pcolor 48] ask voiture 4 [ask camera 5 [ repeat 5 [turnCameraOff] ask link 5 30 [hide-link] ] ]]] ask smartphone 48 [ move-to personne 2 hide-turtle ]]] if(hello-packet = 20)[ ;;;;; if the attack is carried out the camera will be out of order the garage will not open ask voiture 4 [ if [pcolor] of patch-ahead 4 != gray [ forward 1 ] if( xcor = -4.5 )and (ycor = -13.5)[ ask patches with [ (pxcor = -9 ) and (pycor <= -12 and pycor >= -15 )][ set pcolor gray ]] ask personne 2 [ move-to voiture 4 ] ask smartphone 48 [ move-to personne 2 hide-turtle ]] ] if ( room = "garage" ) [ port repeat 150 [ask personne 2 [create-link-with smartphone 48 display ]] set time "night" setup ask personne 2 [hide-turtle] ask smartphone 48 [hide-turtle] ask voiture 4 [hide-turtle] ask voiture 60 [hide-turtle] set character "attacker" ] ;;; mohamed goes to the port but the environment switches to the house to simulate the hello flood attack when mohamed is not in his house ] if (travel = "port")[ if (character = "mohamed")[ if room = "lobby"[ set time "night" setup ask personne 2 [ move-to voiture 4 ask smartphone 48 [hide-turtle] ask voiture 4 [ turn-down turn-up turn-left turn-right if [pcolor] of patch-ahead 1 != 3 and [pcolor] of patch-ahead 1 != 108 [ forward 1 ] ]]]] ] end to alert ;; procedure to activate the alarm of the house or port if (travel = "house")[ ask alarme 46 [ hide-turtle ] ask alarme 45 [ let i 0 let numwave-componentalarmes 10.0 hatch-wave-componentalarmes numwave-componentalarmes [ set color red set size 10 set i i + 1 set amplitude initialewaveamplitudealarme set waveid nextwaveidalarme set heading i * -10 ]] set nextwaveidalarme nextwaveidalarme + 1 ask wave-componentalarmes [ if not can-move? 0.5 [ die ] fd 0.2 set amplitude amplitude - 0.7 set color scale-color red amplitude 0 initialewaveamplitudealarme if amplitude < 0.1 [ die ] ]] if (travel = "port")[ ask alarme 86 [ let i 0 let numwave-componentalarmes 10.0 hatch-wave-componentalarmes numwave-componentalarmes [ set color red set size 5 set i i + 1 set amplitude initialewaveamplitudealarme set waveid nextwaveidalarme set heading i * -10 ]] set nextwaveidalarme nextwaveidalarme + 1 ask wave-componentalarmes [ if not can-move? 0.5 [ die ] fd 0.2 set amplitude amplitude - 0.7 set color scale-color red amplitude 0 initialewaveamplitudealarme if amplitude < 0.1 [ die ] ] ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; hello flood attack procedure ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to attack if (firewall = false)[ ;; if the firewall is disabled the attack occurs ;;;;;;;;;; attack outside the house if (travel = "house")[ ask smartphone 47 [create-link-with camera 5 create-link-with dor 29 ] set hello-size hello-size + 64 * hello-frequency ;; hello size increases by 64 bytes compared to hello-frequency set hello-packet hello-packet + hello-frequency ;; hello packet increments by 1 bytes compared to hello-frequency set attack-duration attack-duration - hello-frequency ;; attack-duration decreases by 1 bytes compared to hello-frequency if attack-duration = 19 [ show ("the attacker sends hello packets that circulate on the network targeting the camera attacking the ip address 192.168.1.1 and the front door that has the ip address 192.168.1.15 from his smartphone with the ip address 192.168.1.11 ")] if attack-duration = 0 [ ask smartphone 47 [ask links [die]] ask patches with [ (pxcor <= -6 and pxcor >= -4 ) and (pycor = -10 ) ][set pcolor black] show ("the camera with ip address 192.168.1.1 is down and the door is unlocked")] if attack-duration <= 0 [ask smartphone 47 [ask links [die]] set attack-duration 0 set hello-size cache-max-objet set hello-packet 20 set objet-lifetime 200 ask camera 5 [turnCameraOff ] stop ] tick if objet-lifetime <= 0 [ stop ] set objet-lifetime objet-lifetime - attack-duration if (ticks <= 20 ) [ plot (attack-duration - hello-packet / 20 ) ]] ;;;;;;;;;;;;;; attack inside the home if (travel = "inside the home" ) [ setup-plot ask smartphone 47 [create-link-with radiateur 20 create-link-with radiateur 19 create-link-with climatiseur 26 create-link-with fenetre 7 create-link-with fenetre 8 ] set hello-size hello-size + 64 * hello-frequency set hello-packet hello-packet + hello-frequency set attack-duration attack-duration - hello-frequency if attack-duration = 19 [ show ("the attacker sends hello packets that circulate on the network targeting the radiator, the air conditioner and the window of the living room and the alarm as well as the radiator and the window of the kitchen which have the ip addresses 192.168. 1.7(living room radiator) 192.168.1.8(air conditioner) 192.168.1.17(living room window) 192.168.1.16(alarm) 192.168.1.13(kitchen radiator) 192.168.1.18(kitchen window) from his smartphone with the ip address 192.168.1.11") set travel "house" ask paquet 70 [ repeat 100 [notif]] port if (travel = "port")[ ask paquet 93 [repeat 100 [notif]]] ifelse ( firewall = false) [repeat 100 [ask routeur 85 [ create-link-with smartphone 48 display ] ask link 48 85 [set color red] ] ] [ repeat 100 [ask routeur 85 [ create-link-with smartphone 48 display ] ask link 48 85 [hide-link] ] ] set room "living room" setup light ask voiture 60 [hide-turtle] ask personne 2 [hide-turtle] ask voiture 4 [hide-turtle] ask smartphone 48 [hide-turtle] ask personne 3 [ set xcor -4 set ycor -7 ] ask smartphone 47 [move-to personne 3] set travel "inside the home" set attack-duration 18 set hello-packet 2 set hello-size 128 ] if attack-duration = 0 [ ask smartphone 47 [ask links [die]] show ("the objects with the ip addresses 192.168.1.7 192.168.1.8 192.168.1.13 192.168.1.16 192.168.1.17 192.168.1.18 are down")] if attack-duration <= 0 [ set attack-duration 0 set hello-size cache-max-objet set hello-packet 20 set objet-lifetime 200 ask radiateur 19 [ask wave-componentChBs [die] set heat-procedure "false" ] ask radiateur 20 [ask wave-componentChSas [die]] ask climatiseur 26 [ ask wave-componentCs [die] set clim-procedure "false"] ask fenetre 7 [set color black set openwindow-procedure "false" ] ask fenetre 8 [set color black set openwindow-procedure "false"] ask alarme 45 [ hide-turtle ask wave-componentalarmes [die]] ask fenetre 6 [set color black set openwindow-procedure "false" ] ask alarme 46 [ show-turtle ask wave-componentalarmes [die]] set travel "house" stop ]tick if objet-lifetime <= 0 [ stop ] set objet-lifetime objet-lifetime - attack-duration if (ticks <= 20 ) [ plot (attack-duration - hello-packet / 20 ) ] ] ;;;;;;;;;; attack inside the house bedroom if (travel = "go into the bedroom")[setup-plot ask smartphone 47 [ create-link-with radiateur 21 create-link-with radiateur 22 create-link-with climatiseur 25 create-link-with ordinateur 43 create-link-with fenetre 6 create-link-with fenetre 9 ] set hello-size hello-size + 64 * hello-frequency set hello-packet hello-packet + hello-frequency set attack-duration attack-duration - hello-frequency if attack-duration = 19 [ show ("the attacker sends hello packets which circulate on the network targeting the radiator, the air conditioner, the PC and the bedroom window as well as the radiator and the bathroom window which have the ip address 192.168.1.9 192.168.1.10 192.168.1.12 192.168.1.14 from his smartphone with the ip address 192.168.1.11")] if attack-duration = 0 [ ask smartphone 47 [ask links [die] ] show ("objects with ip addresses 192.168.1.9 192.168.1.10 192.168.1.12 192.168.1.14 are down") show ("the refrigerator equipped with sensor detects the unusual change of temperature in the house due to the radiators and cilmatiseur which are in breakdown and sends a notification to the smartphone of mohamed thanks to the routers") ask refregirateur 49 [ create-link-with routeur 44 ] ask link 44 49 [set color red] ] if attack-duration <= 0 [ set attack-duration 0 set hello-size cache-max-objet set hello-packet 20 set objet-lifetime 200 ask radiateur 21 [ask wave-componentChs [die] set heat-procedure "false"] ask radiateur 22 [ask wave-componentChCs [die] set heat-procedure "false"] ask climatiseur 25 [ask wave-componentCs [die]set clim-procedure "false"] ask ordinateur 43[stop] ask fenetre 6 [set color black set openwindow-procedure "false" ] ask fenetre 9 [set color black set openwindow-procedure "false" ]set travel "house" ask paquet 70 [ repeat 100 [notif]] port if (travel = "port")[ ask paquet 93 [repeat 100 [notif]]] ifelse ( firewall = false) [repeat 100 [ask routeur 85 [ create-link-with smartphone 48 display ] ask link 48 85 [set color red] ] ] [ repeat 100 [ask routeur 85 [ create-link-with smartphone 48 display ] ask link 48 85 [hide-link] ] ] set room "bedroom" setup light set attack-duration 0 set hello-size cache-max-objet set hello-packet 20 set objet-lifetime 200 ask radiateur 21 [ask wave-componentChs [die] set heat-procedure "false"] ask radiateur 22 [ask wave-componentChCs [die] set heat-procedure "false"] ask climatiseur 25 [ask wave-componentCs [die]set clim-procedure "false"] ask ordinateur 43[stop] ask fenetre 6 [set color black set openwindow-procedure "false" ] ask fenetre 9 [set color black set openwindow-procedure "false" ] ask radiateur 19 [ask wave-componentChBs [die] set heat-procedure "false" ] ask radiateur 20 [ask wave-componentChSas [die]] ask climatiseur 26 [ ask wave-componentCs [die] set clim-procedure "false"] ask fenetre 7 [set color black set openwindow-procedure "false" ] ask fenetre 8 [set color black set openwindow-procedure "false"] ask alarme 45 [ hide-turtle ask wave-componentalarmes [die]] ask voiture 60 [hide-turtle] ask personne 2 [hide-turtle] ask voiture 4 [hide-turtle] ask smartphone 48 [hide-turtle] ask personne 3 [ set xcor 8 set ycor 9 ] ask smartphone 47 [move-to personne 3 create-link-with camera 5 [hide-link] create-link-with dor 29 [hide-link]] repeat 21 [attack] stop ]tick if objet-lifetime <= 0 [ ;;; condition to check if the "object-lifetime" variable is less than or equal to zero. If it is, the "stop" command is used to stop the program execution. This means that when the object-lifetime reaches or exceeds zero, the program stops. stop ] set objet-lifetime objet-lifetime - attack-duration if (ticks <= 20 ) [ plot (attack-duration - hello-packet / 20 )] ;;; a condition to check if the number of "ticks" is less than or equal to 20. If it is, the "plot" command is used to draw a graph. The plotted graph is calculated by subtracting the value of "hello-packet" divided by 20 from the "attack-duration" variable. This means that for the first 20 ticks, the graph represents the difference between the attack duration and the "hello" packet divided by 20. ] if (travel = "port")[ ask smartphone 47 [create-link-with camera 40 ] set hello-size hello-size + 64 * hello-frequency set hello-packet hello-packet + hello-frequency set attack-duration attack-duration - hello-frequency if attack-duration = 19 [ show ("the attacker sends hello packets that circulate on the network targeting the camera with the ip address 192.168.1.3 from his smartphone with the ip address 192.168.1.11 ")] if attack-duration = 0 [ ask patches with [ (pxcor <= 1 and pxcor >= -2 ) and (pycor = -13 ) ][set pcolor black] show ("the camera with ip address 192.168.1.3 is down")] if attack-duration <= 0 [ask links [die] set attack-duration 0 set hello-size cache-max-objet set hello-packet 20 set objet-lifetime 200 ask camera 40 [turnCameraOff ] stop ] tick if objet-lifetime <= 0 [ stop ] set objet-lifetime objet-lifetime - attack-duration if (ticks <= 20 ) [ plot (attack-duration - hello-packet / 20 ) ] ] if (travel = "inside the port" ) [ setup-plot set hello-size hello-size + 64 * hello-frequency set hello-packet hello-packet + hello-frequency set attack-duration attack-duration - hello-frequency if attack-duration = 19 [ show ("the attacker sends hello packets that circulate on the network targeting the cameras with the ip address 192.168.1.4 192.168.1.5 192.168.1.6 and the office door as well as the handling-equipment equipped with sensors and the on-board sensor from his smartphone with the ip address 192.168.1.11 ")] if attack-duration = 0 [ ask links [die] show ("the cameras with ip addresses 192.168.1.4 192.168.1.5 192.168.1.6 and the office door and handling-equipment as well as the onboard sensor are down")] if attack-duration <= 0 [ set attack-duration 0 set hello-size cache-max-objet set hello-packet 20 set objet-lifetime 200 ask camera 41 [turnCameraOff ] ask camera 45 [turnCameraOff] ask camera 46 [turnCameraOff] ask porte 83 [set xcor -13 set ycor -9.5 ] ask camion 37 [set load-procedure "false"] ask clark 53 [set load-procedure "false"] ask clark 54 [set load-procedure "false"] ask clark 65 [set load-procedure "false"] ask capteur 51 [set color black] ask capteur 50 [set color black] ask capteur 81 [set color red] set travel "port" stop ]tick if objet-lifetime <= 0 [ stop ] set objet-lifetime objet-lifetime - attack-duration if (ticks <= 20 ) [ plot (attack-duration - hello-packet / 20 ) ] ]] if (firewall = true )[ notif show "the ip address 192.168.1.11 of the attacker is detected and blocked by the firewall" if (travel = "go into the bedroom") [ ask paquet 70 [ repeat 100 [notif]] port if (travel = "port")[ ask paquet 93 [repeat 100 [notif]]] ifelse ( firewall = false) [repeat 100 [ask routeur 85 [ create-link-with smartphone 48 display ] ask link 48 85 [set color red] ] ] [ repeat 100 [ask routeur 85 [ create-link-with smartphone 48 display ] ask link 48 85 [hide-link] ] ] set room "bedroom" setup light ask voiture 60 [hide-turtle] ask personne 2 [hide-turtle] ask voiture 4 [hide-turtle] ask smartphone 48 [hide-turtle] ask personne 3 [ set xcor 8 set ycor 9 ] ask smartphone 47 [move-to personne 3 create-link-with camera 5 [hide-link] create-link-with dor 29 [hide-link]] repeat 21 [attack] stop ]tick if (travel = "inside the home")[ ask paquet 70 [ repeat 100 [notif]] port if (travel = "port")[ ask paquet 93 [repeat 100 [notif]]] ifelse ( firewall = false) [repeat 100 [ask routeur 85 [ create-link-with smartphone 48 display ] ask link 48 85 [set color red] ] ] [ repeat 100 [ask routeur 85 [ create-link-with smartphone 48 display ] ask link 48 85 [hide-link] ] ] set room "living room" setup light ask voiture 60 [hide-turtle] ask personne 2 [hide-turtle] ask voiture 4 [hide-turtle] ask smartphone 48 [hide-turtle] ask personne 3 [ set xcor -4 set ycor -7 ] ask smartphone 47 [move-to personne 3] set travel "inside the home" set attack-duration 18 set hello-packet 2 set hello-size 128 set travel "house" stop] tick ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Environnement port ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to port set travel "port" clear-all reset-ticks set-default-shape wave-components "wave" set-default-shape wave-componentalarmes "alarmewave" set initialewaveamplitudealarme 6 set initial-wave-amplitude 3.5 set wave-interval 3 set load-procedure true ;;;;;;;;;;;;;;; hello flood ;;;;;;;;;;;;;;;;;;;;;; set objet-lifetime 200 setup-plot set hello-packet 0 set attack-duration 20 ; 20 ticks of attack set hello-size 0 ; packet hello with 64 bytes set hello-frequency 1 ; send Hello packets every 1 tick set network-addresses [ "192.168.1.2" "192.168.1.3" "192.168.1.4" "192.168.1.5" "192.168.1.6" "192.168.1.21" "192.168.1.22" "192.168.1.23" "192.168.1.24" "192.168.1.25" "192.168.1.26" "192.168.1.27" "192.168.1.28" "192.168.1.30" "192.168.1.31" "192.168.1.40" ] ; network IP addresses create-bateaux 2 [ ask bateau 0 [ set shape "bat" set size 12 set xcor 11.5 set ycor 10 set color gray set heading 270 ] ask bateau 1 [ set shape "bat2" set size 15 set xcor 12.25 set ycor -7 set color gray set heading 270 ] ] create-personnes 2 [ ask personne 2 [ set shape "person port" set size 1.25;; taile set heading 180 set color blue set xcor -6 set ycor 2 ] ask personne 3 [ set shape "attaquant" set size 1.25 set heading 180 set color white set xcor 3 set ycor -15 ]] create-voitures 1 [ ask voiture 4 [ set shape "car top" set size 3;; taile set heading 270 set color red set xcor -9 set ycor -14.75 ]] create-ancres 2 [ ask ancre 5 [ set shape "ancre" set size 4;; taile set heading 360 set color gray set xcor 8 set ycor 6 ] ask ancre 6 [ set shape "ancre" set size 4;; set heading 360;; set color white set xcor 8 set ycor -11 ]] create-logss 7 [ ask logs 7 [ set shape "logs";; set size 2.5;; set heading 360;; set color gray set xcor -14 set ycor 14 ] ask logs 8 [ set shape "logs";; set size 2.5;; set heading 360;; set color gray set xcor -11 set ycor 14 ] ask logs 9 [ set shape "logs";; set size 2.5;; set heading 360;; set color gray set xcor -8 set ycor 14 ] ask logs 10 [ set shape "logs";; set size 2.5;; set heading 360;; set color gray set xcor -6 set ycor 14 ] ask logs 11 [ set shape "logs";; set size 2.5;; set heading 360;; set color brown set xcor -4 set ycor 14 ] ask logs 12 [ set shape "logs";; set size 2.5;; set heading 360;; set color gray set xcor -2 set ycor 14 ] ask logs 13 [ set shape "logs";; set size 2.5;; set heading 360;; set color brown set xcor 0 set ycor 14 ] ] create-grues 2 [ ask grue 14 [ set shape "grue2";; set size 15;; set heading 0;; set color gray set xcor -9 set ycor -5 ] ask grue 15 [ set shape "grue";; set size 18;; taile set heading 0;; set color gray set xcor 0 set ycor 6 ]] create-boxs 10 [ ask box 16 [ set shape "container";; set size 2.5;; set heading 360;; set color gray set xcor -15 set ycor 9 ] ask box 17 [ set shape "container";; set size 2.5;; set heading 360;; set color brown set xcor -15 set ycor 6 ] ask box 18 [ set shape "container";; set size 2;; set heading 360;; set color blue set xcor 3 set ycor 5 ] ask box 19 [ set shape "container";; set size 3;; taile set heading 360;; set color red set xcor -15 set ycor 4 ] ask box 20 [ set shape "container";; set size 3;; taile set heading 360;; set color gray set xcor -15 set ycor 2 ] ask box 21 [ set shape "container";; set size 3;; taile set heading 360;; set color gray set xcor -15 set ycor -4 ] ask box 22 [ set shape "container";; set size 2;; taile set heading 360;; set color brown set xcor -15 set ycor -6 ] ask box 23 [ set shape "container";; set size 3;; taile set heading 360;; set color gray set xcor -15 set ycor -8 ] ask box 24 [ set shape "container";; set size 2;; taile set heading 360;; set color brown set xcor 2 set ycor -5 ] ask box 25 [ set shape "container";; set size 1.5;; taile set heading 360;; set color gray set xcor 3 set ycor -7 ] ] create-logss 4 [ ask logs 26 [ set shape "logs";; set size 2.5;; taile set heading 360;; set color gray set xcor -12.5 set ycor 14 ] ask logs 27 [ set shape "logs";; set size 2.5;; taile set heading 360;; set color brown set xcor -9.5 set ycor 14 ] ask logs 28 [ set shape "logs";; set size 2.5;; taile set heading 360;; set color gray set xcor 2 set ycor 14 ] ask logs 29 [ set shape "logs";; set size 2.5;; taile set heading 90;; set color gray set xcor -15 set ycor 12 ]] create-boxs 6 [ ask box 30 [ set shape "container";; set size 3;; taile set heading 360;; set color blue set xcor -15 set ycor 8 ] ask box 31 [ set shape "container";; set size 2.5;; taile set heading 360;; set color brown set xcor -15 set ycor 6 ] ask box 32 [ set shape "container";; set size 3;; taile set heading 360;; set color gray set xcor -15 set ycor 7 ] ask box 33 [ set shape "container";; set size 2.5;; taile set heading 360;; set color green set xcor -15 set ycor 5 ] ask box 34 [ set shape "container";; set size 3;; taile set heading 360;; set color blue set xcor 3 set ycor 0 ] ask box 35 [ set shape "container";; set size 3;; taile set heading 360;; set color brown set xcor 3 set ycor -2 ]] create-camions 2 [ ask camion 36 [ set shape "truck top";; set size 3;; taile set heading 360;; set color brown set xcor 5.5 set ycor 3 ] ask camion 37 [ set shape "truck";; set size 3.5;; taile set heading 90;; set color gray set xcor -11 set ycor -7 ]] create-portes 2 [ ask porte 38 [ set shape "porteport";; set size 9;; taile set heading 360;; set color gray set xcor -1 set ycor -14 ] ask porte 39 [ set shape "porteport";; set size 9;; taile set heading 360;; set color gray set xcor 1 set ycor -14 ]] create-cameras 2 [ ask camera 40 [ set shape "camera";; set size 4;; taile set heading 360;; set color gray set xcor -4 set ycor -13.5 set cache-max-objet 1344 set ip-address "192.168.1.3" ] ask camera 41 [ set shape "cam";; set size 3;; taile set heading 360;; set color gray set xcor -9.75 set ycor 4 set cache-max-objet 1344 set ip-address "192.168.1.4" ]] create-poteaux 3 [ ask poteau 42 [ set shape "poteau";; set size 4;; taile set heading 360;; set color gray set xcor -10 set ycor 3 ] ask poteau 43 [ set shape "poteau";; set size 4;; taile set heading 360;; set color gray set xcor -11 set ycor -11.5 ] ask poteau 44 [ set shape "poteau";; set size 4;; taile set heading 360;; set color brown set xcor 6 set ycor 11 ] ] create-cameras 2 [ ask camera 45 [ set shape "cam";; set size 3;; taile set heading 360;; set color gray set xcor -10.75 set ycor -10.5 set cache-max-objet 1344 set ip-address "192.168.1.5" ] ask camera 46 [ set shape "cam";; set size 3;; taile set heading 360;; set color brown set xcor 5.75 set ycor 12 set cache-max-objet 1344 set ip-address "192.168.1.6" ]] create-smartphones 2 [ ask smartphone 47 [ set shape "phone" set size 1 move-to personne 3 set color violet set heading 360 set ip-address "192.168.1.11" ] ask smartphone 48 [ set shape "phone" set size 1 move-to personne 2 set color red set heading 360 set ip-address "192.168.1.2" ] ] create-capteurs 4 [ ask capteur 49 [ set shape "capteur" set size 2.5 set xcor -10.75 set ycor -7 set color gray set heading 360 set ip-address "192.168.1.21" ] ask capteur 50 [ set shape "capteur" set size 3 set xcor -7 set ycor -2 set color gray set heading 360 set ip-address "192.168.1.22" ] ask capteur 51 [ set shape "capteur" set size 3 set xcor -2.25 set ycor 10 set color gray set heading 360 set ip-address "192.168.1.23" ] ask capteur 52 [ set shape "capteur" set size 3 set xcor -3.5 set ycor -13.5 set color gray set heading 360 set ip-address "192.168.1.24" ]] create-clarks 2 [ ask clark 53 [ set shape "clark top" set size 3 set xcor 1 set ycor 3 set color gray set heading 360 set ip-address "192.168.1.25" ] ask clark 54 [ set shape "clark top" set size 3 set xcor -4 set ycor -3 set color red set heading 90 set ip-address "192.168.1.26" ]] create-usines 1 [ ask usine 55 [ set shape "factory" set size 5.5 set xcor 6 set ycor -14.25 set color 109 set heading 180 ] ] create-personnes 3 [ ask personne 56 [ set shape "person port";; set size 1.25;; taile set heading 180;; set color white set xcor -8 set ycor 2 ] ask personne 57 [ set shape "person port";; set size 1.25;; taile set heading 180;; set color red set xcor -5.25 set ycor 11 show-turtle ] ask personne 58 [ set shape "person port";; set size 1.25;; taile set heading 180;; set color yellow set xcor -7.15 set ycor -5 ]] create-planches 6 [ ask planche 59 [ set shape "bois";; set size 5;; taile set heading 180;; set xcor -13 set ycor 12 ] ask planche 60 [ set shape "bois";; set size 5;; taile set heading 180;; set color red set xcor -13 set ycor 11.40 ] ask planche 61 [ set shape "bois";; set size 5;; taile set heading 180;; set color yellow set xcor -13 set ycor 12.60 ] ask planche 62 [ set shape "bois";; set size 5;; taile set heading 180;; set color red set xcor -11 set ycor 12.60 ] ask planche 63 [ set shape "bois";; set size 5;; taile set heading 180;; set color yellow set xcor -11 set ycor 11.40 ] ask planche 64 [ set shape "bois";; set size 5;; taile set heading 180;; set color yellow set xcor -11 set ycor 12 ]] create-clarks 1 [ ask clark 65 [ set shape "clark top" set size 3 set xcor -12 set ycor 10 set color gray set heading 180 set ip-address "192.168.1.30" ]] create-ancres 2 [ ask ancre 66 [ set shape "ancre";; set size 4;; taile set heading 360;; set color gray set xcor 8 set ycor -5 ] ask ancre 67 [ set shape "ancre";; set size 4;; taile set heading 360;; set color white set xcor 8 set ycor 12 ]] create-personnes 3 [ ask personne 68 [ set shape "person port";; set size 1.25;; taile set heading 180;; set color white set xcor -7 set ycor 3 ] ask personne 69 [ set shape "person port";; set size 1.25;; taile set heading 180;; set color red set xcor 5 set ycor -7 ] ask personne 70 [ set shape "person port";; set size 1.25;; taile set heading 180;; set color red set xcor -10 set ycor 7 ]] create-camions 1 [ ask camion 71 [ set shape "truck2";; set size 3.5;; taile set heading 90;; set color gray set xcor 2 set ycor -7 hide-turtle ]] create-boxs 1 [ ask box 72 [ set shape "container";; set size 1.5;; taile set heading 360;; set color gray set xcor -15 set ycor -7 hide-turtle ]] create-planches 3 [ ask planche 73 [ set shape "bois";; set size 3;; taile set heading 90;; set xcor 1 set ycor -3 ] ask planche 74 [ set shape "bois";; set size 3;; taile set heading 90;; set color red set xcor 0.5 set ycor -3 ] ask planche 75 [ set shape "bois";; set size 3;; taile set heading 90;; set color yellow set xcor -16 set ycor -2.75 hide-turtle ]] create-clarks 1 [ ask clark 76 [ set shape "clark top" set size 3 set xcor -1 set ycor -3 set color gray set heading 270 hide-turtle ]] create-planches 4 [ ask planche 77 [ set shape "bois";; set size 3;; taile set heading 90;; set xcor 3 set ycor 8 ] ask planche 78 [ set shape "bois";; set size 3;; taile set heading 90;; set color red set xcor 3 set ycor 9 ] ask planche 79 [ set shape "bois";; set size 3;; taile set heading 90;; set color yellow set xcor -9 set ycor 11 hide-turtle ask planche 80 [ set shape "bois";; set size 3;; taile set heading 90;; set color yellow set xcor -14 set ycor 0 hide-turtle ] ]] create-capteurs 1 [ ask capteur 81 [ set shape "capteur2" set size 2.5 set xcor 8 set ycor 0 set color green set heading 360 set ip-address "192.168.1.27" ]] create-bateaux 1 [ ask bateau 82 [ set shape "bat" set size 12 set xcor 11.5 set ycor 5 set color gray set heading 270 hide-turtle ]] create-portes 1 [ ask porte 83 [ set shape "portebureau";; set size 3.25;; taile set heading 90;; set color gray set xcor -13.25 set ycor -10 set ip-address "192.168.1.28" ]] create-ordinateurs 1 [ ask ordinateur 84 [ set shape "pc2" set size 1.75 set xcor -15.5 set ycor -12 set color blue set heading 90 set ip-address "192.168.1.31" ]] create-routeurs 1 [ ask routeur 85 [ set shape "routeur" set size 2 set xcor -14.25 set ycor -12.25 set color gray set heading 180 ] ] create-alarmes 1 [ ask alarme 86 [ set shape "alarme2" set size 1.75 set xcor -13.5 set ycor -11 set color black set heading 270 set ip-address "192.168.1.40" ]] create-books 1 [ ask book 87 [ set shape "book" set size 1 set xcor -16 set ycor -10 set color gray set heading 90 ]] create-paquets 6 [ ask paquet 88 [ set shape "paquet" set size 1 set xcor -16 set ycor -15 set color white set heading 360 ] ask paquet 89 [ set shape "paquet" set size 1 set xcor -15.25 set ycor -14.5 set color white set heading 360 ] ask paquet 90 [ set shape "paquet" set size 1 set xcor -14.75 set ycor -13.85 set color white set heading 360 ] ask paquet 91 [ set shape "paquet" set size 1 set xcor -14.25 set ycor -13.3 set color white set heading 360 ] ask paquet 92 [ set shape "paquet" set size 1 set xcor -14 set ycor -12.65 set color white set heading 360 ] ask paquet 93 [ set shape "paquet" set size 1 set xcor -16 set ycor -15 set color red set heading 360 hide-turtle] ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; patches port ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ask patches with [(pxcor <= 16 and pxcor >= 9 ) and (pycor >= -16 ) ][set pcolor 108 ] ;;; patch sea ask patches with [(pxcor <= 8 and pxcor >= 3 ) and (pycor >= -16 ) ][set pcolor gray ] if (time = "morning")[ ask patches [ ask patches with [(pxcor <= 4 and pxcor >= -16 ) and (pycor >= -16 ) ] [set pcolor 48 ] ] ask patches [ if (pxcor > -17 and pxcor < -2 ) and pycor = -13 [ set pcolor 3] if (pxcor < 9 and pxcor > 1 ) and pycor = -13 [ set pcolor 3 ]] ask patches [ if (pxcor > -17 and pxcor <= -13 ) and (pycor > -13 and pycor <= -10) [ set pcolor black]] ask patches [ if (pxcor > -17 and pxcor <= -13 ) and (pycor = -12) [ set pcolor brown]] ask patches with [ (pxcor = max-pxcor ) or (pycor = max-pycor ) ] [ set pcolor 108 ] ask patches with [ pxcor <= 3 and pycor = -17 ] [ set pcolor 49 ] ;; ask patches with [ pxcor >= 9 and pycor = -16 ] [ set pcolor gray ] ask patches [ if (pxcor = -13 ) and (pycor <= -11 and pycor >= -12) [ set pcolor 3] if (pxcor <= -13 and pxcor >= -16 ) and pycor = -9 [ set pcolor 3 ]] ] if (time = "night")[ ask patches [ ask patches with [(pxcor <= 16 and pxcor >= 9 ) and (pycor >= -16 ) ][set pcolor 102 ] ask patches with [(pxcor <= 4 and pxcor >= -16 ) and (pycor >= -16 ) ] [set pcolor black ]] ask patches [ if (pxcor > -17 and pxcor < -2 ) and pycor = -13 [ set pcolor 3 ] if (pxcor < 9 and pxcor > 1 ) and pycor = -13 [ set pcolor 3 ]] ask patches [ if (pxcor > -17 and pxcor <= -13 ) and (pycor = -12) [ set pcolor brown]] ask patches [ if (pxcor = -13 ) and (pycor <= -11 and pycor >= -12) [ set pcolor 3] if (pxcor <= -13 and pxcor >= -16 ) and pycor = -9 [ set pcolor 3 ]] ask patches with [ (pxcor = max-pxcor ) or (pycor = max-pycor ) ] [ set pcolor 102 ]] end to security-port ;;; procedure to turn on the port surveillance cameras if (hello-packet = 0)[ ask camera 40 [ let j 0 let num-wave-components 150.0 hatch-wave-components num-wave-components [ set color red set size 0.5 set j j + 1 set amplitude initial-wave-amplitude set wave-id next-wave-id set heading j * ( 270.0 / num-wave-components ) ] set next-wave-id next-wave-id + 1 ] ask wave-components [ fd 0.5 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initial-wave-amplitude if amplitude < 0.5 [ die ]] ask camera 41 [ let j 0 let num-wave-components 150.0 hatch-wave-components num-wave-components [ set color red set size 0.5 set j j + 1 set amplitude initial-wave-amplitude set wave-id next-wave-id set heading j * ( 270.0 / num-wave-components ) ] set next-wave-id next-wave-id + 1 ] ask wave-components [ fd 0.5 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initial-wave-amplitude if amplitude < 0.5 [ die ]] ask camera 45 [ let j 0 let num-wave-components 150.0 ;; number of components in each wave hatch-wave-components num-wave-components [ set color red set size 0.5 set j j + 1 set amplitude initial-wave-amplitude set wave-id next-wave-id set heading j * ( 270.0 / num-wave-components ) ; if show-amplitudes? [ hide-turtle ] ] set next-wave-id next-wave-id + 1 ] ask wave-components [ fd 0.5 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initial-wave-amplitude if amplitude < 0.5 [ die ]] ask camera 46 [ let j 0 let num-wave-components 150.0 ;; number of components in each wave hatch-wave-components num-wave-components [ set color red set size 0.5 set j j + 1 set amplitude initial-wave-amplitude set wave-id next-wave-id set heading j * ( 270.0 / num-wave-components ) ; if show-amplitudes? [ hide-turtle ] ] set next-wave-id next-wave-id + 1 ] ask wave-components [ fd 0.5 set amplitude amplitude - 0.5 set color scale-color red amplitude 0 initial-wave-amplitude if amplitude < 0.5 [ die ]]] end to loader/unloader/accoster ; procedure that allows handling-equipment and vessel to move and load/unload cargo if ( travel = "port")[ if (load-procedure = true )[ if ( handling-equipment = "top crane" ) [ ] if ( handling-equipment = "truck" ) [ set character "mohamed" ask camion 37 [if [pcolor] of patch-ahead 1 != 3 and [pcolor] of patch-ahead 1 != 108 [ forward 1 ] if (xcor = 2 and ycor = -7)[ ask camion 71 [show-turtle] ask camion 37 [hide-turtle] ask box 25 [hide-turtle] set handling-equipment "top crane" set character "attacker" ] ]ask capteur 49 [ move-to camion 37]] if(character = "attacker")[ ask camion 71 [if [pcolor] of patch-ahead 1 != 3 and [pcolor] of patch-ahead 1 != 108 [ forward -1 ] ask capteur 49 [move-to camion 71] if (xcor = -12 and ycor = -7 )[ ask camion 37 [show-turtle set xcor -12 set ycor -7] ask camion 71 [hide-turtle] ask box 72 [show-turtle] ask capteur 49 [hide-turtle] ] ]] if (handling-equipment = "bottom clarks" )[ set character "mohamed" if (room = "bedroom")[stop] ask clark 54 [if [pcolor] of patch-ahead 1 != 3 and [pcolor] of patch-ahead 1 != 108 [ forward 1 ] if (xcor = -1 and ycor = -3)[ hide-turtle ask clark 76 [ show-turtle] ask planche 74 [ hide-turtle ] set room "living room" ] ] if(room = "living room")[ ask clark 76 [if [pcolor] of patch-ahead 1 != 3 and [pcolor] of patch-ahead 1 != 108 [ forward 1 ] if (xcor = -12 and ycor = -3)[ ask clark 54 [show-turtle set xcor -12 set ycor -3 ] ask clark 76 [hide-turtle] ask planche 75 [show-turtle] set room "bedroom" ] ]] ] if (handling-equipment = "top clarks" )[ set character "mohamed" if (room = "lobby")[ stop] ask clark 65 [ if [pcolor] of patch-ahead 1 != 3 and [pcolor] of patch-ahead 1 != 108 [ forward 1 ] if (xcor = -12 and ycor = 8)[ set heading 90 ] if (xcor = 2 and ycor = 8)[ ask planche 77 [hide-turtle ] set heading 360 ] if (xcor = 2 and ycor = 11)[ set heading 270 ] if (xcor = -6 and ycor = 11)[ ask planche 79 [ show-turtle ]set room "lobby"] ] ] if (handling-equipment = "middle clarks" )[ set character "mohamed" if (room = "kitchen")[ stop] ask clark 53 [ if [pcolor] of patch-ahead 1 != 3 and [pcolor] of patch-ahead 1 != 108 [ forward 1 ] if (xcor = 1 and ycor = 9)[ set heading 90 ] if (xcor = 2 and ycor = 9)[ ask planche 78 [hide-turtle ] set heading 360 ] if (xcor = 2 and ycor = 11)[ set heading 270 ] if (xcor = -1 and ycor = 11)[set heading 180] if (xcor = -1 and ycor = 0)[ set heading 270 ] if (xcor = -12 and ycor = 0)[ ask planche 80 [ show-turtle ]set room "kitchen"] ] ] if (handling-equipment = "ship" )[ set character "mohamed" if (room = "garage")[stop] ask bateau 0 [set heading 180 if [pcolor] of patch-ahead 1 != 3 [ forward 1 ] if (xcor = 11.5 and ycor = 5)[ show ("The ship has exceeded the limit between each ship in the dock") ask capteur 81 [ set color red create-link-with smartphone 48 ] show ("the sensor detects an unusual distance between the two ships when docking") show ("the sensor sends a notification to mohamed's smartphone to inform him of this state") show("mohamed asks the ship's commander to respect the distance") hide-turtle ask bateau 82 [ show-turtle] set room "bathroom" ] ] if(room = "bathroom")[ ask bateau 82 [set heading 180 if [pcolor] of patch-ahead 1 != 3 [ forward -1 ] if (xcor = 11.5 and ycor = 10)[ ask capteur 81 [set color green] show ("the ship's commander respects the distance") set room "garage" stop ] ]] ] ]] if (load-procedure = "false")[stop] end to notif ;; procedure to notify mohamed that an intruder has accessed his house when he is at work (sending packets from the house router to the port router) if (firewall = false) [ if (travel = "house")[ ask paquet 70 [ show-turtle move-to one-of other paquets] display ] if (travel = "port")[ ask paquet 93 [ show-turtle move-to one-of other paquets ] display ]] if (firewall = true)[ if (travel = "house" or travel = "go into the bedroom" or travel = "inside the home" ) [ask paquet 74 [show-turtle move-to paquet 69 move-to paquet 68 move-to paquet 67 ] display ]] end @#$#@#$#@ GRAPHICS-WINDOW 210 10 647 448 -1 -1 13.0 1 10 1 1 1 0 1 0 1 -16 16 -16 16 1 1 1 ticks 30.0 BUTTON 0 28 63 61 NIL setup NIL 1 T OBSERVER NIL M NIL NIL 1 BUTTON 71 160 134 193 NIL go NIL 1 T OBSERVER NIL 5 NIL NIL 1 BUTTON 139 29 202 62 NIL move NIL 1 T OBSERVER NIL NIL NIL NIL 1 CHOOSER 658 184 796 229 character character "mohamed" "attacker" 0 BUTTON 7 417 82 450 NIL security T 1 T OBSERVER NIL NIL NIL NIL 1 SLIDER 8 332 180 365 température température 0 40 20.0 1 1 NIL HORIZONTAL BUTTON 16 290 79 323 NIL clim T 1 T OBSERVER NIL NIL NIL NIL 1 BUTTON 0 376 101 409 NIL openwindow NIL 1 T OBSERVER NIL NIL NIL NIL 1 BUTTON 95 290 174 323 NIL heat T 1 T OBSERVER NIL NIL NIL NIL 1 CHOOSER 0 69 206 114 travel travel "house" "inside the home" "sit on a chair" "go into the bedroom" "in front of the bedroom door" "go into the bathroom" "to the lobby" "to take a bath" "in front of the front door" "go to sleep" "port" "in front of the port gate" "inside the port" 0 BUTTON 11 251 82 284 NIL light NIL 1 T OBSERVER NIL NIL NIL NIL 1 CHOOSER 78 460 216 505 room room "living room" "kitchen" "lobby" "bedroom" "bathroom" "garage" 3 BUTTON 96 251 198 284 NIL turn-off light NIL 1 T OBSERVER NIL NIL NIL NIL 1 BUTTON 0 160 71 193 NIL turn-left NIL 1 T OBSERVER NIL 4 NIL NIL 0 BUTTON 134 160 206 193 NIL turn-right NIL 1 T OBSERVER NIL 6 NIL NIL 1 BUTTON 659 239 799 272 NIL driving/parking NIL 1 T OBSERVER NIL NIL NIL NIL 1 CHOOSER 656 279 794 324 time time "morning" "night" 0 BUTTON 69 193 135 226 NIL turn-down\n NIL 1 T OBSERVER NIL 2 NIL NIL 1 BUTTON 72 127 135 160 NIL turn-up NIL 1 T OBSERVER NIL 8 NIL NIL 1 BUTTON 110 421 183 454 NIL alert T 1 T OBSERVER NIL NIL NIL NIL 1 BUTTON 104 375 205 408 NIL closewindow NIL 1 T OBSERVER NIL NIL NIL NIL 1 BUTTON 663 62 726 95 NIL port NIL 1 T OBSERVER NIL P NIL NIL 1 BUTTON 950 360 1016 393 NIL attack NIL 1 T OBSERVER NIL H NIL NIL 1 MONITOR 949 230 1013 275 NIL hello-size 17 1 11 MONITOR 950 306 1048 351 NIL attack-duration 17 1 11 BUTTON 730 61 833 94 NIL security-port T 1 T OBSERVER NIL NIL NIL NIL 1 SLIDER 1121 309 1293 342 hello-frequency hello-frequency 1 20 1.0 1 1 NIL HORIZONTAL MONITOR 1111 236 1191 281 NIL hello-packet 17 1 11 PLOT 904 51 1226 218 Objet Lifetime hello-packet attack-duration 0.0 20.0 0.0 20.0 true true "" "" PENS "batterie" 1.0 1 -7500403 true "" "" TEXTBOX 710 33 860 51 Port 11 0.0 1 TEXTBOX 72 10 222 28 Smarthome 11 0.0 1 TEXTBOX 1046 24 1196 42 Hello Flood Attack\n 11 0.0 1 CHOOSER 655 98 818 143 handling-equipment handling-equipment "top crane" "bottom crane" "top clarks" "middle clarks" "bottom clarks" "truck" "ship" 0 BUTTON 660 146 847 179 NIL loader/unloader/accoster NIL 1 T OBSERVER NIL NIL NIL NIL 1 BUTTON 769 465 832 498 NIL notif T 1 T OBSERVER NIL NIL NIL NIL 1 SWITCH 1019 360 1123 393 firewall firewall 1 1 -1000 TEXTBOX 1135 362 1285 488 Rules PFsense :\n-------------------------------------\nRule 1 :\nIP-Address source : Any [X] \nAction : Block\nRule 2 : \nIP-Address dest : Any [X]\nAction : Block 11 0.0 0 @#$#@#$#@ ## WHAT IS IT? (a general understanding of what the model is trying to show or explain) ## HOW IT WORKS (what rules the agents use to create the overall behavior of the model) ## HOW TO USE IT (how to use the model, including a description of each of the items in the Interface tab) ## THINGS TO NOTICE (suggested things for the user to notice while running the model) ## THINGS TO TRY (suggested things for the user to try to do (move sliders, switches, etc.) with the model) ## EXTENDING THE MODEL (suggested things to add or change in the Code tab to make the model more complicated, detailed, accurate, etc.) ## NETLOGO FEATURES (interesting or unusual features of NetLogo that the model uses, particularly in the Code tab; or where workarounds were needed for missing features) ## RELATED MODELS (models in the NetLogo Models Library and elsewhere which are of related interest) ## CREDITS AND REFERENCES (a reference to the model's URL on the web if it has one, as well as any other necessary credits, citations, and links) @#$#@#$#@ 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 alarme true 0 Circle -16777216 true false 110 65 78 Rectangle -1 true false 122 124 176 160 alarme2 true 0 Circle -2674135 true false 110 65 78 Rectangle -1 true false 122 124 176 160 alarmewave true 0 Line -7500403 true 210 135 75 135 ancre true 0 Circle -16777216 true false 62 63 78 Rectangle -1 true false 76 121 130 157 Rectangle -6459832 true false 77 117 255 127 Line -16777216 false 140 127 147 116 Line -16777216 false 162 126 169 115 Line -16777216 false 186 125 190 116 Line -16777216 false 207 127 212 117 Line -16777216 false 228 125 235 114 Line -16777216 false 84 126 88 117 Line -16777216 false 101 125 106 116 Line -16777216 false 120 125 125 115 apple false 0 Polygon -7500403 true true 33 58 0 150 30 240 105 285 135 285 150 270 165 285 195 285 255 255 300 150 268 62 226 43 194 36 148 32 105 35 Line -16777216 false 106 55 151 62 Line -16777216 false 157 62 209 57 Polygon -6459832 true false 152 62 158 62 160 46 156 30 147 18 132 26 142 35 148 46 Polygon -16777216 false false 132 25 144 38 147 48 151 62 158 63 159 47 155 30 147 18 armoire true 0 Polygon -7500403 true true 121 178 166 178 181 133 106 133 121 178 Rectangle -1 true false 191 147 191 150 Rectangle -1 true false 107 106 178 136 Line -1 false 112 139 173 139 Line -1 false 113 141 124 174 Line -1 false 171 140 161 172 Line -1 false 125 173 159 173 Circle -16777216 true false 141 147 4 Circle -16777216 true false 141 158 3 Circle -16777216 true false 141 168 2 arrow true 0 Polygon -7500403 true true 150 0 0 150 105 150 105 293 195 293 195 150 300 150 attaquant false 0 Polygon -7500403 true true 180 195 120 195 90 285 105 300 135 300 150 225 165 300 195 300 210 285 Polygon -2674135 true false 120 90 105 90 60 195 90 210 120 150 120 195 180 195 180 150 210 210 240 195 195 90 180 90 165 105 150 165 135 105 120 90 Polygon -2674135 true false 123 90 149 141 177 90 Rectangle -7500403 true true 123 76 176 92 Circle -7500403 true true 110 5 80 Line -13345367 false 121 90 194 90 Line -16777216 false 148 143 150 196 Rectangle -2674135 true false 116 186 182 198 Circle -1 true false 152 143 9 Circle -1 true false 152 166 9 Rectangle -16777216 true false 179 164 183 186 Polygon -2674135 true false 180 90 195 90 183 160 180 195 150 195 150 135 180 90 Polygon -2674135 true false 120 90 105 90 114 161 120 195 150 195 150 135 120 90 Rectangle -2674135 true false 118 129 141 140 Circle -16777216 true false 114 9 72 Circle -1 true false 133 30 10 Circle -1 true false 157 30 10 Circle -1 true false 142 53 14 Circle -2674135 true false 144 55 10 bain true 0 Rectangle -1 false false 84 89 242 133 Rectangle -7500403 true true 79 75 244 149 Circle -7500403 true true 43 75 74 Circle -7500403 true true 209 75 74 Rectangle -11221820 true false 80 89 243 135 Rectangle -5825686 true false 62 101 70 96 Rectangle -5825686 true false 76 127 76 137 Polygon -13791810 false false 120 105 118 104 111 102 123 115 Polygon -13791810 false false 130 112 Polygon -1184463 true false 114 112 127 106 128 115 120 118 120 115 124 113 122 108 118 113 127 117 119 115 bainvide true 0 Rectangle -1 false false 84 89 242 133 Rectangle -7500403 true true 79 75 244 149 Circle -7500403 true true 43 75 74 Circle -7500403 true true 209 75 74 Rectangle -5825686 true false 62 101 70 96 Rectangle -5825686 true false 76 127 76 137 Polygon -13791810 false false 120 105 118 104 111 102 123 115 Polygon -13791810 false false 130 112 Polygon -1184463 true false 114 112 127 106 128 115 120 118 120 115 124 113 122 108 118 113 127 117 119 115 Rectangle -1 true false 85 89 243 134 bat false 0 Polygon -6459832 true false 191 56 100 56 83 97 84 251 118 293 170 293 192 251 194 56 Polygon -7500403 true true 184 67 101 65 90 92 91 250 122 282 168 282 184 254 183 59 Rectangle -955883 true false 138 88 169 103 Rectangle -13345367 true false 144 130 169 145 Polygon -6459832 true false 176 243 99 243 123 273 162 276 176 255 177 244 Rectangle -6459832 true false 98 119 130 133 Rectangle -6459832 true false 140 113 167 123 Rectangle -10899396 true false 101 141 126 152 Rectangle -6459832 true false 141 149 169 161 Rectangle -1 true false 95 89 126 105 Line -16777216 false 149 145 149 130 Line -16777216 false 155 144 155 131 Line -16777216 false 161 144 161 130 Line -16777216 false 99 105 99 89 Line -16777216 false 109 105 109 88 Line -16777216 false 116 105 116 87 Line -16777216 false 122 104 122 89 Line -16777216 false 109 132 109 119 Line -16777216 false 116 131 116 119 Rectangle -2674135 true false 101 159 130 169 Rectangle -13791810 true false 142 168 170 180 Rectangle -13345367 true false 102 177 130 190 Circle -16777216 true false 129 247 24 Line -16777216 false 144 102 144 87 Line -16777216 false 152 102 152 88 Line -16777216 false 159 102 159 87 Line -16777216 false 165 102 165 87 Line -16777216 false 123 131 123 119 Line -16777216 false 103 132 103 119 Line -16777216 false 146 123 146 112 Line -16777216 false 104 104 104 89 Line -16777216 false 153 122 153 111 Line -16777216 false 160 121 160 111 Line -16777216 false 165 144 165 130 Line -16777216 false 105 152 105 141 Line -16777216 false 112 152 112 142 Line -16777216 false 117 153 117 141 Line -16777216 false 122 153 122 142 Line -16777216 false 147 160 147 151 Line -16777216 false 155 160 155 150 Line -16777216 false 162 160 162 149 Line -16777216 false 109 168 109 157 Line -16777216 false 115 167 115 156 Line -16777216 false 123 168 123 158 Line -16777216 false 119 168 119 158 Line -16777216 false 151 178 151 167 Line -16777216 false 157 179 157 168 Line -16777216 false 163 179 163 169 Line -16777216 false 145 180 145 168 Line -16777216 false 123 190 123 179 Line -16777216 false 117 178 117 190 Line -16777216 false 112 191 112 177 Line -16777216 false 107 190 107 180 Rectangle -7500403 true true 66 210 105 228 Rectangle -6459832 true false 66 210 92 215 Rectangle -6459832 true false 66 224 89 228 Line -16777216 false 70 226 70 213 Line -16777216 false 76 224 76 213 Line -16777216 false 82 225 82 213 bat2 false 0 Polygon -13345367 true false 191 56 100 56 83 97 84 251 118 293 170 293 192 251 194 56 Polygon -7500403 true true 184 68 101 66 90 93 91 251 122 283 168 283 184 255 183 60 Rectangle -955883 true false 160 73 175 97 Rectangle -1 true false 148 104 173 119 Polygon -1 true false 175 244 98 244 122 274 161 277 175 256 176 245 Rectangle -6459832 true false 102 92 134 106 Rectangle -6459832 true false 146 142 177 156 Rectangle -10899396 true false 101 113 134 124 Rectangle -16777216 true false 147 124 175 136 Rectangle -13345367 true false 102 74 133 90 Rectangle -1184463 true false 104 135 131 146 Rectangle -13345367 true false 147 162 176 173 Rectangle -1 true false 106 157 117 182 Circle -16777216 true false 131 247 24 Rectangle -7500403 true true 58 186 103 210 Rectangle -6459832 true false 58 186 91 192 Rectangle -6459832 true false 58 205 91 211 Line -16777216 false 62 205 62 192 Line -16777216 false 70 205 70 191 Line -16777216 false 78 205 78 192 Rectangle -7500403 true true 139 76 152 92 Rectangle -10899396 true false 141 75 151 95 Rectangle -2674135 true false 124 154 139 179 Line -16777216 false 107 89 107 76 Line -16777216 false 114 75 114 89 Line -16777216 false 121 76 121 89 Line -16777216 false 127 90 127 74 Line -16777216 false 141 78 149 78 Line -16777216 false 141 89 149 89 Line -16777216 false 140 84 149 84 Line -16777216 false 175 79 159 79 Line -16777216 false 175 85 159 84 Line -16777216 false 175 91 160 91 Line -16777216 false 107 105 107 94 Line -16777216 false 113 105 113 94 Line -16777216 false 119 106 119 94 Line -16777216 false 126 105 126 95 Line -16777216 false 152 117 152 103 Line -16777216 false 157 117 157 103 Line -16777216 false 162 119 162 103 Line -16777216 false 107 126 107 113 Line -16777216 false 167 118 167 102 Line -16777216 false 115 124 115 114 Line -16777216 false 123 124 123 112 Line -16777216 false 129 124 129 113 Line -16777216 false 109 145 109 135 Line -16777216 false 115 144 115 134 Line -16777216 false 120 145 120 135 Line -16777216 false 125 146 125 135 Line -16777216 false 153 156 153 141 Line -16777216 false 160 156 160 143 Line -16777216 false 167 155 167 141 Line -16777216 false 174 154 174 143 Line -16777216 false 152 174 152 163 Line -16777216 false 159 173 159 161 Line -16777216 false 165 173 165 161 Line -16777216 false 171 161 171 173 Line -16777216 false 105 161 117 161 Line -16777216 false 105 167 117 167 Line -16777216 false 106 178 117 178 Line -16777216 false 106 172 117 172 Line -16777216 false 125 158 138 158 Line -16777216 false 124 168 138 168 Line -16777216 false 123 173 140 173 Line -16777216 false 123 163 139 163 bateau false 0 Polygon -16777216 false false 225 150 120 180 60 165 60 270 75 300 150 270 195 225 Polygon -7500403 true true 61 0 46 270 31 270 16 240 1 225 1 60 46 15 Polygon -1 true false 225 150 120 180 60 165 60 270 75 300 150 270 195 225 Line -16777216 false 60 150 60 120 Polygon -16777216 false false 61 0 1 60 1 225 16 240 31 270 46 270 Rectangle -7500403 true true 57 86 102 161 Rectangle -1 true false 58 9 102 82 Rectangle -7500403 true true 102 39 147 129 Rectangle -1 true false 148 57 193 147 bidet true 0 Rectangle -1 true false 98 98 203 174 Rectangle -1 true false 105 101 200 175 Circle -7500403 true true 75 84 150 Rectangle -7500403 true true 75 76 225 166 Rectangle -1 true false 105 107 197 172 Circle -1 true false 105 118 92 Circle -11221820 true false 122 123 60 boat 3 false 0 Polygon -1 true false 63 162 90 207 223 207 290 162 Rectangle -6459832 true false 150 32 157 162 Polygon -13345367 true false 150 34 131 49 145 47 147 48 149 49 Polygon -7500403 true true 158 37 172 45 188 59 202 79 217 109 220 130 218 147 204 156 158 156 161 142 170 123 170 102 169 88 165 62 Polygon -7500403 true true 149 66 142 78 139 96 141 111 146 139 148 147 110 147 113 131 118 106 126 71 boat top true 0 Polygon -7500403 true true 150 1 137 18 123 46 110 87 102 150 106 208 114 258 123 286 175 287 183 258 193 209 198 150 191 87 178 46 163 17 Rectangle -16777216 false false 129 92 170 178 Rectangle -16777216 false false 120 63 180 93 Rectangle -7500403 true true 133 89 165 165 Polygon -11221820 true false 150 60 105 105 150 90 195 105 Polygon -16777216 false false 150 60 105 105 150 90 195 105 Rectangle -16777216 false false 135 178 165 262 Polygon -16777216 false false 134 262 144 286 158 286 166 262 Line -16777216 false 129 149 171 149 Line -16777216 false 166 262 188 252 Line -16777216 false 134 262 112 252 Line -16777216 false 150 2 149 62 boat top2 true 0 Polygon -7500403 true true 150 1 137 18 123 46 110 87 102 150 106 208 114 258 123 286 175 287 183 258 193 209 198 150 191 87 178 46 163 17 Rectangle -16777216 false false 129 92 170 178 Rectangle -16777216 false false 120 63 180 93 Rectangle -7500403 true true 133 89 165 165 Polygon -11221820 true false 150 60 105 105 150 90 195 105 Polygon -16777216 false false 150 60 105 105 150 90 195 105 Rectangle -16777216 false false 135 178 165 262 Polygon -16777216 false false 134 262 144 286 158 286 166 262 Line -16777216 false 129 149 171 149 Line -16777216 false 166 262 188 252 Line -16777216 false 134 262 112 252 Line -16777216 false 150 2 149 62 bois true 0 Rectangle -6459832 true false 45 120 210 150 Rectangle -13791810 true false 45 120 60 150 Rectangle -13791810 true false 195 120 210 150 book false 0 Polygon -7500403 true true 30 195 150 255 270 135 150 75 Polygon -7500403 true true 30 135 150 195 270 75 150 15 Polygon -7500403 true true 30 135 30 195 90 150 Polygon -1 true false 39 139 39 184 151 239 156 199 Polygon -1 true false 151 239 254 135 254 90 151 197 Line -7500403 true 150 196 150 247 Line -7500403 true 43 159 138 207 Line -7500403 true 43 174 138 222 Line -7500403 true 153 206 248 113 Line -7500403 true 153 221 248 128 Polygon -1 true false 159 52 144 67 204 97 219 82 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 bulldozer top true 0 Rectangle -7500403 true true 195 60 255 255 Rectangle -16777216 false false 195 60 255 255 Rectangle -7500403 true true 45 60 105 255 Rectangle -16777216 false false 45 60 105 255 Line -16777216 false 45 75 255 75 Line -16777216 false 45 105 255 105 Line -16777216 false 45 60 255 60 Line -16777216 false 45 240 255 240 Line -16777216 false 45 225 255 225 Line -16777216 false 45 195 255 195 Line -16777216 false 45 150 255 150 Polygon -1184463 true true 90 60 75 90 75 240 120 255 180 255 225 240 225 90 210 60 Polygon -16777216 false false 225 90 210 60 211 246 225 240 Polygon -16777216 false false 75 90 90 60 89 246 75 240 Polygon -16777216 false false 89 247 116 254 183 255 211 246 211 211 90 210 Rectangle -16777216 false false 90 60 210 90 Rectangle -1184463 true true 180 30 195 90 Rectangle -16777216 false false 105 30 120 90 Rectangle -1184463 true true 105 45 120 90 Rectangle -16777216 false false 180 45 195 90 Polygon -16777216 true false 195 105 180 120 120 120 105 105 Polygon -16777216 true false 105 199 120 188 180 188 195 199 Polygon -16777216 true false 195 120 180 135 180 180 195 195 Polygon -16777216 true false 105 120 120 135 120 180 105 195 Line -1184463 true 105 165 195 165 Circle -16777216 true false 113 226 14 Polygon -1184463 true true 105 15 60 30 60 45 240 45 240 30 195 15 Polygon -16777216 false false 105 15 60 30 60 45 240 45 240 30 195 15 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 cafe true 0 Circle -1 true false 169 154 22 Circle -7500403 true true 172 157 16 Rectangle -1 true false 132 140 181 210 Circle -1 true false 132 113 50 Circle -16777216 true false 139 120 34 Circle -1 true false 131 175 50 Rectangle -1 true false 133 173 181 209 cafe2 true 0 Circle -1 true false 169 154 22 Circle -7500403 true true 172 157 16 Rectangle -1 true false 132 140 181 210 Circle -1 true false 132 113 50 Circle -1 true false 139 120 34 Circle -1 true false 131 175 50 Rectangle -1 true false 133 173 181 209 cafetiere true 0 Rectangle -2674135 true false 106 111 166 231 Circle -1 true false 106 82 60 Rectangle -16777216 true false 111 205 160 224 Rectangle -2674135 true false 106 81 166 106 Rectangle -16777216 true false 132 145 137 158 cam true 0 Rectangle -7500403 true true 90 75 135 165 Circle -7500403 false true 120 150 0 Circle -1 false false 107 79 28 Circle -16777216 true false 108 80 26 Circle -2674135 true false 118 113 14 camera true 0 Rectangle -7500403 true true 90 75 135 165 Circle -7500403 false true 120 150 0 Circle -1 false false 106 136 28 Circle -16777216 true false 107 137 26 Circle -2674135 true false 91 150 14 capteur true 0 Circle -1 false false 122 79 42 Rectangle -7500403 true true 105 60 180 90 Circle -1 true false 122 78 42 Rectangle -2674135 true false 134 96 152 107 Circle -2674135 true false 130 96 10 Circle -2674135 true false 147 96 10 capteur2 true 0 Rectangle -7500403 true true 105 120 165 180 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 car police true 0 Polygon -7500403 true true 90 117 71 134 228 133 210 117 Polygon -13345367 true false 150 8 118 10 96 17 85 30 84 264 89 282 105 293 149 294 192 293 209 282 215 265 214 31 201 17 179 10 Circle -1 true false 132 192 36 Polygon -16777216 true false 92 126 103 117 193 117 202 125 178 147 118 147 Polygon -16777216 true false 90 270 105 255 105 150 90 135 Polygon -16777216 true false 101 279 120 286 180 286 198 281 195 270 105 270 Polygon -16777216 true false 210 270 195 255 195 150 210 135 Polygon -1 true false 201 16 201 26 179 20 179 10 Polygon -1 true false 99 16 99 26 121 20 121 10 Line -16777216 false 130 14 168 14 Line -16777216 false 130 18 168 18 Line -16777216 false 130 11 168 11 Line -16777216 false 185 29 194 112 Line -16777216 false 115 29 106 112 Line -7500403 true 210 180 195 180 Line -7500403 true 195 225 210 240 Line -7500403 true 105 225 90 240 Line -7500403 true 90 180 105 180 Circle -2674135 true false 135 195 30 car top true 0 Polygon -7500403 true true 151 8 119 10 98 25 86 48 82 225 90 270 105 289 150 294 195 291 210 270 219 225 214 47 201 24 181 11 Polygon -16777216 true false 210 195 195 210 195 135 210 105 Polygon -16777216 true false 105 255 120 270 180 270 195 255 195 225 105 225 Polygon -16777216 true false 90 195 105 210 105 135 90 105 Polygon -1 true false 205 29 180 30 181 11 Line -7500403 false 210 165 195 165 Line -7500403 false 90 165 105 165 Polygon -16777216 true false 121 135 180 134 204 97 182 89 153 85 120 89 98 97 Line -16777216 false 210 90 195 30 Line -16777216 false 90 90 105 30 Polygon -1 true false 95 29 120 30 119 11 car2 false 0 Polygon -7500403 true true 0 180 21 164 39 144 60 135 74 132 87 106 97 84 115 63 141 50 165 50 225 60 300 150 300 165 300 225 0 225 0 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 cargar true 0 Polygon -7500403 true true 292 151 290 119 275 98 252 86 75 82 30 90 11 105 6 150 9 195 30 210 75 219 253 214 276 201 289 181 Polygon -16777216 true false 105 210 90 195 165 195 195 210 Polygon -16777216 true false 45 105 30 120 30 180 45 195 75 195 75 105 Polygon -16777216 true false 105 90 90 105 165 105 195 90 Polygon -1 true false 271 205 270 180 289 181 Line -7500403 true 210 165 195 165 Line -7500403 true 90 165 105 165 Polygon -16777216 true false 165 121 166 180 203 204 211 182 215 153 211 120 203 98 Line -16777216 false 210 210 270 195 Line -16777216 false 210 90 270 105 Polygon -1 true false 271 95 270 120 289 119 carlux true 0 Polygon -7500403 true true 8 149 10 181 25 202 48 214 225 218 270 210 289 195 294 150 291 105 270 90 225 81 47 86 24 99 11 119 Polygon -16777216 true false 195 90 210 105 135 105 105 90 Polygon -16777216 true false 255 195 270 180 270 120 255 105 225 105 225 195 Polygon -16777216 true false 195 210 210 195 135 195 105 210 Polygon -1 true false 29 95 30 120 11 119 Line -7500403 true 210 165 195 165 Line -7500403 true 90 165 105 165 Polygon -16777216 true false 135 179 134 120 97 96 89 118 85 147 89 180 97 202 Line -16777216 false 90 90 30 105 Line -16777216 false 90 210 30 195 Polygon -1 true false 29 205 30 180 11 181 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 clark true 0 Polygon -16777216 false false 105 15 60 30 60 45 240 45 240 30 195 15 Rectangle -7500403 true true 195 60 255 255 Rectangle -16777216 false false 195 60 255 255 Rectangle -7500403 true true 45 60 105 255 Rectangle -16777216 false false 45 60 105 255 Line -16777216 false 45 75 255 75 Line -16777216 false 45 105 255 105 Line -16777216 false 45 60 255 60 Line -16777216 false 45 240 255 240 Line -16777216 false 45 225 255 225 Line -16777216 false 45 195 255 195 Line -16777216 false 45 150 255 150 Polygon -1184463 true false 90 60 75 90 75 240 120 255 180 255 225 240 225 90 210 60 Polygon -16777216 false false 225 90 210 60 211 246 225 240 Polygon -16777216 false false 75 90 90 60 89 246 75 240 Polygon -16777216 false false 89 247 116 254 183 255 211 246 211 211 90 210 Rectangle -16777216 false false 90 60 210 90 Rectangle -1184463 true false 180 30 195 90 Rectangle -16777216 false false 105 30 120 90 Rectangle -1184463 true false 105 45 120 90 Rectangle -16777216 false false 180 45 195 90 Polygon -16777216 true false 195 120 180 135 120 135 105 120 Polygon -16777216 true false 105 184 120 173 180 173 195 184 Polygon -16777216 true false 195 120 180 135 180 180 195 195 Polygon -16777216 true false 105 120 120 135 120 180 105 195 Line -1184463 false 105 165 195 165 Circle -16777216 true false 143 151 14 Polygon -1184463 true false 105 17 60 32 60 47 240 47 240 32 195 17 Rectangle -1184463 true false 225 45 225 45 Rectangle -16777216 true false 71 41 230 44 Rectangle -16777216 true false 71 36 230 39 Rectangle -16777216 true false 70 31 229 34 Rectangle -16777216 true false 87 24 213 27 clark top true 0 Rectangle -7500403 true true 195 60 240 255 Rectangle -16777216 false false 195 60 240 255 Rectangle -7500403 true true 60 60 105 255 Line -16777216 false 45 75 255 75 Line -16777216 false 45 105 255 105 Line -16777216 false 45 60 255 60 Line -16777216 false 45 240 255 240 Line -16777216 false 45 225 255 225 Line -16777216 false 45 195 255 195 Line -16777216 false 45 150 255 150 Polygon -955883 true false 90 60 75 90 75 240 120 255 180 255 225 240 225 90 210 60 Polygon -16777216 false false 89 247 116 254 183 255 211 246 211 211 90 210 Rectangle -16777216 false false 90 60 210 90 Rectangle -7500403 true true 180 15 195 90 Rectangle -16777216 false false 105 30 120 90 Rectangle -7500403 true true 105 15 120 90 Polygon -16777216 true false 195 105 180 120 120 120 105 105 Polygon -16777216 true false 105 199 120 188 180 188 195 199 Polygon -16777216 true false 195 120 180 135 180 180 195 195 Polygon -16777216 true false 105 120 120 135 120 180 105 195 Line -955883 false 105 165 195 165 Circle -16777216 true false 113 226 14 Rectangle -7500403 true true 75 15 225 45 Rectangle -6459832 true false 84 22 215 35 Rectangle -13791810 true false 208 25 213 34 clim true 0 Rectangle -7500403 true true 75 105 210 165 Line -1 false 90 135 195 135 Line -1 false 90 150 195 150 Line -1 false 90 142 195 142 coffre true 0 Rectangle -7500403 true true 120 135 180 180 Circle -1 true false 154 147 16 Rectangle -16777216 true false 120 105 180 135 Circle -16777216 true false 156 149 12 coffreouvert true 0 Rectangle -7500403 true true 120 135 180 180 Rectangle -16777216 true false 120 105 180 135 Rectangle -1 true false 126 141 175 173 Rectangle -1184463 true false 152 163 165 172 Polygon -1184463 true false 171 147 171 147 151 147 168 149 168 146 157 145 Rectangle -1184463 true false 162 153 173 160 Rectangle -10899396 true false 131 155 143 157 Rectangle -10899396 true false 131 152 143 154 Rectangle -10899396 true false 130 149 142 151 Rectangle -10899396 true false 130 158 139 160 Rectangle -10899396 true false 129 162 139 165 Rectangle -10899396 true false 130 166 140 169 Rectangle -10899396 true false 130 166 140 169 Rectangle -10899396 true false 130 169 140 172 Rectangle -1184463 true false 148 153 158 161 coffrevide true 0 Rectangle -7500403 true true 120 135 180 180 Rectangle -16777216 true false 120 105 180 135 Rectangle -1 true false 126 141 175 173 container false 0 Rectangle -7500403 false false 0 75 300 225 Rectangle -7500403 true true 0 75 300 225 Line -16777216 false 0 210 300 210 Line -16777216 false 0 90 300 90 Line -16777216 false 150 90 150 210 Line -16777216 false 120 90 120 210 Line -16777216 false 90 90 90 210 Line -16777216 false 240 90 240 210 Line -16777216 false 270 90 270 210 Line -16777216 false 30 90 30 210 Line -16777216 false 60 90 60 210 Line -16777216 false 210 90 210 210 Line -16777216 false 180 90 180 210 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 factory false 0 Rectangle -7500403 true true 75 120 285 270 Rectangle -7500403 true true 36 95 59 231 Rectangle -16777216 true false 90 150 270 180 Line -7500403 true 90 195 90 255 Line -7500403 true 120 135 120 195 Line -7500403 true 150 150 150 195 Line -7500403 true 180 135 180 195 Line -7500403 true 210 150 210 180 Line -7500403 true 240 150 240 180 Line -7500403 true 90 165 270 165 Circle -1 true false 37 73 32 Circle -1 true false 55 38 54 Circle -1 true false 96 21 42 Circle -1 true false 105 40 32 Circle -1 true false 129 19 42 Rectangle -7500403 true true 14 228 78 270 fauteuil1 true 0 Rectangle -7500403 true true 120 75 150 165 Rectangle -1 true false 115 107 129 129 Circle -7500403 true true 120 151 30 Rectangle -1 true false 115 135 129 159 Circle -7500403 true true 120 62 30 Rectangle -1 true false 115 79 130 101 Circle -1 false false 124 69 22 Circle -1 false false 126 154 20 Line -1 false 145 76 145 163 Line -1 false 124 97 126 152 Rectangle -7500403 true true 132 82 144 101 Rectangle -7500403 true true 143 142 145 158 Rectangle -7500403 true true 131 156 143 167 Rectangle -7500403 true true 130 150 142 164 Line -1 false 145 135 145 165 fauteuil2 true 0 Rectangle -1 true false 191 147 191 150 Circle -1 true false 188 137 78 Polygon -7500403 true true 207 207 249 208 264 163 189 163 204 208 Rectangle -7500403 true true 191 129 262 159 fenetre true 0 Rectangle -7500403 true true 139 75 150 151 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 flower budding false 0 Polygon -7500403 true true 135 120 165 165 180 210 180 240 150 300 165 300 195 240 195 195 165 135 Polygon -7500403 true true 189 233 219 188 249 173 279 188 234 218 Polygon -7500403 true true 180 255 150 210 105 210 75 240 135 240 Polygon -7500403 true true 180 150 180 120 165 97 135 84 128 121 147 148 165 165 Polygon -7500403 true true 170 155 131 163 175 167 196 136 frigo true 0 Rectangle -7500403 true true 106 45 151 150 Line -1 false 150 75 105 75 Rectangle -16777216 true false 117 51 139 66 Line -10899396 false 124 54 124 62 Circle -2674135 true false 135 54 2 Rectangle -1 true false 144 96 146 106 frigoouvert false 0 Rectangle -7500403 true true 106 45 151 150 Line -1 false 150 75 105 75 Rectangle -16777216 true false 117 51 139 66 Line -10899396 false 124 54 124 62 Circle -2674135 true false 135 54 2 Rectangle -1 true false 144 96 146 106 Rectangle -11221820 true false 110 83 146 143 Line -7500403 true 147 97 111 97 Line -7500403 true 150 120 105 120 Rectangle -11221820 true false 105 135 150 135 Rectangle -13791810 true false 107 134 148 143 Line -7500403 true 146 108 107 108 Rectangle -1 true false 156 86 156 96 Rectangle -1 true false 135 85 141 98 garage true 0 Rectangle -1 true false 75 93 225 198 Rectangle -7500403 true true 79 98 219 108 Rectangle -7500403 true true 80 111 219 121 Rectangle -7500403 true true 80 124 220 134 Rectangle -7500403 true true 80 138 220 148 Rectangle -7500403 true true 80 152 220 162 Rectangle -7500403 true true 80 165 220 175 Rectangle -7500403 true true 80 178 220 188 Rectangle -2674135 true false 213 112 227 125 garbage can false 0 Polygon -16777216 false false 60 240 66 257 90 285 134 299 164 299 209 284 234 259 240 240 Rectangle -7500403 true true 60 75 240 240 Polygon -7500403 true true 60 238 66 256 90 283 135 298 165 298 210 283 235 256 240 238 Polygon -7500403 true true 60 75 66 57 90 30 135 15 165 15 210 30 235 57 240 75 Polygon -7500403 true true 60 75 66 93 90 120 135 135 165 135 210 120 235 93 240 75 Polygon -16777216 false false 59 75 66 57 89 30 134 15 164 15 209 30 234 56 239 75 235 91 209 120 164 135 134 135 89 120 64 90 Line -16777216 false 210 120 210 285 Line -16777216 false 90 120 90 285 Line -16777216 false 125 131 125 296 Line -16777216 false 65 93 65 258 Line -16777216 false 175 131 175 296 Line -16777216 false 235 93 235 258 Polygon -16777216 false false 112 52 112 66 127 51 162 64 170 87 185 85 192 71 180 54 155 39 127 36 grue true 0 Rectangle -1184463 true false 75 255 150 270 Rectangle -7500403 false true 105 105 120 255 Line -7500403 true 120 240 105 240 Line -7500403 true 120 225 105 225 Line -7500403 true 120 210 105 210 Line -7500403 true 120 195 105 195 Line -7500403 true 120 180 105 180 Line -7500403 true 120 165 105 165 Line -7500403 true 120 150 105 150 Line -7500403 true 120 135 105 135 Line -7500403 true 120 120 105 120 Rectangle -1184463 true false 105 60 120 105 Polygon -16777216 true false 106 60 108 39 116 38 119 61 Rectangle -7500403 false true 30 60 105 75 Line -7500403 true 90 75 90 60 Line -7500403 true 75 75 75 60 Line -7500403 true 45 75 45 60 Line -7500403 true 108 39 74 51 Line -7500403 true 92 62 107 47 Rectangle -7500403 false true 119 63 265 74 Line -7500403 true 167 74 167 64 Line -7500403 true 180 74 180 62 Line -7500403 true 195 74 195 63 Line -7500403 true 210 74 210 63 Line -7500403 true 226 74 226 64 Line -7500403 true 241 73 241 63 Line -7500403 true 256 75 256 63 Line -7500403 true 219 74 219 109 Line -7500403 true 207 73 207 109 Rectangle -1184463 true false 205 109 221 122 Polygon -16777216 true false 206 122 210 135 216 135 220 122 Line -7500403 true 212 134 208 144 Line -7500403 true 207 145 212 150 Line -7500403 true 213 152 215 147 Line -7500403 true 203 62 118 47 Line -7500403 true 116 37 243 62 Line -7500403 true 150 75 150 63 Line -7500403 true 134 62 135 75 Rectangle -1184463 true false 52 45 69 61 Rectangle -1184463 true false 51 75 69 87 Rectangle -1184463 true false 69 45 74 87 Rectangle -1184463 true false 49 45 53 87 grue2 true 0 Rectangle -1184463 true false 150 255 225 270 Rectangle -7500403 false true 180 105 195 255 Line -7500403 true 180 240 195 240 Line -7500403 true 180 225 195 225 Line -7500403 true 180 210 195 210 Line -7500403 true 180 195 195 195 Line -7500403 true 180 180 195 180 Line -7500403 true 180 165 195 165 Line -7500403 true 180 150 195 150 Line -7500403 true 180 135 195 135 Line -7500403 true 180 120 195 120 Rectangle -1184463 true false 180 60 195 105 Polygon -16777216 true false 194 60 192 39 184 38 181 61 Rectangle -7500403 false true 195 60 270 75 Line -7500403 true 90 75 90 60 Line -7500403 true 75 75 75 60 Line -1 false 60 75 60 60 Line -7500403 true 45 75 45 60 Rectangle -1184463 true false 225 50 247 84 Line -7500403 true 192 39 226 51 Line -7500403 true 208 62 193 47 Rectangle -7500403 false true 35 63 181 74 Line -7500403 true 167 74 167 64 Line -7500403 true 180 74 180 62 Line -7500403 true 105 74 105 63 Line -7500403 true 90 74 90 63 Line -7500403 true 74 74 74 64 Line -7500403 true 241 73 241 63 Line -7500403 true 44 75 44 63 Line -7500403 true 81 74 81 109 Line -7500403 true 93 73 93 109 Rectangle -1184463 true false 79 109 95 122 Polygon -16777216 true false 94 122 90 135 84 135 80 122 Line -7500403 true 88 134 92 144 Line -7500403 true 93 145 88 150 Line -7500403 true 87 152 85 147 Line -7500403 true 97 62 182 47 Line -7500403 true 184 37 57 62 Line -7500403 true 150 75 150 63 Line -7500403 true 134 62 135 75 Rectangle -7500403 true true 229 57 243 79 Line -7500403 true 210 75 210 60 Line -7500403 true 255 75 255 60 Line -7500403 true 121 75 121 63 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 lander 2 true 0 Polygon -7500403 true true 135 205 120 235 180 235 165 205 Polygon -16777216 false false 135 205 120 235 180 235 165 205 Line -7500403 true 75 30 195 30 Polygon -7500403 true true 195 150 210 165 225 165 240 150 240 135 225 120 210 120 195 135 Polygon -16777216 false false 195 150 210 165 225 165 240 150 240 135 225 120 210 120 195 135 Polygon -7500403 true true 75 75 105 45 195 45 225 75 225 135 195 165 105 165 75 135 Polygon -16777216 false false 75 75 105 45 195 45 225 75 225 120 225 135 195 165 105 165 75 135 Polygon -16777216 true false 217 90 210 75 180 60 180 90 Polygon -16777216 true false 83 90 90 75 120 60 120 90 Polygon -16777216 false false 135 165 120 135 135 75 150 60 165 75 180 135 165 165 Circle -7500403 true true 120 15 30 Circle -16777216 false false 120 15 30 Line -7500403 true 150 0 150 45 Polygon -1184463 true false 90 165 105 210 195 210 210 165 Line -1184463 false 210 165 245 239 Line -1184463 false 237 221 194 207 Rectangle -1184463 true false 221 245 261 238 Line -1184463 false 90 165 55 239 Line -1184463 false 63 221 106 207 Rectangle -1184463 true false 39 245 79 238 Polygon -16777216 false false 90 165 105 210 195 210 210 165 Rectangle -16777216 false false 221 237 262 245 Rectangle -16777216 false false 38 237 79 245 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 lit true 0 Rectangle -7500403 true true 60 45 240 255 Rectangle -1 true false 76 62 136 107 Rectangle -1 true false 157 62 217 106 Rectangle -5825686 true false 60 120 240 255 Rectangle -8630108 true false 55 210 25 225 Rectangle -5825686 true false 81 66 132 102 Rectangle -5825686 true false 162 66 213 101 Rectangle -1 true false 61 121 240 134 Rectangle -5825686 false false 76 61 137 108 Rectangle -5825686 false false 156 60 218 107 Polygon -7500403 true true 240 45 240 45 249 52 249 124 240 123 Rectangle -1 true false 240 123 249 136 Polygon -5825686 true false 248 135 248 135 249 261 240 255 Rectangle -5825686 true false 236 135 247 239 logs false 0 Polygon -7500403 true true 15 241 75 271 89 245 135 271 150 246 195 271 285 121 235 96 255 61 195 31 181 55 135 31 45 181 49 183 Circle -1 true false 132 222 66 Circle -16777216 false false 132 222 66 Circle -1 true false 72 222 66 Circle -1 true false 102 162 66 Circle -7500403 true true 222 72 66 Circle -7500403 true true 192 12 66 Circle -7500403 true true 132 12 66 Circle -16777216 false false 102 162 66 Circle -16777216 false false 72 222 66 Circle -1 true false 12 222 66 Circle -16777216 false false 30 240 30 Circle -1 true false 42 162 66 Circle -16777216 false false 42 162 66 Line -16777216 false 195 30 105 180 Line -16777216 false 255 60 165 210 Circle -16777216 false false 12 222 66 Circle -16777216 false false 90 240 30 Circle -16777216 false false 150 240 30 Circle -16777216 false false 120 180 30 Circle -16777216 false false 60 180 30 Line -16777216 false 195 270 285 120 Line -16777216 false 15 240 45 180 Line -16777216 false 45 180 135 30 machinelaver true 0 Rectangle -7500403 true true 60 44 240 224 Rectangle -1 true false 75 60 107 75 Circle -1 true false 96 81 108 Circle -16777216 true false 225 60 0 Rectangle -16777216 true false 195 60 195 75 Rectangle -16777216 true false 195 60 195 75 Circle -16777216 false false 96 81 108 Circle -16777216 true false 218 62 10 Circle -16777216 true false 198 62 10 Circle -16777216 true false 179 62 10 Circle -1 true false 138 52 22 Circle -16777216 true false 110 98 74 Line -16777216 false 148 54 149 61 Line -7500403 true 91 60 91 75 meuble true 0 Rectangle -6459832 true false 75 45 210 255 Rectangle -16777216 true false 180 105 210 180 Polygon -6459832 true false 210 255 225 270 225 60 210 45 Polygon -6459832 true false 75 240 210 240 225 255 Polygon -6459832 true false 225 270 90 270 75 255 210 255 Line -16777216 false 71 254 206 254 Line -16777216 false 210 255 225 270 Line -16777216 false 210 255 210 45 Rectangle -16777216 true false 97 127 120 255 Rectangle -16777216 true false 75 127 96 256 Line -7500403 true 135 165 135 45 Line -7500403 true 180 120 180 120 Line -7500403 true 165 165 165 255 Line -7500403 true 180 45 180 105 meuble2 true 0 Polygon -6459832 true false 73 180 164 178 179 133 58 135 119 178 Rectangle -1 true false 191 147 191 150 Rectangle -16777216 true false 60 106 178 135 Circle -16777216 true false 141 158 3 Circle -16777216 true false 141 168 2 Polygon -7500403 true true 75 180 60 135 Polygon -7500403 true true 118 176 Polygon -6459832 true false 120 178 74 178 60 135 Rectangle -16777216 true false 95 137 132 151 Rectangle -16777216 true false 130 156 168 170 Line -7500403 true 129 165 71 164 meuble3 true 0 Polygon -6459832 true false 166 180 215 181 227 134 155 135 166 179 Rectangle -1 true false 191 147 191 150 Rectangle -16777216 true false 156 104 227 134 Circle -16777216 true false 141 158 3 Circle -16777216 true false 141 168 2 Rectangle -16777216 true false 49 104 120 134 Polygon -6459832 true false 63 179 108 179 120 135 48 134 63 179 Rectangle -16777216 true false 120 104 157 134 paquet false 0 Rectangle -7500403 true true 30 90 270 225 Rectangle -16777216 false false 30 90 270 225 Line -16777216 false 270 105 150 180 Line -16777216 false 30 105 150 180 Line -16777216 false 270 225 181 161 Line -16777216 false 30 225 119 161 paquetperdu false 0 Rectangle -7500403 true true 30 90 270 225 Rectangle -16777216 false false 30 90 270 225 Line -16777216 false 270 105 150 180 Line -16777216 false 30 105 150 180 Line -16777216 false 270 225 181 161 Line -16777216 false 30 225 119 161 Polygon -2674135 true false 270 45 255 30 30 270 45 285 270 45 Polygon -2674135 true false 15 45 15 45 30 30 270 270 255 285 15 45 15 45 pc false 0 Rectangle -7500403 true true 60 45 240 180 Polygon -7500403 true true 90 180 105 195 135 195 135 210 165 210 165 195 195 195 210 180 Rectangle -16777216 true false 75 60 225 165 Rectangle -7500403 true true 45 210 255 255 Rectangle -10899396 true false 249 223 237 217 Line -16777216 false 60 225 120 225 pc2 false 0 Rectangle -7500403 true true 60 165 240 300 Polygon -7500403 true true 90 165 105 150 135 150 135 135 165 135 165 150 195 150 210 165 Rectangle -16777216 true false 75 180 225 285 Rectangle -7500403 true true 45 90 255 135 Rectangle -10899396 true false 249 223 237 217 Line -16777216 false 60 225 120 225 Rectangle -1 true false 90 0 210 90 Rectangle -1 true false 105 15 105 30 Rectangle -16777216 true false 95 34 107 90 Rectangle -16777216 true false 115 35 127 90 Rectangle -16777216 true false 134 35 147 90 Rectangle -16777216 true false 154 36 166 90 Rectangle -16777216 true false 174 36 187 90 Rectangle -16777216 true false 193 36 205 90 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 person business false 0 Rectangle -1 true false 120 90 180 180 Polygon -13345367 true false 135 90 150 105 135 180 150 195 165 180 150 105 165 90 Polygon -7500403 true true 120 90 105 90 60 195 90 210 116 154 120 195 90 285 105 300 135 300 150 225 165 300 195 300 210 285 180 195 183 153 210 210 240 195 195 90 180 90 150 165 Circle -7500403 true true 110 5 80 Rectangle -7500403 true true 127 76 172 91 Line -16777216 false 172 90 161 94 Line -16777216 false 128 90 139 94 Polygon -13345367 true false 195 225 195 300 270 270 270 195 Rectangle -13791810 true false 180 225 195 300 Polygon -14835848 true false 180 226 195 226 270 196 255 196 Polygon -13345367 true false 209 202 209 216 244 202 243 188 Line -16777216 false 180 90 150 165 Line -16777216 false 120 90 150 165 person police false 0 Polygon -1 true false 124 91 150 165 178 91 Polygon -13345367 true false 134 91 149 106 134 181 149 196 164 181 149 106 164 91 Polygon -13345367 true false 180 195 120 195 90 285 105 300 135 300 150 225 165 300 195 300 210 285 Polygon -13345367 true false 120 90 105 90 60 195 90 210 116 158 120 195 180 195 184 158 210 210 240 195 195 90 180 90 165 105 150 165 135 105 120 90 Rectangle -7500403 true true 123 76 176 92 Circle -7500403 true true 110 5 80 Polygon -13345367 true false 150 26 110 41 97 29 137 -1 158 6 185 0 201 6 196 23 204 34 180 33 Line -13345367 false 121 90 194 90 Line -16777216 false 148 143 150 196 Rectangle -16777216 true false 116 186 182 198 Rectangle -16777216 true false 109 183 124 227 Rectangle -16777216 true false 176 183 195 205 Circle -1 true false 152 143 9 Circle -1 true false 152 166 9 Polygon -1184463 true false 172 112 191 112 185 133 179 133 Polygon -1184463 true false 175 6 194 6 189 21 180 21 Line -1184463 false 149 24 197 24 Rectangle -16777216 true false 101 177 122 187 Rectangle -16777216 true false 179 164 183 186 person port false 0 Rectangle -7500403 true true 123 76 176 95 Polygon -1 true false 105 90 60 195 90 210 115 162 184 163 210 210 240 195 195 90 Polygon -13345367 true false 180 195 120 195 90 285 105 300 135 300 150 225 165 300 195 300 210 285 Circle -7500403 true true 110 5 80 Line -16777216 false 148 143 150 196 Rectangle -16777216 true false 116 186 182 198 Circle -1 true false 152 143 9 Circle -1 true false 152 166 9 Rectangle -16777216 true false 179 164 183 186 Polygon -955883 true false 180 90 195 90 195 165 195 195 150 195 150 120 180 90 Polygon -955883 true false 120 90 105 90 105 165 105 195 150 195 150 120 120 90 Rectangle -16777216 true false 135 114 150 120 Rectangle -16777216 true false 135 144 150 150 Rectangle -16777216 true false 135 174 150 180 Polygon -955883 true false 105 42 111 16 128 2 149 0 178 6 190 18 192 28 220 29 216 34 201 39 167 35 Polygon -16777216 true false 45 225 45 195 60 165 75 165 105 195 105 210 75 225 personnepyj false 0 Circle -13345367 true false 110 5 80 Polygon -10899396 true false 105 90 120 195 90 285 105 300 135 300 150 225 165 300 195 300 210 285 180 195 195 90 Rectangle -13345367 true false 127 79 172 94 Polygon -13345367 true false 195 90 240 150 225 180 165 105 Polygon -13345367 true false 105 90 60 150 75 180 135 105 Polygon -10899396 true false 105 90 120 195 90 285 105 300 135 300 150 225 165 300 195 300 210 285 180 195 195 90 Circle -13345367 true false 110 5 80 Circle -13345367 true false 110 5 80 Polygon -13345367 true false 105 90 60 150 75 180 135 105 Polygon -13345367 true false 195 90 240 150 225 180 165 105 Polygon -10899396 true false 105 90 120 195 90 285 105 300 135 300 150 225 165 300 195 300 210 285 180 195 195 90 Circle -13345367 true false 110 5 80 Polygon -13345367 true false 105 90 60 150 75 180 135 105 Polygon -13345367 true false 195 90 240 150 225 180 165 105 Polygon -10899396 true false 105 90 120 195 90 285 105 300 135 300 150 225 165 300 195 300 210 285 180 195 195 90 phone true 0 Rectangle -7500403 true true 105 90 165 210 Rectangle -16777216 true false 107 93 163 195 Circle -16777216 true false 131 197 11 plan true 0 Rectangle -6459832 true false 75 90 210 120 Rectangle -7500403 true true 60 75 75 195 Rectangle -7500403 true true 75 75 210 90 Rectangle -6459832 true false 75 118 90 195 Rectangle -7500403 false true 189 96 203 116 Rectangle -7500403 false true 173 96 187 116 Rectangle -7500403 false true 109 96 123 116 Rectangle -7500403 false true 93 96 107 116 Circle -16777216 true false 192 106 2 Circle -16777216 true false 150 103 2 Rectangle -6459832 true false 152 105 153 105 Circle -16777216 true false 148 105 4 Rectangle -6459832 true false 147 103 154 114 Circle -16777216 true false 164 182 2 Polygon -1 true false 61 145 61 167 71 161 71 149 63 146 61 148 60 148 Line -16777216 false 61 155 67 155 Line -7500403 true 90 120 75 90 Rectangle -16777216 true false 131 96 163 117 Rectangle -1 false false 130 96 163 117 Line -2674135 false 153 103 153 100 Rectangle -16777216 false false 131 76 163 89 Line -16777216 false 147 77 147 87 Line -16777216 false 131 82 162 82 Rectangle -1 true false 91 76 107 82 Rectangle -16777216 true false 91 82 106 91 Line -2674135 false 94 85 94 84 plan2 true 0 Rectangle -7500403 true true 105 60 150 75 Rectangle -6459832 true false 105 75 150 105 Rectangle -7500403 false true 129 82 142 99 Rectangle -7500403 false true 114 82 127 99 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 plant maison false 0 Circle -16777216 true false 102 195 99 Circle -6459832 true false 118 211 66 Rectangle -7500403 true true 135 107 165 242 Polygon -7500403 true true 135 165 90 120 45 105 75 165 135 195 Polygon -7500403 true true 165 165 210 120 255 105 225 165 165 195 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 134 108 119 63 149 33 179 63 164 108 porte true 0 Rectangle -6459832 true false 105 66 195 231 Circle -16777216 true false 174 141 12 Rectangle -16777216 false false 115 75 192 225 portebureau true 0 Rectangle -7500403 true true 105 66 195 231 Circle -16777216 true false 174 141 12 Rectangle -16777216 false false 109 75 192 224 portegarage true 0 Rectangle -7500403 true true 105 75 150 165 Rectangle -16777216 true false 109 77 114 102 Rectangle -16777216 true false 109 105 114 133 Rectangle -16777216 true false 109 136 114 164 Rectangle -16777216 false false 133 76 147 100 Rectangle -16777216 false false 133 106 147 130 Rectangle -16777216 false false 133 137 147 161 Circle -16777216 true false 146 119 6 porteport true 0 Circle -16777216 true false 120 124 30 Rectangle -7500403 true true 96 44 176 196 Rectangle -7500403 false true 150 75 150 150 Rectangle -1 true false 133 105 138 138 Rectangle -1 true false 124 110 148 115 Circle -1 true false 121 77 28 Circle -7500403 true true 126 81 18 Circle -13345367 true false 120 120 30 Rectangle -1 true false 133 118 138 151 Circle -1 true false 116 117 38 Circle -7500403 true true 117 115 36 Rectangle -1 true false 133 116 138 149 Rectangle -1 false false 110 60 162 175 porteso true 0 Rectangle -7500403 true true 105 60 165 165 Rectangle -7500403 false true 150 75 150 150 Rectangle -16777216 false false 121 77 151 152 Circle -16777216 true false 153 104 10 Line -16777216 false 122 77 107 60 Line -16777216 false 121 151 104 165 Line -16777216 false 151 149 166 164 poteau true 0 Rectangle -7500403 true true 105 30 135 255 radiateur true 0 Rectangle -1 true false 45 60 75 150 Rectangle -1 true false 90 60 120 150 Rectangle -1 true false 135 60 165 150 Rectangle -1 true false 180 60 210 150 Line -1 false 45 60 210 60 robinet true 7 Rectangle -1 true false 40 84 245 211 Rectangle -1 true false 150 75 150 75 Rectangle -1 true false 150 75 150 105 Rectangle -7500403 true false 61 106 223 191 Circle -1 true false 126 135 30 Line -16777216 false 157 150 127 150 Line -16777216 false 140 134 140 164 Rectangle -16777216 true false 133 84 148 129 Line -16777216 false 152 160 130 140 Line -16777216 false 131 161 149 137 Polygon -1 true false 244 210 202 296 76 296 28 296 4 297 39 211 Polygon -1 true false 7 298 Polygon -1 true false 3 299 Polygon -1 true false 7 297 Polygon -1 true false 5 297 5 153 Polygon -1 true false 42 86 8 169 7 297 Polygon -1 true false 5 301 39 218 40 90 Line -16777216 false 39 213 6 299 Line -16777216 false 42 212 244 212 Line -16777216 false 39 211 38 87 Line -16777216 false 30 241 227 243 Line -16777216 false 17 271 213 272 Circle -16777216 true false 135 223 10 Circle -16777216 true false 130 252 10 Circle -16777216 true false 126 281 10 robineteau true 7 Rectangle -1 true false 40 84 245 211 Rectangle -1 true false 150 75 150 75 Rectangle -1 true false 150 75 150 105 Rectangle -7500403 true false 61 106 223 191 Circle -1 true false 126 135 30 Line -16777216 false 157 150 127 150 Line -16777216 false 140 134 140 164 Rectangle -16777216 true false 133 84 148 129 Line -16777216 false 152 160 130 140 Line -16777216 false 131 161 149 137 Polygon -1 true false 244 210 202 296 76 296 28 296 4 297 39 211 Polygon -1 true false 7 298 Polygon -1 true false 3 299 Polygon -1 true false 7 297 Polygon -1 true false 5 297 5 153 Polygon -1 true false 42 86 8 169 7 297 Polygon -1 true false 5 301 39 218 40 90 Line -16777216 false 39 213 6 299 Line -16777216 false 42 212 244 212 Line -16777216 false 39 211 38 87 Line -16777216 false 30 241 227 243 Line -16777216 false 17 271 213 272 Circle -16777216 true false 135 223 10 Circle -16777216 true false 130 252 10 Circle -16777216 true false 126 281 10 Rectangle -11221820 true false 90 135 195 180 Rectangle -13791810 true false 135 126 146 166 routeur true 0 Rectangle -1 true false 75 150 195 210 Rectangle -7500403 true true 174 90 195 150 Circle -10899396 true false 110 164 8 Circle -13840069 true false 107 167 0 Circle -10899396 true false 87 164 8 Circle -2674135 true false 168 159 16 Circle -10899396 true false 133 165 8 sailboat side false 0 Line -16777216 false 0 240 120 210 Polygon -7500403 true true 0 239 270 254 270 269 240 284 225 299 60 299 15 254 Polygon -1 true false 15 240 30 195 75 120 105 90 105 225 Polygon -1 true false 135 75 165 180 150 240 255 240 285 225 255 150 210 105 Line -16777216 false 105 90 120 60 Line -16777216 false 120 45 120 240 Line -16777216 false 150 240 120 240 Line -16777216 false 135 75 120 60 Polygon -7500403 true true 120 60 75 45 120 30 Polygon -16777216 false false 105 90 75 120 30 195 15 240 105 225 Polygon -16777216 false false 135 75 165 180 150 240 255 240 285 225 255 150 210 105 Polygon -16777216 false false 0 239 60 299 225 299 240 284 270 269 270 254 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 table true 0 Circle -6459832 true false 116 66 38 Line -7500403 true 120 90 135 105 Rectangle -6459832 true false 116 89 154 166 Circle -6459832 true false 116 144 38 Rectangle -6459832 true false 102 78 119 81 Rectangle -6459832 true false 92 66 136 71 Rectangle -6459832 true false 87 165 118 170 Rectangle -6459832 true false 103 177 139 182 Circle -2674135 true false 133 124 2 Circle -1 true false 126 114 20 Circle -2674135 true false 133 116 8 Circle -955883 true false 131 125 10 Polygon -1184463 true false 140 127 129 128 126 111 133 122 130 129 Circle -10899396 true false 141 121 6 Line -10899396 false 142 118 134 110 Line -10899396 false 139 115 132 123 Circle -8630108 true false 131 121 4 Circle -8630108 true false 133 123 6 Circle -8630108 true false 129 124 6 Polygon -1184463 true false 150 120 140 131 143 116 137 131 137 137 tableb true 0 Rectangle -6459832 true false 93 94 193 161 Rectangle -16777216 true false 96 97 189 158 Polygon -6459832 true false 94 95 94 95 94 95 86 106 86 171 94 161 Polygon -6459832 true false 87 166 87 166 87 166 173 170 Polygon -6459832 true false 87 169 87 169 181 170 191 160 Rectangle -6459832 true false 94 160 172 166 Rectangle -6459832 true false 88 162 116 169 Circle -1 true false 120 120 0 Circle -1 true false 117 117 6 tablem true 0 Circle -6459832 true false 116 66 38 Line -7500403 true 120 90 135 105 Rectangle -6459832 true false 116 89 154 166 Circle -6459832 true false 116 144 38 Rectangle -6459832 true false 102 78 119 81 Rectangle -6459832 true false 89 66 136 71 Rectangle -6459832 true false 87 165 118 170 Rectangle -6459832 true false 105 177 139 180 Circle -2674135 true false 133 124 2 Circle -1 true false 126 114 20 Circle -2674135 true false 133 116 8 Circle -955883 true false 131 125 10 Polygon -1184463 true false 140 127 129 128 126 111 133 122 130 129 Circle -10899396 true false 141 121 6 Line -10899396 false 142 118 134 110 Line -10899396 false 139 115 132 123 Circle -8630108 true false 131 121 4 Circle -8630108 true false 133 123 6 Circle -8630108 true false 129 124 6 Polygon -1184463 true false 150 120 140 131 143 116 137 131 137 137 Line -1 false 154 95 118 84 Line -1 false 153 108 116 96 Line -1 false 153 129 146 126 Line -1 false 129 116 117 111 Line -1 false 154 144 116 129 Line -1 false 152 157 115 142 Line -1 false 150 172 116 157 Line -1 false 152 86 120 75 Line -1 false 153 81 124 70 Line -1 false 149 74 132 68 Line -1 false 153 102 116 90 Line -1 false 154 91 119 79 Line -1 false 154 116 115 105 Line -1 false 153 113 115 101 Line -1 false 153 150 117 136 Line -1 false 152 167 117 151 Line -1 false 154 163 117 147 Line -1 false 153 138 141 133 Line -1 false 126 127 115 123 Line -1 false 155 133 144 129 Line -1 false 127 123 117 119 Line -1 false 152 124 143 121 Line -1 false 144 178 117 163 Line -1 false 138 179 153 164 Line -1 false 132 179 151 160 Line -1 false 127 177 151 153 Line -1 false 125 173 151 149 Line -1 false 123 170 150 143 Line -1 false 118 169 152 133 Line -1 false 117 160 150 127 Line -1 false 116 155 132 137 Line -1 false 147 125 153 118 Line -1 false 117 150 129 135 Line -1 false 145 119 154 110 Line -1 false 116 141 127 129 Line -1 false 141 115 153 104 Line -1 false 116 132 125 124 Line -1 false 137 114 152 98 Line -1 false 117 126 152 91 Line -1 false 117 118 152 84 Line -1 false 117 112 149 79 Line -1 false 118 104 147 73 Line -1 false 117 96 141 71 Line -1 false 117 90 137 67 Line -1 false 118 82 132 66 Line -7500403 true 120 90 120 90 Rectangle -6459832 false false 90 106 123 136 Rectangle -6459832 true false 91 107 122 111 Rectangle -6459832 true false 90 114 117 118 Rectangle -6459832 true false 90 122 124 126 Rectangle -6459832 true false 90 131 123 135 Rectangle -1 true false 85 106 97 135 Rectangle -6459832 true false 69 106 88 109 Rectangle -6459832 true false 70 132 89 135 Rectangle -6459832 true false 117 105 127 132 Rectangle -6459832 false false 153 105 168 135 Rectangle -6459832 true false 155 106 167 110 Rectangle -6459832 true false 156 114 167 117 Rectangle -6459832 true false 155 121 167 124 Rectangle -6459832 true false 154 130 168 134 Rectangle -6459832 true false 168 105 176 135 Rectangle -6459832 true false 111 180 155 197 Rectangle -1 true false 107 172 116 193 Rectangle -6459832 true false 88 195 111 198 Rectangle -6459832 true false 82 171 105 174 Rectangle -16777216 true false 117 183 147 187 Rectangle -16777216 true false 117 189 147 192 Rectangle -6459832 true false 113 48 153 67 Rectangle -1 true false 113 53 122 67 Rectangle -6459832 true false 91 51 112 50 Rectangle -6459832 true false 91 49 113 53 Rectangle -16777216 true false 124 51 145 55 Rectangle -16777216 true false 124 57 145 61 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 tele true 0 Rectangle -7500403 true true 105 75 165 120 Line -7500403 true 120 120 105 135 Line -7500403 true 150 120 165 135 Circle -2674135 true false 155 112 6 Rectangle -16777216 true false 114 82 156 111 tile water false 0 Rectangle -7500403 true true -1 0 299 300 Polygon -1 true false 105 259 180 290 212 299 168 271 103 255 32 221 1 216 35 234 Polygon -1 true false 300 161 248 127 195 107 245 141 300 167 Polygon -1 true false 0 157 45 181 79 194 45 166 0 151 Polygon -1 true false 179 42 105 12 60 0 120 30 180 45 254 77 299 93 254 63 Polygon -1 true false 99 91 50 71 0 57 51 81 165 135 Polygon -1 true false 194 224 258 254 295 261 211 221 144 199 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 165 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 Rectangle -7500403 true true 135 60 195 165 Rectangle -13345367 true false 15 120 135 165 Line -16777216 false 132 125 15 125 Line -16777216 false 135 160 14 160 Line -16777216 false 30 120 30 165 Line -16777216 false 45 120 45 165 Line -16777216 false 60 120 60 165 Line -16777216 false 75 120 75 165 Line -16777216 false 90 120 90 165 Line -16777216 false 105 120 105 165 Line -16777216 false 120 120 120 165 truck top true 0 Rectangle -7500403 true true 70 45 227 120 Polygon -7500403 true true 150 8 118 10 96 17 90 30 75 135 75 195 90 210 150 210 210 210 225 195 225 135 209 30 201 17 179 10 Polygon -16777216 true false 94 135 118 119 184 119 204 134 193 141 110 141 Line -16777216 false 130 14 168 14 Line -16777216 false 130 18 168 18 Line -16777216 false 130 11 168 11 Line -16777216 false 185 29 194 112 Line -16777216 false 115 29 106 112 Line -16777216 false 195 225 210 240 Line -16777216 false 105 225 90 240 Polygon -16777216 true false 210 195 195 195 195 150 210 143 Polygon -16777216 false false 90 143 90 195 105 195 105 150 90 143 Polygon -16777216 true false 90 195 105 195 105 150 90 143 Line -7500403 true 210 180 195 180 Line -7500403 true 90 180 105 180 Line -16777216 false 212 44 213 124 Line -16777216 false 88 44 87 124 Line -16777216 false 223 130 193 112 Rectangle -7500403 true true 225 133 244 139 Rectangle -7500403 true true 56 133 75 139 Rectangle -7500403 true true 120 210 180 240 Rectangle -7500403 true true 93 238 210 270 Rectangle -16777216 true false 200 217 224 278 Rectangle -16777216 true false 76 217 100 278 Circle -16777216 false false 135 240 30 Line -16777216 false 77 130 107 112 Rectangle -16777216 false false 107 149 192 210 Rectangle -1 true false 180 9 203 17 Rectangle -1 true false 97 9 120 17 truck2 false 0 Rectangle -7500403 true true 105 165 296 187 Polygon -7500403 true true 4 193 4 150 41 134 56 104 92 104 93 194 Rectangle -1 true false 195 60 195 105 Polygon -16777216 true false 62 112 48 141 81 141 82 112 Circle -16777216 true false 234 174 42 Rectangle -7500403 true true 86 185 119 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 Rectangle -7500403 true true 105 60 165 165 Rectangle -13345367 true false 165 120 285 165 Line -16777216 false 168 125 285 125 Line -16777216 false 165 160 286 160 Line -16777216 false 270 120 270 165 Line -16777216 false 255 120 255 165 Line -16777216 false 240 120 240 165 Line -16777216 false 225 120 225 165 Line -16777216 false 210 120 210 165 Line -16777216 false 195 120 195 165 Line -16777216 false 180 120 180 165 Rectangle -7500403 true true 165 75 270 120 Line -16777216 false 165 83 270 83 Line -16777216 false 164 112 272 111 Line -16777216 false 180 120 180 75 Line -16777216 false 195 120 195 75 Line -16777216 false 210 120 210 75 Line -16777216 false 225 120 225 75 Line -16777216 false 240 120 240 75 Line -16777216 false 255 120 255 75 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 usine false 0 Rectangle -7500403 true true 30 76 106 285 Rectangle -7500403 true true 69 36 205 59 Rectangle -16777216 true false 60 90 90 270 Line -7500403 true 90 195 90 255 Line -7500403 true 105 120 45 120 Line -7500403 true 105 150 60 150 Line -7500403 true 105 180 45 180 Line -7500403 true 90 210 60 210 Line -7500403 true 90 240 60 240 Line -7500403 true 75 90 75 270 Circle -1 true false 195 37 32 Circle -1 true false 208 55 54 Circle -1 true false 237 96 42 Circle -1 true false 228 105 32 Circle -1 true false 239 129 42 Rectangle -7500403 true true 30 14 72 78 van side false 0 Polygon -7500403 true true 26 147 18 125 36 61 161 61 177 67 195 90 242 97 262 110 273 129 260 149 Circle -16777216 true false 43 123 42 Circle -16777216 true false 194 124 42 Polygon -16777216 true false 45 68 37 95 183 96 169 69 Line -7500403 true 62 65 62 103 Line -7500403 true 115 68 120 100 Polygon -1 true false 271 127 258 126 257 114 261 109 Rectangle -16777216 true false 19 131 27 142 wave true 0 Rectangle -7500403 true true -15 105 300 180 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.3.0 @#$#@#$#@ @#$#@#$#@ @#$#@#$#@ @#$#@#$#@ @#$#@#$#@ 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 @#$#@#$#@