ŠĻą”±į>ž’ ƒž’’’€’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ģ„Į` ųæ³'bjbjĖsĖs ?\©©‹'’’’’’’¤"*>*>*>8b>dĘ>l"skj>?T?(|?|?|?|?.Ŗ?¾? ņjōjōjōjōjōjōj$ŻlhEo8kK@|?|?K@K@k|?|?-kåRåRåRK@,|?|?ņjåRK@ņjåRåRāŠg¤zi|?2? Æ"\É*>wH.hņjCk0skDh6}oP}o,zizi8}o²i@Ź?Ž?åRģ? ų?SŹ?Ź?Ź?kkRdŹ?Ź?Ź?skK@K@K@K@"""'&,"""&,"""’’’’ LAB INSTRUCTIONS SHELL SCRIPTING PURPOSES: To understand the basic structure and syntax of a UNIX/LINUX Bourne shell script To learn how to run a shell script on our research computing facility, the Emerald Linux cluster To practice basic shell programming tools under the Bourne shell. Following 11 short sh/ksh/Bourne shell scripts, 1.sh-11.sh, plus one MPI code in C programming language, cpi.c, are saved at /netscr/training/shell/ (i) Copy them over to your working directory at /netscr, (ii) try to understand each of them, and then (iii) run them one by one by just typing the name of a shell script such as “./1.sh” at the prompt. These scripts are: The simplest shell script – Echo command Summation of two integers – If block Summation of two real numbers – bc (basic calculator) command Script to find out the biggest number in 3 numbers – If –elif block Operation (summation, subtraction, multiplication and division) of two numbers – Switch Script to reverse a given number – While block A more complicated greeting shell script Sort the given five numbers in ascending order (using array) – Do loop and array Calculating average of given numbers on command line arguments – Do loop Calculating factorial of a given number – While block An application in research computing – Combining all above A. HOW TO LOGIN TO EMERALD CLUSTER If you have not done so yet, subscribe the UNC Research Computing services. If you’ve already done this step, go to Step 2. Go to  HYPERLINK "http://onyen.unc.edu" http://onyen.unc.edu Scroll down and click the “Subscribe to services” buttom (2nd in the “Other Services” section). Login with your ONYEN and password. Choose from the following services: Altix Cluster services (cedar/cypress.isis.unc.edu) Emerald Cluster access (emerald.isis.unc.edu) Mass storage, etc. UNIX shell and How to Change your Shell A UNIX shell is a kernel working environment. There are many UNIX shells in common use, such as bash, ksh, csh, and tcsh. Many scientific applications in AFS package space such as GaussView, Cerius2, SYBYL, Cambridge Database, etc., work only in the C shell environment, which is either csh or tcsh. To know which shell you are currently use, type at the prompt on any of the servers echo $SHELL The default shell from the ONYEN website is ksh. To change to csh/tcsh, go to the ONYEN website, select the 3rd button, “Change name or shell”, login and then follow the instructions. Access Emerald Server via SecureCRT Start->Program-> Remote Services -> SecureCRT -> File -> Quick Connect -> Hostname: emerald.isis.unc.edu -> Connect -> Input your username & password. If you have not done it yet, create your own working directory on /netscr/YourOnyen where “YourOnyen” is your own ONYEN ID. Otherwise, go to the next step. mkdir /netscr/yourONYEN DO NOT make other directories at the top /netscr level. Copy hands-on exercise shell scripts and codes from /netscr/training/shell to your own scratch directory: cp /netscr/training/shell/* /netscr/yourONYEN B. 11 BOURNE SHELL SCRIPTS The simplest, Hello script! #!/bin/sh echo "Hello, $LOGNAME!" echo "Current date is `date`" echo "User is `whoami`" echo "Current directory `pwd`" Summation of two integers #!/bin/sh if [ $# -ne 2 ] then echo "Usage - $0 x y" echo "Where x and y are two integers for which I will print sum" exit 1 fi sum=`expr $1 + $2 ` echo "Sum of $1 and $2 is $sum " 3. Summation of two real numbers #!/bin/sh a=5.66 b=8.67 c=`echo $a + $b | bc` echo "$a + $b = $c" 4. Script to find out the biggest number in 3 integers #!/bin/sh if [ $# -ne 3 ] then echo "$0: number1 number2 number3 are not given" >&2 exit 1 fi n1=$1 n2=$2 n3=$3 if [ $n1 -gt $n2 ] && [ $n1 -gt $n3 ] then echo "$n1 is Bigest number" elif [ $n2 -gt $n1 ] && [ $n2 -gt $n3 ] then echo "$n2 is Bigest number" elif [ $n3 -gt $n1 ] && [ $n3 -gt $n2 ] then echo "$n3 is Bigest number" elif [ $1 -eq $2 ] && [ $1 -eq $3 ] && [ $2 -eq $3 ] then echo "All the three numbers are equal" else echo "I can not figure out which number is biger" fi 5. Operation (summation, subtraction, multiplication and division) of two integers #!/bin/sh if test $# = 3 then case $2 in +) let z=$1+$3;; -) let z=$1-$3;; /) let z=$1/$3;; x|X) let z=$1*$3;; *) echo Warning - $2 invalid operator, only +,-,x,/ operator allowed exit;; esac echo Answer is $z else echo "Usage - $0 value1 operator value2" echo " Where, value1 and value2 are numeric values" echo " operator can be +,-,/,x (For Multiplication)" fi 6. Script to reverse a given positive integer #!/bin/sh if [ $# -ne 1 ] then echo "Usage: $0 number" echo " I will find reverse of given positive integer" echo " For eg. $0 123, I will print 321" exit 1 fi n=$1 rev=0; sd=0 while [ $n -gt 0 ] do sd=`expr $n % 10` rev=`expr $rev \* 10 + $sd` n=`expr $n / 10` done echo "Reverse number is $rev" 7. A more complicated greeting shell script #!/bin/sh temph=`date | cut -c12-13` dat=`date +"%A %d in %B of %Y (%r)"` if [ $temph -lt 12 ] then mess="Good Morning $LOGNAME, Have nice day!" fi if [ $temph -gt 12 -a $temph -le 16 ] then mess="Good Afternoon $LOGNAME" fi if [ $temph -gt 16 -a $temph -le 18 ] then mess="Good Evening $LOGNAME" fi echo -e "$mess\nThis is $dat" 8. Sort the given five integer numbers in ascending order (using array) #!/bin/sh # Declare the array of 5 subscripts to hold 5 numbers nos=(4 -1 2 66 10) # Prints the number before sorting echo "Original Numbers in array:" for (( i = 0; i <= 4; i++ )) do echo ${nos[$i]} done # Now do the Sorting of numbers for (( i = 0; i <= 4 ; i++ )) do for (( j = $i; j <= 4; j++ )) do if [ ${nos[$i]} -gt ${nos[$j]} ]; then t=${nos[$i]} nos[$i]=${nos[$j]} nos[$j]=$t fi done done # Print the sorted number echo -e "\nSorted Numbers in Ascending Order:" for (( i=0; i <= 4; i++ )) do echo ${nos[$i]} done 9. Calculating average of given integer numbers on command line arguments #!/bin/sh avg=0 temp_total=0 number_of_args=$# # First see the sufficent cmd args if [ $# -lt 2 ] ; then echo -e "Oops! I need atleast 2 command line args\n" echo -e "Syntax: $0: number1 number2 ... numberN\n" echo -e "Example:$0 5 4\n\t$0 56 66 34" exit 1 fi # now calculate the average of numbers given on command line as cmd args for i in $* do # addition of all the numbers on cmd args temp_total=`expr $temp_total + $i ` done avg=`expr $temp_total / $number_of_args ` echo "Average of all number is $avg" 10. Calculating factorial of a given integer number #!/bin/sh n=0; on=0 fact=1 echo -n "Enter number to find factorial : " read n on=$n while [ $n -ge 1 ] do fact=`expr $fact \* $n` n=`expr $n - 1` done echo "Factorial for $on is $fact" 11. A research computing application: compile an MPI code, cpi.c, submit to the week queue requesting 4 CPUs, monitor the job, and then import the results after the job is finished. #!/bin/sh #Step 1: compile the cpi.c MPI code /afs/iss/pkg/ipm/bin/ipm add intel_fortran intel_CC mpich>&/dev/null /afs/isis/pkg/mpich/intel/bin/mpicc -o cpi.x cpi.c echo "Step 1: Code compilation done" #Step 2: submit the job to week queue using LSF if [ -e output ] then /bin/rm ./output /bin/touch ./output fi bsub -q week -o ./output -n 4 -R "span[ptile=4]" -a mpichp4 mpirun.lsf\ ./cpi.x >&/dev/null sleep 5 # wait for 5 seconds echo "Step 2: Job submission done" #Step 3: Job monitoring a=`bjobs |grep week | wc -l | awk '{print $1}'` while [ "$a" -ne 0 ] do echo "Step 3: The job is still running...." sleep 5 # the job is not done yet, wait for 5 seconds a=`bjobs |grep week | wc -l | awk '{print $1}' ` done #Step 4: Export the output while [ -z ./output ] do sleep 5 # wait for 5 seconds to let LSF write the output done echo "Step 4: The job is done and here is the output:" sed -n '30,37p' ./output     PAGE 6 PAGE 5 !"#*+-_q}~‡ŽŽß ! - . 5 C P R \ ] o ‰ ‹  ’ ¢ ¤ óēߌŅĒ¹Ē¹±©±”±”±”±”™©™‘™‰x‰p‘p_p™Whś@CJaJ hQf>h’:ŅCJOJQJ^JaJh’:ŅCJaJ hQf>hQf>CJOJQJ^JaJhQf>CJaJhć3ōCJaJhėõCJaJh¢#CJaJhR+tCJaJhŸgBCJaJhffēh¢#5>*CJaJh¢#5>*CJaJhP%¹hw n6 h+>/6h]VNh+>/6hŪ@ŌhP%¹5CJ$aJ$hŪ@Ōh+>/5CJ$aJ$""#-~ß! "   ¼ ½ › œ Å ź ( l Ä ó  m ¶ ģ ' ÷÷ņņźźźååååååŻŻŻŻÕÕÕÕÕÕŻ & FgdŽ{ī & FgdµyYgdėõ & Fgd¢#gd¢#$a$gdP%¹‹'²'żż¤ ŗ » ¼ ½ Į ō ö ū    $ * = q w † ‡ › œ    ' ( k l  ļįÓĀŗ²ŖŗŖ¢Ŗ²Ŗŗ²š‰š²ymaYamamMhŹgÆhŽ{ī6CJaJhŹgÆhkkx6hŹgÆhkkx6CJaJhŹgÆhµyY6CJaJhyhÅCJaJhµyYCJaJ h—Įh—ĮCJOJQJ^JaJh—ĮCJaJhÓR4CJaJhR+tCJaJhėõCJaJh½g CJaJ hś@håVSCJOJQJ^JaJhėõCJOJQJ^JaJhņ|¼CJOJQJ^JaJ hś@hėõCJOJQJ^JaJ l m µ ¶ ė  & ' ( + J K Ī Ļ ń ņ ó   EG²(°ĮÄÅÉ÷ė÷ė÷ėßė×ĪĀĪŗ®ŗœ®®ŗ„ŗxŗtŗeZNehe*CJOJQJaJhWphe*CJaJh"öhe*CJOJQJaJhe*hŹA•he*CJH*aJh²ƒhe*CJaJh„yhhe*0JCJaJ#jh„yhhe*CJUaJjhe*CJUaJhe*CJaJhe*he*5CJ aJ he*5CJ aJ hw nCJaJhŹgÆhPż6CJaJhŹgÆhŽ{ī6CJaJhŹgÆhŽ{ī6' ( K Ē Č ²ē(PQ~ÓŌįāš›æĄWśõķõäŌĢĢĢķĆäääääääĆķõä„h^„hgde* & Fgde*„Š¤d¤d[$\$^„Šgde*„Š^„Šgde* & Fgde*gde*gdw nÉ2psv{Õį (OQ[o›¢¾æĄĪąć(Wš«³¼õūųéųŚųŚųéųéųéųĪųéųĆųĆ·ØØ·z·ųkųkųX%hE7£he*B*CJOJQJaJphh$he*CJOJQJaJ%hŲ%4he*B*CJOJQJaJphhe*B*CJOJQJaJphh#~he*CJaJh#~he*B*CJaJphhe*B*CJaJphh²ƒhe*CJaJh"öhe*CJH*aJhWphe*CJOJQJaJh"öhe*CJOJQJaJhe*CJaJ"WXōõ GH³“äå)*B`x—öīåöåååīÜö×××ĻŹĮøĮĮĮĮ 7$8$H$gd„! 7$8$H$gdwQ;gd„! & Fgd„!gde*„8^„8gde*„h^„hgde* & Fgde*„ ^„ gde*ū  8?V_u{’²³“ĶŃćäļÜĶŶūūœ«…yjWĶNB:h„!CJaJhe*he*5CJ aJ he*5CJ aJ %h]VNhe*B*CJOJQJaJphh]VNhe*CJOJQJaJh]VNhe*6CJaJhE7£he*CJaJhe*CJOJQJaJh"öhe*CJOJQJaJh#~he*CJaJhWphe*CJOJQJaJhe*CJaJhE7£he*CJOJQJaJ%hE7£he*B*CJOJQJaJphhe*B*CJOJQJaJph&uv—˜²æŌ×ņõ69xyš›¢¤„ųšųščšŚĢ¾Ģ³«³šŒšŒš~šŒšv«nŚ]OhulĆCJOJQJ^JaJ hwQ;häCJOJQJ^JaJhwQ;CJaJhåVSCJaJh+1+CJOJQJ^JaJhwQ;CJOJQJ^JaJ hS7ĮhS7ĮCJOJQJ^JaJhäCJaJhS7ĮhS7ĮCJaJhW}KCJOJQJ^JaJh„!CJOJQJ^JaJh‘-{CJOJQJ^JaJh“qęCJaJh„!CJaJhuv°CJaJ—˜³“¾æĻŌņ6@CWxyš›„¦­“ŹŽśņśķäŪŪŅŅŅŅŅŅśśśÉÉŪŪŪĄ 7$8$H$gdµyY 7$8$H$gdåVS 7$8$H$gdS7Į 7$8$H$gdwQ;„h^„hgdS7ĮgdwQ; & FgdŻmwgdS7Į„¦­Źßą %&pufk/013=szƒļŚÅ°Ø••‡vhvhvhv]U]MEM•Mh„!CJaJhÖfCJaJhm#=CJaJhCvhCvCJaJhwQ;CJOJQJ^JaJ hS7ĮhS7ĮCJOJQJ^JaJh‘-{CJOJQJ^JaJh+1+CJaJhS7ĮhS7ĮCJaJhłbŗCJaJ(hµyYhµyYCJOJQJ^JaJmH sH (hähäCJOJQJ^JaJmH sH (hwQ;häCJOJQJ^JaJmH sH hwQ;hulĆCJOJQJ^JaJŽß!&6;p€ƒ‰•»ĄŻ0af‡¼ĮķöńńččččŪččččččččččččččččč „Š7$8$H$`„ŠgdwQ; 7$8$H$gdS7ĮgdS7Į 7$8$H$gdµyYķņ(/0„…Ÿ¤°ĆÖéžEQWjoœŲ öéööööąąąąąąąąąąąąąąąąąąą 7$8$H$gdCv „Š7$8$H$`„ŠgdwQ; 7$8$H$gdS7Įƒ„…Œž !#=MNOV»Ė‡ˆ§ØÓŌÕÜųšāŌĘŌ¾³Ø Øų’seTLDLDāhń"ƒCJaJhŻmwCJaJ hähäCJOJQJ^JaJhulĆCJOJQJ^JaJh+1+CJOJQJ^JaJ hähŻmwCJOJQJ^JaJh‘-{CJOJQJ^JaJh+1+CJaJhähŻmwCJaJhäh„!CJaJhm#=CJaJhÖfCJOJQJ^JaJhCvCJOJQJ^JaJh‘-{CJOJQJ^JaJhÖfCJaJhCvCJaJ NOYZjoĶ  !47Mnƒˆ§ØŌÕßöķööööööööööööööööööööķķķä 7$8$H$gdń"ƒ 7$8$H$gdS7Į 7$8$H$gdŻmwßąū !6;lop–›¾ĮĀčķ/0xyƒ„ŗĶĪöööööööööööööööööööķķķčččččgdŅFA 7$8$H$gdS7Į 7$8$H$gdń"ƒÜ/013FNUViy€ƒ„ģ"ÄÅĒćė   z ˆ ģ !Ķ!Ī!ż!ž!’!"+"-"/"H"ņŻŃɾ·³·Æ·Æ«Æ§ÆœÆɔ³‰”«…³…z…‰…‰…³…Érk h¬ Öh¬ Öh¬ ÖCJaJhØ'ķhØ'ķmH sH hØ'ķhn:z hØ'ķhØ'ķhØ'ķCJaJhŅFAhŅFAmH sH hwQ;h‘-{hŅFAh+1+ hŅFAhŅFAhŅFAhŅFACJaJhm#=CJaJhń"ƒCJaJmHsH(hń"ƒhń"ƒCJOJQJ^JaJmHsHhń"ƒCJOJQJ^JaJ(Īń03EJKk‰Œ­³įł-6>CD^©¬¾ĆÄ śśśśśśśśśśśśśśśśśśśśśśśśśśśń 7$8$H$gdS7ĮgdŅFA    - ? @ c z ² é !!"!#!l!x!{!©!Š!Õ!Ö!"*"+"_"`"öńńńńńńńńńńńńńńńńńńńńńńńńöögdØ'ķ 7$8$H$gdS7ĮH"J"P"X"^"_"`"g"n"p"!#"###$#|#Ž# #£#×#Ų#Ł#ą#ć#$$“$”$Ÿ$ $`%a%%‘%üõńõķüéüåüŻÕĶÕŽսŻ¬ž|n|`|`|n|Rh“ ˆCJOJQJ^JaJh?CJOJQJ^JaJh-CJOJQJ^JaJ h-h-CJOJQJ^JaJ h-h\vzCJOJQJ^JaJh‘-{CJOJQJ^JaJ h-h\vzCJOJQJ^JaJh!:ŠCJaJh×_ACJaJhm#=CJaJh\vzCJaJh¬ ÖCJaJhulĆh‘-{hØ'ķh+1+ h¬ Öh¬ Öh¬ Ö `"j"k"u"}"©"°"±"·"Ė"Ī"č"ś"’"!#"#Ų#Ł#ć#ä#$M$€$„$¦$Ö$ē$ģ$śśśśśśśśśśśśśśńńńńččččččččč 7$8$H$gd- 7$8$H$gdS7Įgd¬ Öģ$%%%v%›%¾%æ%×%&&&M&Š&½&Ā&Ć&Ž&ō&÷&6';'r'‹''Ž''‘'“'öööööööööööööööööööööööōōōōō 7$8$H$gd-‘%­%®%ø%¹%{&&Ž&ä&é&ė&ó&ō&ö&÷&' ''5'6':'Š'‹'Œ'Ž''‘'’'”'•'—'˜'ž'Ÿ'ļįļįļÓļÅļ·ļ©Å˜ļŠÓŠļÅļyqmqmqmqmc]c hOw'0JjhOw'0JUhtTįjhtTįU h-h!:ŠCJOJQJ^JaJhnCJOJQJ^JaJ h-h~H[CJOJQJ^JaJh-CJOJQJ^JaJh~'nCJOJQJ^JaJh~H[CJOJQJ^JaJh“ ˆCJOJQJ^JaJh?CJOJQJ^JaJ h-h-CJOJQJ^JaJ!“'”'–'—'¢'£'¤'Æ'°'±'²'³'żżżńäżńäżżŪ 7$8$H$gd- „h„h]„h`„hgdŚp „ų’„&`#$gdjFZ Ÿ' '”'¢'¤'„'«'¬'­'®'Æ'±'²'³'ōźäąźäźōźäąÜĖ h-h!:ŠCJOJQJ^JaJhtTįhOw' hOw'0JjhOw'0JUh+1+0JmHnHu = 0P&P1F:pjFZ°Š/ °ą=!° "° # $ %°°š°š ŠĖDŠÉźyłŗĪŒ‚ŖK© http://onyen.unc.eduąÉźyłŗĪŒ‚ŖK© ,http://onyen.unc.edu/†œ@@ń’@ NormalCJ_HaJmH sH tH DA@ņ’”D Default Paragraph FontRi@ó’³R  Table Normalö4Ö l4Öaö (k@ō’Į(No List4U@¢ń4 ŅFA Hyperlink >*ph’ˆe@ˆ ŅFAHTML Preformatted7 Ę2”(¼ Päx  4 Č#\'š*„.2¬5@9CJOJQJ^JaJ4 @4 ŚpFooter  ĘąĄ!.)@¢!. Śp Page NumberB^`2B e* Normal (Web)¤d¤d[$\$³\’’’’"#-~ß!" ¼½›œÅź(lÄóm¶ģ'(KĒČ ²ē(PQ~ÓŌįāš › æ Ą W X ō õ  G H ³ “ ä å    ) * B ` x — ˜ ³ “ ¾ æ Ļ Ō ņ 6 @ C W x y š › „ ¦ ­ “ Ź Ž ß !&6;p€ƒ‰•»ĄŻ0af‡¼Įķņ(/0„…Ÿ¤°ĆÖéžEQWjoœŲ NOYZjoĶ  !47Mnƒˆ§ØŌÕßąū !6;lop–›¾ĮĀčķ/0xyƒ„ŗĶĪń03EJKk‰Œ­³įł-6>CD^©¬¾ĆÄ -?@cz²é"#lx{©ŠÕÖ*+_`jku}©°±·ĖĪčś’!"ŲŁćäM€„¦Öēģv›¾æ×MŠ½ĀĆŽō÷6;r‹Ž‘“”–—¢£¤Æ°±“˜0€€˜0€€˜0€€˜0€€˜ 0€€˜ 0€€˜ 0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜ 0€€˜ 0€€˜ 0€€˜ 0€€˜ 0€€˜ 0€€˜ 0€€˜ 0€€˜ 0€€˜ 0 €€˜ 0 €€˜0€€˜0€€˜ 0€€˜0€€˜0€€˜0€€˜ 0€€˜ 0€€˜ 0€€˜ 0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜ 0€€˜0€€˜0€€˜0€€˜ 0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜ 0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜ 0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜ 0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜0€€˜@0€€h‹00µ˜@0€€h‹00µ˜@0€€h‹00µ˜@0€€h‹00µ˜@0€€˜@0€€˜@0€€˜@0€€˜@0€€˜@0€€h‹00¼ µ"#-~ß!" ½œÅź(lÄómģĒČ ²ē(Q~ÓŌįāš › æ ō õ H ³ “ ä  B ` x — C W x ­ “ Ź Ž ß ķņ(/oœŲ N/0ƒŗĶĪń03EJKk‰Œ­³įł-6>CD^©¬¾ĆÄ -?@cz²é"#lx{©ŠÕÖ*+jku}©°±·ĖĪčś’!r“š0€€€š0€€€š0€€€š0€€€š 0€€€š 0€€€š 0€€€š0€€€š0€€€š0€€€š0€€€š@ 0€€€š@ 0€€€š@ 0€€€š@ 0€€€š@ 0€€€š@ 0€€€š@ 0€€€š@ 0€€€jĖ00€š@ 0€€€š@0€€€š@0€€€š@0€€š@ 0€€š@ 0€€š@ 0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@ 0€€€š@ 0€€š@0€€š@0€€š@0€€š@ 0€€š@0€€š@0€€€š@0€€€j‹00čåĪj‹00€j‹00€j‹00j‹00j‹00`0˜6n’’’’j‹0 0 œÉJj‹0 0j‹0 0j‹00j‹00j‹00j‹00ŌFJj‹00j‹00j‹00€j‹0 0 qĪj‹0 0€j‹0 0€š0€€€j‹00€j‹00€j‹00j‹004aJj‹00š0€€€j‹00€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€š@0€€0€j‹0l0€š0€€€€ &&&)¤  Éū„ƒÜH"‘%Ÿ'³'"%(+-' W—Žķ ßĪ `"ģ$“'³' !#$&')*,²'Īņ³X’„  ")!’•€!’•€’’ OLE_LINK1 OLE_LINK2``“!!“’’aA ē3R“V“9*€urn:schemas-microsoft-com:office:smarttags€place€ „Ó>5B‹„«¾æīō  ae<B²··ŗ¼æÅÉpsw{  ( µ ¾ ä ķ › « ³ ¼ õ ś ü 9 ? } ƒ ø ¾ Ó ć & ( o u ‘ ” » ½ Č Ź @ B H L ¢ ¤ Ę Č  /1€‚Ÿ”²“ĪŌŻįéėüž!'04<>OQx~‡‹’”£„“¶"(*ŒŽėīRVVXceāä  -/;=?CVZjluyÜŽąåūž',.0lnv{}‡Œ¾ĄČĶĻŃŁŽ/€‚ŗ½!")*<?ABrsyz‚ƒ›œĄĆÅĘŹĢĻŅ"%35ho”•™š”¢µøŗ» *-;PYZ]^bln“šŖ®Žåõü !cfgkpq £¤Ø¬¶ø¼¾ČĢĶÖŁŪßįėļż%(X^giĆÅÖŚķń]bąāłž  %23;<ANptyzōöAFV`diŚßįåķļõų”–š¢¤Ŗ­ru‹‹ŽŽ‘“”–—±“’•jÕŁõ ś “ ¶  " * . B F ` d x | “ · æ Į Ļ Ó × Ū õ ł 9 = @ B C F W [ › ž Ź Ī &(6:;?uy€‚•—»æĮÅŻį04aeko‡‹¼ĄĀĘķńņö(*…ˆ’Ÿ£„©ĄĀÅĒęčūż/1JNRVX\jnpt”ŁŻORZ\jnsw‘•ŃÕ  !&46;=QTƒ‡ˆÕŲąåūž!#6:?Clnpr–šŸ£¾ĄĀÄčģńõ.y|ŗ½ńõ0259EIMPkn‰‹’°²¹»šō"&359=>B^b©«®²¾ĀBGce}µ¹ģš!loxz~‰ŠŌÖŁ /^`cuz}©­±³·¼ĖĶŠŌśž’ŁÜRW€„ÖŲēėōłv{›Ÿķļ !%OT¢¤½ĮŽćōöś’6:;?ru‹‹ŽŽ‘“”–—±“33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333-¤½—Č²ē(› Ą Ō  å * ˜ ņ › ­ Ź Ž &»Įķņ(/…ŸOj!Õūy„ŗĪ5k‰ lx/^`u·ĖŁäv›Žō6;rŠ‹‹ŽŽ‘“”–—±“X^‹‹ŽŽ‘“”–—±“Ä0˜9J±8Ö’’’’’’’’’ī|R?PHNļ’’’’’’’’’¬ ć@ŗĖB€’’’’’’’’’TŽIźøFŠ’’’’’’’’’„,óMy&’’’’’’’’’¢0UVš5’’’’’’’’’=K¤c…ęb’’’’’’’’’bXØg.Øä^’’’’’’’’’h „Š„˜žĘŠ^„Š`„˜žo(‡hˆH.h„ „˜žĘ ^„ `„˜žOJQJo(‡hˆH·š „p„L’Ęp^„p`„L’‡hˆH.€ „@ „˜žĘ@ ^„@ `„˜ž‡hˆH.€ „„˜žĘ^„`„˜ž‡hˆH.‚ „ą„L’Ęą^„ą`„L’‡hˆH.€ „°„˜žĘ°^„°`„˜ž‡hˆH.€ „€„˜žĘ€^„€`„˜ž‡hˆH.‚ „P„L’ĘP^„P`„L’‡hˆH.„h„˜žĘh^„h`„˜žo(.€ „8„˜žĘ8^„8`„˜ž‡hˆH.‚ „„L’Ę^„`„L’‡hˆH.€ „Ų „˜žĘŲ ^„Ų `„˜ž‡hˆH.€ „Ø „˜žĘØ ^„Ø `„˜ž‡hˆH.‚ „x„L’Ęx^„x`„L’‡hˆH.€ „H„˜žĘH^„H`„˜ž‡hˆH.€ „„˜žĘ^„`„˜ž‡hˆH.‚ „č„L’Ęč^„č`„L’‡hˆH.„h„˜žĘh^„h`„˜žo(.€ „8„˜žĘ8^„8`„˜ž‡hˆH.‚ „„L’Ę^„`„L’‡hˆH.€ „Ų „˜žĘŲ ^„Ų `„˜ž‡hˆH.€ „Ø „˜žĘØ ^„Ø `„˜ž‡hˆH.‚ „x„L’Ęx^„x`„L’‡hˆH.€ „H„˜žĘH^„H`„˜ž‡hˆH.€ „„˜žĘ^„`„˜ž‡hˆH.‚ „č„L’Ęč^„č`„L’‡hˆH.„Š„˜žĘŠ^„Š`„˜žo(.€ „ „˜žĘ ^„ `„˜ž‡hˆH.‚ „p„L’Ęp^„p`„L’‡hˆH.€ „@ „˜žĘ@ ^„@ `„˜ž‡hˆH.€ „„˜žĘ^„`„˜ž‡hˆH.‚ „ą„L’Ęą^„ą`„L’‡hˆH.€ „°„˜žĘ°^„°`„˜ž‡hˆH.€ „€„˜žĘ€^„€`„˜ž‡hˆH.‚ „P„L’ĘP^„P`„L’‡hˆH.h„Š„˜žĘŠ^„Š`„˜žOJQJo(‡hˆH·šh„ „˜žĘ ^„ `„˜žOJQJ^Jo(‡hˆHoh„p„˜žĘp^„p`„˜žOJQJo(‡hˆH§šh„@ „˜žĘ@ ^„@ `„˜žOJQJo(‡hˆH·šh„„˜žĘ^„`„˜žOJQJ^Jo(‡hˆHoh„ą„˜žĘą^„ą`„˜žOJQJo(‡hˆH§šh„°„˜žĘ°^„°`„˜žOJQJo(‡hˆH·šh„€„˜žĘ€^„€`„˜žOJQJ^Jo(‡hˆHoh„P„˜žĘP^„P`„˜žOJQJo(‡hˆH§š„8„˜žĘ8^„8`„˜žo(.€ „„˜žĘ^„`„˜ž‡hˆH.‚ „Ų „L’ĘŲ ^„Ų `„L’‡hˆH.€ „Ø „˜žĘØ ^„Ø `„˜ž‡hˆH.€ „x„˜žĘx^„x`„˜ž‡hˆH.‚ „H„L’ĘH^„H`„L’‡hˆH.€ „„˜žĘ^„`„˜ž‡hˆH.€ „č„˜žĘč^„č`„˜ž‡hˆH.‚ „ø„L’Ęø^„ø`„L’‡hˆH.h„ „˜žĘ ^„ `„˜žOJQJo(‡hˆH·šh„p„˜žĘp^„p`„˜žOJQJ^Jo(‡hˆHoh„@ „˜žĘ@ ^„@ `„˜žOJQJo(‡hˆH§šh„„˜žĘ^„`„˜žOJQJo(‡hˆH·šh„ą„˜žĘą^„ą`„˜žOJQJ^Jo(‡hˆHoh„°„˜žĘ°^„°`„˜žOJQJo(‡hˆH§šh„€„˜žĘ€^„€`„˜žOJQJo(‡hˆH·šh„P„˜žĘP^„P`„˜žOJQJ^Jo(‡hˆHoh„ „˜žĘ ^„ `„˜žOJQJo(‡hˆH§š„Š„˜žĘŠ^„Š`„˜žo(.€ „ „˜žĘ ^„ `„˜ž‡hˆH.‚ „p„L’Ęp^„p`„L’‡hˆH.€ „@ „˜žĘ@ ^„@ `„˜ž‡hˆH.€ „„˜žĘ^„`„˜ž‡hˆH.‚ „ą„L’Ęą^„ą`„L’‡hˆH.€ „°„˜žĘ°^„°`„˜ž‡hˆH.€ „€„˜žĘ€^„€`„˜ž‡hˆH.‚ „P„L’ĘP^„P`„L’‡hˆH.bXØgTŽIī|R?¬ ć@„,óM¢0UVÄ0˜9=K¤c’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’                                             ŗé^                          ’MØ 5jW%t_JåI–VŁsĮL ½g ś@ŚpƒIÖf-„!¢#Ow'e*+1++>/ż12ÓR4wQ;Us<m#=Qf>?Ž~?ŅFA×_Aµ&BŸgBW}KåVS¾RTµyYjFZ~H[ 7`w nn~'nR+tCvŻmwkkxn:z\vz‘-{Ž äń"ƒ‚ˆ“ ˆ†%‰™'ÆŹgÆuv°P%¹łbŗņ|¼—ĮS7ĮulĆyhÅ!:Š’:Ņ¬ ÖtTį“qęØ'ķŽ{īX*óć3ōėõw%ųX\üPżį’’@€XX”„ XX³P@’’Unknown’’’’’’’’’’’’G‡z €’Times New Roman5€Symbol3& ‡z €’Arial?5 ‡z €’Courier New71 Courier;€Wingdings#1ˆšŠh“"ɆtcɦBܵÖ9µÖ9!š  x£‚€4{{2ƒQšHP š’?ä’’’’’’’’’’’’’’’’’’’’’S7Į2’’1UNCUNC,        ž’ą…ŸņłOh«‘+'³Ł0d˜¤°¼ČŌč ō  , 8DLT\ä1UNC Normal.dotUNC66Microsoft Office Word@(Š»@āŗ,™É@ ‚Aɵ֞’ÕĶ՜.“—+,ł®DÕĶ՜.“—+,ł®,č hp|„Œ” œ¤¬“ ¼ ŹäUNC9{Ø 1 Title¬ 8@ _PID_HLINKSäAdUhttp://onyen.unc.edu/`  !"#$%&'()*+,-.ž’’’0123456ž’’’89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnž’’’pqrstuvž’’’xyz{|}~ž’’’ż’’’ż’’’‚ž’’’ž’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’Root Entry’’’’’’’’ ĄFł$\É„€Data ’’’’’’’’’’’’/1Table’’’’7©oWordDocument’’’’?\SummaryInformation(’’’’’’’’’’’’oDocumentSummaryInformation8’’’’’’’’wCompObj’’’’’’’’’’’’q’’’’’’’’’’’’ž’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’ž’ ’’’’ ĄFMicrosoft Office Word Document MSWordDocWord.Document.8ō9²q