ࡱ> %` KbjbjNN 9,,(Csss8@st 2uy:zzzzH?~3|moooooo$ hzzzz zzmmqzu si60$*$lqf$ IXN$`$`  Python for S60 Sensor module for S60 Sensor FW Table of Contents  TOC \o "1-4" \h \z \u  HYPERLINK \l "_Toc223161565" 1. Introduction  PAGEREF _Toc223161565 \h 3  HYPERLINK \l "_Toc223161566" sensor -- Module to access the device sensors  PAGEREF _Toc223161566 \h 3  HYPERLINK \l "_Toc223161567" 2. Module Level Functions  PAGEREF _Toc223161567 \h 4  HYPERLINK \l "_Toc223161568" 2.1 List Channels  PAGEREF _Toc223161568 \h 4  HYPERLINK \l "_Toc223161569" Function signature : list_channels()  PAGEREF _Toc223161569 \h 4  HYPERLINK \l "_Toc223161570" 2.2 Query logical name:  PAGEREF _Toc223161570 \h 4  HYPERLINK \l "_Toc223161571" Function signature : get_logicalname(, value)  PAGEREF _Toc223161571 \h 4  HYPERLINK \l "_Toc223161572" 3. Classes  PAGEREF _Toc223161572 \h 5  HYPERLINK \l "_Toc223161573" 3.1 Base class  PAGEREF _Toc223161573 \h 5  HYPERLINK \l "_Toc223161574" 3.1.1 Object creation  PAGEREF _Toc223161574 \h 5  HYPERLINK \l "_Toc223161575" Function signature : __init__([data_filter=None])  PAGEREF _Toc223161575 \h 5  HYPERLINK \l "_Toc223161576" 3.1.2 Set Data and Error Callback:  PAGEREF _Toc223161576 \h 5  HYPERLINK \l "_Toc223161577" Function signature : set_callback(data_callback, [error_callback=None])  PAGEREF _Toc223161577 \h 5  HYPERLINK \l "_Toc223161578" 3.1.3 Open and listen  PAGEREF _Toc223161578 \h 5  HYPERLINK \l "_Toc223161579" Function signature : start_listening()  PAGEREF _Toc223161579 \h 5  HYPERLINK \l "_Toc223161580" 3.1.4 Stop and close  PAGEREF _Toc223161580 \h 5  HYPERLINK \l "_Toc223161581" Function signature : stop_listening()  PAGEREF _Toc223161581 \h 5  HYPERLINK \l "_Toc223161582" 3.1.5 Set/Get sensor channel property  PAGEREF _Toc223161582 \h 6  HYPERLINK \l "_Toc223161583" 3.1.6 Class attributes  PAGEREF _Toc223161583 \h 6  HYPERLINK \l "_Toc223161584" 3.2 class AccelerometerXYZAxisData  PAGEREF _Toc223161584 \h 7  HYPERLINK \l "_Toc223161585" 3.3 class AccelerometerDoubleTappingData  PAGEREF _Toc223161585 \h 8  HYPERLINK \l "_Toc223161586" 3.3.1 Set/Get property  PAGEREF _Toc223161586 \h 8  HYPERLINK \l "_Toc223161587" 3.4 class MagnetometerXYZAxisData  PAGEREF _Toc223161587 \h 10  HYPERLINK \l "_Toc223161588" 3.5 class MagneticNorthData  PAGEREF _Toc223161588 \h 12  HYPERLINK \l "_Toc223161589" 3.6 class AmbientLightData  PAGEREF _Toc223161589 \h 13  HYPERLINK \l "_Toc223161590" 3.7 class ProximityMonitor  PAGEREF _Toc223161590 \h 14  HYPERLINK \l "_Toc223161591" 3.8 class OrientationData  PAGEREF _Toc223161591 \h 15  HYPERLINK \l "_Toc223161592" 3.9 class RotationData  PAGEREF _Toc223161592 \h 16  1. Introduction sensor -- Module to access the device sensors This PyS60 sensor module supports accessing the sensors on the devices that have S60 Sensor Framework libraries. The S60 Sensor Framework was introduced in S60 5th Edition, but is also backported to S60 3rd Edition, Feature Pack 2 for some mobile devices, as well as the Nokia E66 device, which is an S60 3rd Edition, Feature Pack 1 device with sensor APIs based on the S60 Sensor Framework. The sensor module offers direct access to a device's physical sensors. The following sensor channels are supported by the sensor module, provided the device supports them: Accelerometer XYZ sensor channel Rotation sensor channel Orientation sensor channel Accelerometer double-tap sensor channel Proximity monitor sensor channel Ambient light sensor channel Magnetic North sensor channel Magnetometer XYZ sensor channel The following table lists the sensors available on different S60 devices Accelerometer Double TapAccelerometer XYZOrientationRotationAmbient LightMagnetic NorthProximity MonitorMagnetometer XYZS60 platformN85xxxx3rdFP2E66xxxx3rdFP1N96xxxx3rdFP2E75xxxx3rdFP26720xxxx3rdFP25800xxxxxx5thEd6210xxxxxx3rdFP26710xxxxxx3rdFP2E55xxxxxx3rdFP2 These sensors are mapped to a class using which the sensor channel data can be accessed. To access a particular sensor data an object of the respective class has to be created first. Then the data callback function can be set using the set_callback() method. To start and stop receiving updates the start_listening() and stop_listening() methods can be used. Note: This module's API compatibility between 1.9.x versions isn't guaranteed until 2.0. It won't be broken without good reason, but it can happen. 2. Module Level Functions 2.1 List Channels Function signature : list_channels() This returns a list of dictionaries containing all the available sensors on the device. The returned dictionary has the following format: [ {'id': channel id, 'type': channel type, 'name: channel name} {'id': channel id, 'type': channel type, 'name: channel name} . ] where channel_id, channel_type and channel_name will have the respective channels values as strings. 2.2 Query logical name: Function signature : get_logicalname(, value) This function can be used for querying the logical name based on value. The file sensor_defs.py has the mapping of different sensor properties to their respective hex/decimal values. Following table contains the sensor classes, supported by get_logicalname() and the respective data lookup classes. Sensor ClassDataLookupClassProximityMonitorTProximityStateOrientationDataTSensrvDeviceOrientationAmbientLightDataTSensrvAmbientLightDataAccelerometerDoubleTappingDataKSensrvAccelerometerDirection 3. Classes 3.1 Base class The base class to all types of sensor class is _Sensor. This class provides the methods set_callback, start_listening and stop_listening which are common to all the sensor class objects. The individual sensor class objects should be used to use a specific sensor. 3.1.1 Object creation Function signature : __init__([data_filter=None]) The data_filter argument is only applicable for *XYZAxisData and RotationData sensor classes. Possible Values: MedianFilter(), LowPassFilter() - If nothing is passed then the data is left as-is without any filtering - MedianFilter & LowPassFilter are standard noise filtering algorithms which provide a smoother form of a signal removing the short-term oscillations, leaving only the long-term trend. 3.1.2 Set Data and Error Callback: Function signature : set_callback(data_callback, [error_callback=None]) Sets the data and error callback function. The error callback function will get an argument which will contain a map with Channel ID and error string. The data callback function set will not be passed any arguments. 3.1.3 Open and listen Function signature : start_listening() Opens the sensor channel and start listening. Returns True on success and False on failure. 3.1.4 Stop and close Function signature : stop_listening() Stop listening to the open channel and close the channel. To start receiving updates again the start_listening method can be called on the same sensor object. 3.1.5 Set/Get sensor channel property The current release of PyS60 sensor module does not support either retrieving or modifying all the sensor properties of a particular channel like DataRate, MeasureRange, ScaledRange etc. This feature will be provided in the future dot releases. Refer the individual sensor class description for more details. 3.1.6 Class attributes The sensor classes have one or more attributes which will contain the data returned by the respective sensor. These attributes will be set before the registered data callback function is called and can be accessed using the respective sensor class object. 3.2 class AccelerometerXYZAxisData Detects movement gestures, such as moving the device up or down Inherits from the _Sensor base class Class attributes: x : X-axis value y : Y-axis value z : Z-axis value Example: from sensor import * import e32 import time class DemoApp(): def __init__(self): self.accelerometer = \ AccelerometerXYZAxisData(data_filter=LowPassFilter()) self.accelerometer.set_callback(data_callback=self.my_callback) self.counter = 0 def my_callback(self): # For stream sensor data the callback is hit 35 times per sec(On # 5800). The device cannot handle resource hungry operations like # print in the callback function for such high frequencies. A # workaround is to sample the data as demonstrated below. if self.counter % 5 == 0: print "X:%s, Y:%s, Z:%s" % (self.accelerometer.x, self.accelerometer.y, self.accelerometer.z) self.counter = self.counter + 1 def run(self): self.accelerometer.start_listening() if __name__ == '__main__': d = DemoApp() d.run() e32.ao_sleep(1) d.accelerometer.stop_listening() print "Exiting Accelorometer" 3.3 class AccelerometerDoubleTappingData Detects a double-tap on the device where the taps occur in quick succession and in the same direction. Inherits from the _Sensor base class Class attribute: direction : Hex value indicating the tap direction. Using get_logicalname API and classname as KSensrvAccelerometerDirection the direction can be determined in human readable form. 3.3.1 Set/Get property This sensor class provides additional functions which can be used to set/get some of the properties specific to this sensor. NOTE: set/get sensor property API is not complete yet and is not supported for all sensors or all types of properties. These APIs might change in the future dot releases. get_axis_active() Returns x, y, z values: 1 if axis is active else 0. set_axis_active([x=None, y=None, z=None]) Sets one or more axis as active. Pass 1 to set the axis and 0 to disable it. get_properties() Returns TapThresholdValue, TapDurationValue, TapLatencyValue, TapIntervalValue set_properties([DblTapThresholdValue = None, DblTapDurationValue = None, DblTapLatencyValue = None, DblTapIntervalValue = None]) Sets the tap related properties Example: from sensor import * import e32 class DemoApp(): def __init__(self): self.doubletap = AccelerometerDoubleTappingData() self.doubletap.set_axis_active(x=0, y=1, z=1) print "Active Axis are: ", self.doubletap.get_axis_active() self.doubletap.set_callback(data_callback=self.my_callback) def my_callback(self): print "Raw Direction value", self.doubletap.direction print "Direction: ", get_logicalname(KSensrvAccelerometerDirection, self.doubletap.direction) def run(self): self.doubletap.start_listening() if __name__ == '__main__': d = DemoApp() d.run() e32.ao_sleep(15) d.doubletap.stop_listening() print "Exiting Double Tap" 3.4 class MagnetometerXYZAxisData Indicates the strength of the geomagnetic flux density in the X, Y and Z axes. Only calibrated axis data is exposed right now and not raw data. Inherits from the _Sensor base class Class attributes: x : X-axis value y : Y-axis value z : Z-axis value calib_level: Indicates the calibration level. Possible values: 0 - Not calibrated 1 - Low calibration. 2 - Medium calibration 3 - High accuracy Example: from sensor import * import e32 class DemoApp(): def __init__(self): self.magnetometer = \ MagnetometerXYZAxisData(data_filter=LowPassFilter()) self.magnetometer.set_callback(data_callback=self.my_callback) self.counter = 0 def my_callback(self): # For stream sensor data the callback is hit 35 times per sec(On # 5800). The device cannot handle resource hungry operations like # print in the callback function for such high frequencies. A # workaround is to sample the data as demonstrated below. if self.counter % 5 == 0: print "Calib:", self.magnetometer.calib_level print "X:%s, Y:%s, Z:%s" % (self.magnetometer.x, self.magnetometer.y, self.magnetometer.z) self.counter = self.counter + 1 def run(self): self.magnetometer.start_listening() if __name__ == '__main__': d = DemoApp() d.run() e32.ao_sleep(5) d.magnetometer.stop_listening() print "Exiting MagnetometerAxis" 3.5 class MagneticNorthData Indicates the number of degrees between the device and magnetic north Inherits from the _Sensor base class Class attribute: azimuth : 0 to 359 clockwise degrees from magnetic north Example: from sensor import * import e32 class DemoApp(): def __init__(self): self.magnetic_north = MagneticNorthData() self.magnetic_north.set_callback(data_callback=self.my_callback) def my_callback(self): if self.magnetic_north.calib_level > 0: azimuth = str(self.magnetic_north.azimuth) print "calibration level", self.magnetic_north.calib_level print "azimuth", azimuth def run(self): self.magnetic_north.start_listening() if __name__ == '__main__': d = DemoApp() d.run() e32.ao_sleep(5) d.magnetic_north.stop_listening() print "Exiting MagneticNorth" 3.6 class AmbientLightData Indicates the current light level Inherits from the _Sensor base class Class attribute: - ambient_light : 0 to 100 percent light. Use get_logicalname API with classname as TSensrvAmbientLightData to get the logical names. Example: from sensor import * import e32 class DemoApp(): def __init__(self): self.ALS = AmbientLightData() self.ALS.set_callback(data_callback=self.my_callback) def my_callback(self): print 'ALS : ', get_logicalname(TSensrvAmbientLightData, self.ALS.ambient_light) def run(self): self.ALS.start_listening() if __name__ == '__main__': d = DemoApp() d.run() e32.ao_sleep(30) d.ALS.stop_listening() print "Exiting Ambient Light" 3.7 class ProximityMonitor Indicates how close the device is to, for example, the user's hand or ear Inherits from the _Sensor base class Class attribute: - proximity_state : The possible values are 0, 1 and 2. Use get_logicalname API with TProximityState as the class name to get the logical names of these values. Example: from sensor import * import e32 class DemoApp(): def __init__(self): self.proxi = ProximityMonitor() self.proxi.set_callback(data_callback=self.my_callback) def my_callback(self): print 'proxi : ', get_logicalname(TProximityState, self.proxi.proximity_state) def run(self): self.proxi.start_listening() if __name__ == '__main__': d = DemoApp() d.run() e32.ao_sleep(10) d.proxi.stop_listening() print "After Stop Listening" e32.ao_sleep(5) print "Exiting Proximity" 3.8 class OrientationData Indicates the orientation of the device, for example: display up or display down Inherits from the _Sensor base class Class attribute: - device_orientation : Values range from -1 to 6. To determine the logical names of these values get_logicalname API can be used with classname as TSensrvDeviceOrientation. Example: from sensor import * import e32 class DemoApp(): def __init__(self): self.orientation = OrientationData() self.orientation.set_callback(data_callback=self.my_callback) def my_callback(self): print 'orientation : ', get_logicalname(TSensrvDeviceOrientation, self.orientation.device_orientation) def run(self): self.orientation.start_listening() if __name__ == '__main__': d = DemoApp() d.run() e32.ao_sleep(10) d.orientation.stop_listening() print "Exiting Orientation" 3.9 class RotationData Detects the rotation of the device about each axis Inherits from the _Sensor base class Class attributes: x : X-axis value y : Y-axis value z : Z-axis value Example: from sensor import * import e32 class DemoApp(): def __init__(self): self.rotation = RotationData() self.rotation.set_callback(data_callback=self.my_callback) self.counter = 0 def my_callback(self): # For stream sensor data the callback is hit approximately 20 # times per sec(On 5800). The device cannot handle resource # hungry operations like print in the callback function for such # high frequencies. A workaround is to sample the data as # demonstrated below. if self.counter % 5 == 0: print "X:%s, Y:%s, Z:%s" % (self.rotation.x, self.rotation.y, self.rotation.z) self.counter = self.counter + 1 def run(self): self.rotation.start_listening() if __name__ == '__main__': d = DemoApp() d.run() e32.ao_sleep(5) d.rotation.stop_listening() print "Exiting Rotation"      EMBED Word.Picture.8  PAGE \* MERGEFORMAT 4 ( NUMPAGES \* MERGEFORMAT 16)Python for s60Sensor module S60 sensor framework support  ),-1:;]^opqrszszbVbC$jh@Bh+0J UmHnHuh]hN5CJaJ jh]hN5CJUaJ hKNhKNhKN5CJaJh|,5CJaJ hh3hh3hohh3CJ$aJ$hCJ$aJ$hoCJ$aJ$hohCCJ$aJ$h CJ$aJ$hoh18CJ$aJ$h18hChCCJ(aJ(hlCJ(aJ(hCh18CJ(aJ(hlhh3h5CJaJ  ;<=>?@ABCDEFG$a$gdCgdh3gdJ$a$gd|,(KKGHIJKLMNOPQRSTUVWXYZ[\]^pqrgdKN$a$gd|,gdh3+ , - G H I J K L M N O λ񰡰f񰡰U jwhlPUmHnHu2jh+hlP>*B*UmHnHphuh+5CJ\aJmHnHu j}hlPUmHnHujh+UmHnHuh+mHnHu$jh@Bh+0J UmHnHu2jh+hlP>*B*UmHnHphuh+mHnHuh@Bh+0J mHnHu!rM d ? 5  Y>g$' ' $ ' # ' O k l m n λ谡fVE jkhlPUmHnHuh@Bh+0J 5mHnHu2jh+hlP>*B*UmHnHphuh+5CJ\aJmHnHu jqhlPUmHnHujh+UmHnHuh+mHnHu$jh@Bh+0J UmHnHu2jh+hlP>*B*UmHnHphuh@Bh+0J mHnHuh+mHnHu     3 B C D ^ _ ` a b c d e f ӸӅsbӸH2jh+hlP>*B*UmHnHphu jehlPUmHnHu"h@Bh+0J 6^JmHnHuh@Bh+0J ^JmHnHu2jh+hlP>*B*UmHnHphuh+mHnHuh@Bh+0J mHnHuh+CJaJmHnHu$jh@Bh+0J UmHnHujh+UmHnHuh+mHnHu    9 : ; < = ֲtdRA jYhlPUmHnHu"h@Bh+0J 6^JmHnHuh@Bh+0J ^JmHnHu2jh+hlP>*B*UmHnHphuh+mHnHuh@Bh+0J mHnHuh+CJaJmHnHu$jh@Bh+0J UmHnHu j_hlPUmHnHujh+UmHnHuh+mHnHuh@Bh+0J 5mHnHu= > ? @ A ] ^ _ ` j k l үҤtZJh@Bh+0J 5mHnHu2jh+hlP>*B*UmHnHphuh+5CJ\aJmHnHu jShlPUmHnHujh+UmHnHuh+mHnHu2jh+hlP>*B*UmHnHphuh+mHnHuh@Bh+0J mHnHuh+CJaJmHnHu$jh@Bh+0J UmHnHu    / 0 1 2 3 4 5 6 7 S T U V µ§tcµ§I2j h+hlP>*B*UmHnHphu jG hlPUmHnHuh@Bh+0J 5mHnHu2jh+hlP>*B*UmHnHphuh+mHnHuh@Bh+0J mHnHuh+CJaJmHnHu$jh@Bh+0J UmHnHuh+mHnHujh+UmHnHu jMhlPUmHnHuV t  Ҳß{aQ@ j; hlPUmHnHuh@Bh+0J 5mHnHu2j h+hlP>*B*UmHnHphuh+mHnHuh@Bh+0J mHnHuh+CJaJmHnHu$jh@Bh+0J UmHnHu jA hlPUmHnHujh+UmHnHuh+mHnHu"h@Bh+0J 6^JmHnHuh@Bh+0J ^JmHnHu    , - . / _ u v w x ӸӅsbӸH2j h+hlP>*B*UmHnHphu j5 hlPUmHnHu"h@Bh+0J 6^JmHnHuh@Bh+0J ^JmHnHu2j h+hlP>*B*UmHnHphuh+mHnHuh@Bh+0J mHnHuh+CJaJmHnHu$jh@Bh+0J UmHnHujh+UmHnHuh+mHnHu 789STUVWXYZ[wxֲtdSֲ j)hlPUmHnHuh@Bh+0J ^JmHnHu2j h+hlP>*B*UmHnHphuh+mHnHuh@Bh+0J mHnHuh+CJaJmHnHu$jh@Bh+0J UmHnHu j/ hlPUmHnHujh+UmHnHuh+mHnHuh@Bh+0J 5mHnHuxyzøӋ}t}ZJh@Bh+0J ^JmHnHu2jh+hlP>*B*UmHnHphuh+mHnHuh@Bh+0J mHnHuh+CJaJmHnHu j#hlPUmHnHujh+UmHnHuh+mHnHuh@Bh+0J 5mHnHu$jh@Bh+0J UmHnHu2jh+hlP>*B*UmHnHphu6789^_`z{|}~µ§raµ§G2jh+hlP>*B*UmHnHphu jhlPUmHnHu"h@Bh+0J 5^JmHnHu2jh+hlP>*B*UmHnHphuh+mHnHuh@Bh+0J mHnHuh+CJaJmHnHu$jh@Bh+0J UmHnHuh+mHnHujh+UmHnHu jhlPUmHnHu89:;<=>?@\]Ҳ헎tc헎 j hlPUmHnHu2jh+hlP>*B*UmHnHphuh+mHnHuh@Bh+0J mHnHuh+CJaJmHnHu jhlPUmHnHujh+UmHnHuh+mHnHuh@Bh+0J 5mHnHu$jh@Bh+0J UmHnHu]^_øӋ}t}ZF&h@Bh+0J 5^JmHnHsH u2jh+hlP>*B*UmHnHphuh+mHnHuh@Bh+0J mHnHuh+CJaJmHnHu jhlPUmHnHujh+UmHnHuh+mHnHuh@Bh+0J 5mHnHu$jh@Bh+0J UmHnHu2jh+hlP>*B*UmHnHphu !"#DEF`abdefghiµ§tcµ§I2jvh+hlP>*B*UmHnHphu jhlPUmHnHuh@Bh+0J 5mHnHu2j|h+hlP>*B*UmHnHphuh+mHnHuh@Bh+0J mHnHuh+CJaJmHnHu$jh@Bh+0J UmHnHuh+mHnHujh+UmHnHu jhlPUmHnHu!"#$%&BCֲtcֲ jhlPUmHnHu2jph+hlP>*B*UmHnHphuh+mHnHuh@Bh+0J mHnHuh+CJaJmHnHu$jh@Bh+0J UmHnHu jhlPUmHnHujh+UmHnHuh+mHnHuh@Bh+0J 5mHnHuCDE_`a{|}øӋ}t}ZøIӋ jhlPUmHnHu2jdh+hlP>*B*UmHnHphuh+mHnHuh@Bh+0J mHnHuh+CJaJmHnHu jhlPUmHnHujh+UmHnHuh+mHnHuh@Bh+0J 5mHnHu$jh@Bh+0J UmHnHu2jjh+hlP>*B*UmHnHphu2346789:;GJV߼taXOF=hP35CJ aJ hQ5CJ aJ hY5CJaJh*z!5CJaJ$jh]hN5CJU^JaJh+CJaJmHnHu jhlPUmHnHujh+UmHnHuh+mHnHuh@Bh+0J 5mHnHu2j^h+hlP>*B*UmHnHphuh+mHnHuh@Bh+0J mHnHu$jh@Bh+0J UmHnHu9;<=>?@ABCDEFGWX8 & Fdhgd%-dhgd%-@&gdP3@&gdZf$ ' VWXWÿ~s~~h~\TIhhCJ^Jhfs!^JaJhh=,5CJaJhphK|^JaJhphO`^JaJhph}F^JaJh=,^JaJh/ |^JaJhP#^JaJhph^JaJhph=,^JaJh^^JaJh^ hHOaJ h7DaJ h^aJhP35CJaJhgWhP35CJ aJ h=,5CJaJhgWh=,5CJ aJ 8Yv)5>L[m~$(&P#$/IfgdFf3$$(&P#$/Ifa$gddhgdfs! & Fdhgd%-y} $379:?NRTUYhlnopººººººººººٲhphE^JaJhph<%^JaJhphD^JaJh{M^JaJhCJ^JhhCJ^Jh!h5CJ^JhhCJOJQJh5CJ^JaJh!h5CJ^JaJ7Ff%$(&P#$/IfgdFf^!$$(&P#$/Ifa$gdFf-$(&P#$/IfgdFf)$$(&P#$/Ifa$gd  $&(*,-/029:Ff`:Ff56$$(&P#$/Ifa$gd$(&P#$/IfgdFf 2:?ACEGHJKMTUY[]^`bdegnopdhgd%-FfBFf>$$(&P#$/Ifa$gd$(&P#$/Ifgd>G\hjkqmnorӳӳꠘujaULhB{5CJaJhfChfC5CJaJhV5CJaJhph<%^JaJhih`05^JaJhihi^JaJhh`05^JaJh^JaJh<%^JaJhphC!^JaJh -h -6^JaJhph(^JaJh -6^JaJh -hR6^JaJhphL^JaJhphR^JaJhphe^JaJpnoKM78Q dh$Ifgd%- dh@&gd%-@&gdYdhgdidhgd%- JKLMPReǻǰxiZKZhm2hEOJQJ^JaJhm2hiyOJQJ^JaJhm2hlOJQJ^JaJhm2hQ OJQJ^JaJhR}E^JaJhphPK'^JaJhph%^JaJhphfC^JaJhph=^JaJhm2h[c6^JaJhph[c^JaJh 5CJaJhX f5CJaJh[c5CJaJhV5CJaJhfC5CJaJe}$678;NOPֻ֠֕vne\PEh WhttCJaJh Whtt5CJaJhoi5CJaJhV5CJaJh*CJaJhphfC^JaJh H9^JaJhm2hT06^JaJhphT0^JaJhm2hQ OJQJ^JaJh14 OJQJ^JaJhe3OJQJ^JaJhm2hEOJQJ^JaJhm2hlOJQJ^JaJhm2hiyOJQJ^JaJhnsOJQJ^JaJPQfwHû|pg|\THh:h:5^JaJh:^JaJhBhtt^JaJhB6^JaJhBhB6^JaJhB^JaJh>Kh>K6^JaJh^JaJhK^JaJh>K^JaJh^JaJhphtt^JaJhQV6^JaJhh6^JaJhoi6^JaJh:6^JaJhhoi6^JaJhphoi^JaJh CJaJ  %'78OQop8BhúttlttdhR^JaJhz^JaJhphy^JaJhy^JaJ hyaJ hRkaJhRkhRkaJh$5CJaJh5CJaJhh5CJaJhV5CJaJhttCJaJh#aACJaJhph:^JaJh:^JaJh:h:5^JaJh:h:56^JaJ&uu dh$Ifgd%-}kdE$$Ifl0$ t0644 la<yt: &uu dh$Ifgd%-}kdpE$$Ifl0$ t0644 la<yt:&'8Puu dh$Ifgd%-}kdE$$Ifl0$ t0644 la<yt:PQpthh dh$Ifgd%-kdDF$$Ifl0$ t0644 la<pyt:tlg^^UMMdhgd# dh@&gdYK dh@&gd2gdfCdhgd%-kdF$$Ifl0$ t0644 la<pyt:     ! / 0 Ķuj_W_uODhph ^JaJhV^JaJhp^JaJhphyO^JaJhphYo^JaJhphTU^JaJhphO`^JaJh6^JaJhphF6^JaJhphF^JaJhph/(^JaJh2h\ 56CJaJhF5CJaJh$5CJaJhV5CJaJhRkh9aJh#^JaJhR^JaJh9^JaJ ^ _ !!!"""""##t#u## <dh@&^<gd2hdh@&^h`gd2hdh^h`gd2 dh^gd2dhgd2 dh@&gd dh@&gd20 1 4 5 8 9 < = N U \ ] ^ _ o q }  ɾԳtit^VKhph7^JaJh./^JaJhph!J^JaJhph[r^JaJhph7^JaJhph&6^JaJhph{^JaJhph ^JaJhphL*^JaJhUE^JaJhph?;7^JaJhphBB^JaJhph%^JaJhphY^JaJhphhf^JaJhph ^JaJhph8?F^JaJ '!>!?!!!!!!!!!!!!!!!!"ɾɳ{rg_THThphN6^JaJhphN^JaJhV+iCJaJh WheCJaJh7p5CJaJh4t5CJaJhif5CJaJhN5CJaJh$5CJaJhV5CJaJhph"^JaJhph&6^JaJhphfp ^JaJhph F^JaJhph T^JaJhph!J^JaJhphq^JaJhphZIw^JaJ"""" ""*"+","]"^"""""""""###!#ԾwncXMBhphD^JaJhphP>^JaJhphw)^JaJhph7p^JaJh5CJaJh5CJaJh7p5CJaJhV5CJaJhphb8^JaJhph$^JaJhphN^JaJhphV+i^JaJhphr^JaJhph'F;^JaJhphgMT^JaJhph8^JaJhph9a.^JaJhNh qCJaJ!#(#D#F#t#u#z######O$P$Q$v$w$$$$uj\QIA9hY^JaJh^w^JaJh_^JaJhL*5CJ^JaJhRhR5CJ^JaJhph*L^JaJhph6A^JaJhphS[^JaJhph?^JaJhphU^JaJhph^JaJhphz^JaJh5CJaJhV5CJaJhph$^JaJhphV^JaJhph^JaJhphP>^JaJhphmV^JaJ###P$Q$w$%%%&&&&+'P'Q'R'd'<`<gd zh^hgd(p & Fgd @&gdgd*L dh@&gd2dhgdR dh@&gdRdhgd2 <dh^<gd2 <dh@&^<gd2$$$$$$$%2%W%]%j%k%}%%%%%%%%%%%%%%&&{sh]h]R]Jh#aA^JaJhphEe^JaJhphg>^JaJhphJL^JaJhr24^JaJhg>5CJaJhg>hg>5CJaJh+55CJaJh,q5CJaJhphR^JaJh_hR^JaJh ^JaJhl^JaJh'C^JaJh*^JaJhWK^JaJh~^JaJh^w^JaJhC^JaJh&E7^JaJ&&&&&&&&*'+'O'Q'R'b'd'e't'u'v'''''γ}m^N?^N?^N?hph'^JaJmH sH hIghaq5CJaJmH sH hphf&^JaJmH sH hIghU5CJaJmH sH hph$^JaJmH sH hph ^JaJmH sH h ^JaJmH sH hy^JaJmH sH hphy^JaJmH sH h}9hcfX5CJaJh}9hp 5CJaJh|'5CJaJh-5CJaJh65CJaJhph*L^JaJd'u'''''''''''''(Z((((( )k)))*U***gdw gd$gd#aA & F gdf&''''')*)j)u)))U*l*+++++++/,0,1,C,D,U,˿˿˿˿˳qeYeMeh ^JaJmH sH hy^JaJmH sH hvS^JaJmH sH hphy^JaJmH sH h}9h$5CJaJh5CJaJh_V|5CJaJh65CJaJh#aAh#aA56aJhw OJQJ^JaJhV}OJQJ^JaJh'h'OJQJ^JaJ h'hpI$h!h#aA5mH sH h#aAmH sH h#aAhf&mH sH *** + +'+9+E+Y+~+++1,V,W,X,i,--6-^._. <dh^<gd(p dh@&gd(pdhgd(p hdh^hgd(p & FgdvS & FdhgdvS@&gdw gdw U,W,X,g,h,i,r,u,,,---5-6---Ĵ|teSA6.h5CJaJhph5^JaJ#h#h< 5CJ^JaJmH sH #h#h=_5CJ^JaJmH sH hph(p^JaJmH sH hV^JaJhph(V^JaJhph(V^JaJmH sH hphjk^JaJmH sH hphPy^JaJmH sH hbhV5CJaJmH sH hbh(p5CJaJmH sH hMg:5CJaJmH sH hbhPy5CJaJmH sH hphvS^JaJmH sH --5.:.].^._.`.b.d.g.i.n.p.q.y.............ǻymmm_QhbhLX956CJaJhbh&$56CJaJhbhXa5CJaJhph|X^JaJhph"^JaJhphs8^JaJh(p5CJaJhbhl-M5CJaJhbh&w5CJaJhbh< 5CJaJh5h5CJaJhphM_1^JaJhpho<^JaJhph5^JaJhKh55CJaJ_../}/00(0)0>0I0J0[0\0t000(1l1m1112Y2Z2m222gdRgdCx <dh^<gd(p............../// /"/+/-/./6/G/I/Y/[/j/l/|/}/ȼ~r~rg\g\g\g\Th~L^JaJhph~L^JaJhphC$^JaJhbhXa5CJaJhbh< 5CJaJhph"^JaJh]dh^JaJhphk1^JaJhph:^JaJh(p5CJaJhbhl-M5CJaJhbh&$56CJaJhbhLX956CJaJhbh[E56CJaJhbh}x56CJaJ}/////000'0(0)0$3%3&3*303H333333Żzk\PD\hM^JaJmH sH h2^JaJmH sH hph2^JaJmH sH hphy^JaJmH sH h}9hp 5CJaJhw)5CJaJhwD5CJaJhp hIhw hw OJQJ^Jhch!hc)J5^Jh!hI5^JhCxh(ph}=^JaJh5^JaJh(p5CJaJhbh}=56CJaJhbh}=5CJaJ222223&3H333334!424C4q4444 tdh`tgddh^`gd & F dhgd & F dhgd <dh`<gd & Fdhgd dh@&gdgdR33333333 4444 4!4"4142434=4>4B4C4پteVteVteGeVhphoG^JaJmH sH hphZ-^JaJmH sH hph8^JaJmH sH hbh,5CJaJmH sH hbhZ-5CJaJmH sH h 5CJaJmH sH h2>5CJaJmH sH hbhm 5CJaJmH sH hph^JaJmH sH hID ^JaJmH sH h^JaJmH sH hy^JaJmH sH hph^JaJmH sH C4N4O4p4q444444444N6Y6_6`6y66667799 9 999vvvvlh_VMhw)5CJaJh'v5CJaJhwD5CJaJhDhTOJQJ^JhmOJQJ^JhczhczOJQJ^Jhuj huj5hujhuj5hp hphF^JaJmH sH hbh,5CJaJmH sH hph,^JaJmH sH hphr^JaJmH sH hbhr5CJaJmH sH hbhg5CJaJmH sH 444444444555*5H555556O666"7D777 818gdczdh^`gd1828E8q8r888888 9%9k9999999999gdRgd}gd)_9 & F dhgd5CJaJmH sH hphp ^JaJmH sH hph^JaJmH sH hID ^JaJmH sH h^JaJmH sH hy^JaJmH sH hphy^JaJmH sH h}9hp 5CJaJ9999t<u<v<z<<<<<<<<<<<<<˿}naQAh5CJaJmH sH hpht^JaJmH sH hph^JaJmH sH hID ^JaJmH sH h^JaJmH sH hy^JaJmH sH hphy^JaJmH sH h}9hp 5CJaJhw)5CJaJhwD5CJaJhyh(hRhROJQJ^J hp 5h(h(59: :::3:e:::::1;x;;;;;;; <<-<S<v<<<< & Fdhgd->H>>>>>???.?:?gd gd@< <dh^<gd@a@u@پrbrUF7hphrg^JaJmH sH hphX^JaJmH sH h>5CJaJmH sH h5CJaJmH sH hphp ^JaJmH sH hphuW^JaJmH sH h1^JaJmH sH huW^JaJmH sH hy^JaJmH sH hphy^JaJmH sH u@y@@@@@@@@CCC#C)C9CCCCCCǿteYMAMh1^JaJmH sH h"^JaJmH sH hy^JaJmH sH hphy^JaJmH sH h}9hp 5CJaJhc 5CJaJhwD5CJaJhh!h!OJQJ^JhTJhTJh[p5mH sH hTJhTJ5mH sH h'8mH sH h5CJaJmH sH hphJ^JaJmH sH hph"^JaJmH sH DDDDDD8E9ETEEEEE"F#F>FPF\FqFFFFF$G%Gdhgd]# & Fdhgd]#@&gdgdOjzDFFFFFFFFGG#G$G%G7G8GHGIGYGZGiGjGʾ|m]M>M>M>hphi ^JaJmH sH h?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~Root Entry FPData yHWordDocument9ObjectPoolP_935227290 FOle 9PIC LMETA (   !"#$%&'),-./012456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\^)F! _934367649L  >= x\&WordMicrosoft Word  System    -@"Arial !w*wgw  - & && '--$ + 'C'vw''o+B+A+--&--- !j#'X---&{'--$''[{['--&--- !j#'---&'--$8 PE\''PP\hhrA\h\h--&&&K--\8eBA?><;:986543210/..-,,+**)))((('''''&&&&&&&&&&&&&&"&$&&&)'+'-'/'0'2(4(5(7)8)9):*<*=+>,?,@-A.B.C/D0E1E2F3G4H5H6I8I9I:I;J<J>J?JAJBJRJRJUJYJ^JdJjJpJvJxJyJzJ|I}I~IIHHGFFEEEDDCCBA@?>=;:9865320.,*(&$!~}|zyxvBBrsstttuuuvvvvvwwwwwwxxxxxxxxxxxx x!x#x$x%w&w'w(w(v)v*u*u*t+t+s+s+r+f+G+F+E+D*C*C*C*C*B)B)B)B)A(A'A&A%@$@#@"@ @@@ @@@@@@@@@AAABBBCCCCDDDEEFGrr--&-('&%$#"! 1Table CompObj(hObjInfo *WordDocument [4@4NormalCJOJQJkHmH <A@<Default Paragraph Font  l  ,2$&=xU>ϧ@F  (   @ $&*'    BC DE4F>  c & J  %  @`$&%'.N  3 ?'&''.  B C DEF& P  P@`'&('.N  3 (& )'.  BC DE4F@      !    @`@`)&*'.   B C7 DEF))vS 2$/;J|[anE+)C]vzh\QF<4C,l%']  S2d    O   K u % , 4 < F) QH \d h v  * C Z +o E a |      2 S v       F  a   E k      > ^ | z o f Z O  C % 6 2 * ?  T i | c F &   q E     " ' G * - / 2 4 Z6 7 7 (7 y6 4 J2 / - * V' !"    h ?      y \ B (  | i T ? 2 %  w n c [ Q J C ; /| $^ >  kE " * 18=D!I'N.S5X=[F_Occhzmprttit/t(t5t:t t t t s. qJ me g} ` Y P E : . !       a H 3             m T 7   ~ +zcO=.'!  ->OaUX@`@`%&''.B S  ? [`4@(p@@GTimes New Roman5Symbol3& Arial"hA~0dNokiaNokia  FMicrosoft Word Picture MSWordDocWord.Picture.89qOh+'0 ( H T ` lx$Nokia Standard Document Template Rao Ashwin NORMAL.DOTSayiG bjbjَ  ] *$>"  AFv   jUmHN N!$"##&$5&%SummaryInformation( DocumentSummaryInformation81TableSummaryInformation(+Oh+'0P    $08@HssNokiafokiNormalNokia2kiMicrosoft Word 8.0@@9&v@9&v՜.+,D՜.+,4 hp   Nokia Group   Title 6> _PID_GUIDAN{92130551-2064-11D1-9AA0-00805F3A9EC6} 55#vJ#v% #v#v:V 4l(5J5% 554f4yt18$$If!vh5J5% 55#vJ#v% #v#v:V 4l(5J5% 554f4yt18babu Mahesh136Microsoft Office Word@ @n@,@蝕 #9՜.+,D՜.+,T hp   Nokia Oyjy"C' !Nokia Standard Document Template DocumentSummaryInformation83` CompObj]qTitle  8@ _PID_HLINKSA2 _Toc2231615922 _Toc2231615912 _Toc2231615902 _Toc2231615892 _Toc2231615882 _Toc2231615872 _Toc2231615862z _Toc2231615852t _Toc2231615842n _Toc2231615832h _Toc2231615822b _Toc2231615812\ _Toc2231615802V _Toc2231615792P _Toc2231615782J _Toc2231615772D _Toc2231615762> _Toc22316157528 _Toc22316157422 _Toc2231615732, _Toc2231615722& _Toc2231615712  _Toc2231615702 _Toc2231615692 _Toc2231615682 _Toc2231615672 _Toc2231615662 _Toc223161565  FMicrosoft Office Word Document MSWordDocWord.Document.89q5D@D vSNormalCJOJQJ_HmH sH tH F@BF Heading 1$ & F@&5;D@BD Heading 2$ & F@&5@@B@ Heading 3$ & F@&8@1B8 Heading 4  & F@&8@18 Heading 5  & F@&8@1B8 Heading 6  & F@&8@1B8 Heading 7  & F@&8@1B8 Heading 8  & F@&@ @1B@ Heading 9 & F@& hDA@D Default Paragraph FontVi@V  Table Normal :V 44 la (k@(No List 6O6 00 BodyText0 @0 FooterCJB@B Header  "9r FO"F 02 BodyText% ^% `FO2F 01 BodyText^`>OB> 11 BodyText^OaR Bulleted o 2p & F >Te^ `>Ob> 22 BodyText% ^% FOrF 12 BodyText$ ^$ `FOF 23 BodyText7^7`>O> 33 BodyText7^7@@@ TOC 1h5;CJ\^JaJOA Bulleted o 1p & Fw>Te^w`O Bulleted - 1]>Te-O Numbered List 0t & F>T.^`O Numbered List 1t & Fw>Te.^w`BOB Numbered List 2  ^ 6U@6 Y Hyperlink >*B*phOQ Bulleted - 2]!>Te-j@#j : Table Grid7:V"0"<@< TOC 2#5CJOJQJ\:@: TOC 3 $^ CJOJQJ4OB4 Title Text%5DObD Document Title& 5CJ$.@A. TOC 4 '^:: TOC 5 (^ CJOJQJ:: TOC 6 )p^p CJOJQJ:: TOC 7 *L^L CJOJQJ:: TOC 8 +(^( CJOJQJ:: TOC 9 ,^ CJOJQJ: @: hAIndex 1-$^`$:1@: hA List Number . & F : : hAIndex 2/$^`$>6@> hA List Bullet 2 0 & F: !: hAIndex 31$^`$>7@"> hA List Bullet 3 2 & F: A: hAIndex 43p$^p`$>8@B> hA List Bullet 4 4 & FC ;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^pqrMd?5Y> g $ 9 ; < = > ? @ A B C D E F G W X   8Yv)5>L[m~  $&(*,-/029:?ACEGHJKMTUY[]^`bdegnopnoKM78Q &'8PQp^_tuPQw+PQRdu Z !k!!!"U""""" # #'#9#E#Y#~###1$V$W$X$i$%%6%^&_&&'}'(((()(>(I(J([(\(t(((()l)m)))*Y*Z*m*******+&+H+++++,!,2,C,q,,,,,,,,,,,,---*-H-----.O..."/D/// 01020E0q0r000000 1%1k11111111112 22232e2222213x3333333 44-4S4v444444q5r5s5|5}55555555,6-6H66666777.7:7O7j777788)888888889 9!9I99999&:':::_:`:{::::::;;9;;;;;o<p<y<z<<<<<<<<8=9=T=====">#>>>P>\>q>>>>>$?%?7?H?Y?j?k?t?u????????*@C@D@_@@@3AvAAAA9BaBbBuBBBBBBB C(C*C+C-C.C0C1C3C4C5CQCRCSCCCCCCCCCCCCCCCCC0000000000000000000000000000000000000000000000000000#0#0#0$0$0$0$0#0$0'0'0'0'0'0'0'0'0'0'0$0$0'0$0$0$0$0$0$000000000000000000000 0 0 0 0 0 0 0 000 0 0 0 0 0 0 0 0 0 0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 0000000(0(000000000(0(0(0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000(0008080000000808080008080800080808000800080000(0 0 0000 0 0 00000000000000000000000000000000000(0 0 000000800000000000000000000000000000000000(0 0 0 000 0 0 0 0 0000000000000000000000000000000000000000(0 0 000 00000000000000000000000000000(0 0 000000000000000000000000000000(0 0 0000000000000000000000000000000(0 0 000000      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ00000000000000000000000(0 0 000 0 0 0000000000000000000000000000000000@0X00@0X00@0X00@0X00@0@0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0@0@0X00 )5>L[m~  $&(*,-/029:?ACEGHJKMTUY[]^`bdegno&'PQPQ#V$W$>(&+H+,%111v4457788;9;;o<z<<>?CZ00Z00Z00Z00Z00Z00Z00Z00Z00Z00X00Z00Z00Z00Z00Z00Z00Z00Z00Z00Z00X00Z00Z00Z00Z00Z00Z00Z00Z00Z00Z00X00Z00Z00Z00Z00Z00Z00Z00Z00Z00Z00X00Z00Z00Z00Z00Z00Z00Z00Z00Z00Z00X0 0Z0 0Z0 0Z0 0Z0 0Z0 0Z0 0Z0 0Z0 0Z0 0Z0 0X0 0Z0 0Z0 0Z0 0Z0 0Z0 0Z0 0Z0 0Z0 0Z0 0Z0 0X00Z00Z00Z00Z00Z00Z00Z00Z00Z00Z00X00Z00Z00Z00Z00Z00Z00Z00Z00Z00Z00X00Z00Z00Z00Z00Z00Z00Z00Z00Z00Z00@00 Z00\a@0 Z00a@0 Z00a@0 Z00ȶ@0 Z0 0 @0 @0@0@0Z00pw@0@0@0@0@0R00 @0@0 @0@0@0Z0 0  @0@0Z0 0q @0@0@0Z00q @0@0 @0 @0@0 0@00 O = V x]CVeP0 "!#$&'U,-.}/3C499<?u@CzDjGNKK&*,-./0123456789:;=?DFGHIOQRSTVWY[\^_abefiklnprtGr8:p&P#d'*_.24189<:?AD%GIKKKK')+<>@ABCEJKLMNPUXZ]`cdghjmoqsuvwK(r,HJKMmC_abd:<=?_k0235U   .w8TVWYy8_{}~9;<>^  " E a d e g   ! " $ D ` |   3 6 7 9 C X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%̕ %'+BDGbe:!8@0(  B S  ? _Toc223161565 _Toc223161566 _Toc223161567 _Toc223161568 _Toc223161569 _Toc223161570 _Toc223161571 _Toc223161572 _Toc223161573 _Toc223161574 _Toc223161575 _Toc223161576 _Toc223161577 _Toc223161578 _Toc223161579 _Toc223161580 _Toc223161581 _Toc223161582 _Toc223161583 _Toc223161584 _Toc222895888 _Toc223161585 _Toc223161586 _Toc223161587 _Toc223161588 _Toc223161589 _Toc223161590 _Toc223161591 _Toc223161592 _934367649G X o8QuQ#%&+ 1v47;>MCC V Ov##5%G+$1478;>MCC@ J \hmfuw  %'78OQop$)71<AMq} !,  $ < = H I V b ! "*"."0"4"6":"?"S"v"""""""""#/#6#=#B#]#{#####$$$$$$_&n&&&'+'6'G'I'Y'['j'l'|'}''''''''''P(W(|(((((()%)0)K)L)Y)Z)j)u)))))))*?*W*u*******+0+G+- -2-C-T-k-l-w-x-------------/9/X/]/a/~////////////000 0,0M0n0000000011$122;2N2Q2b2m2222222222333/3X3w3334 44414P4f4s444445(525;5?5V55555555 6 666*656@6`6o6p666666$7+72777S7g777,8;8f8u88889)93969F9Q9h9i9v9w9999999999 :$:B:\:::::::);8;;;#<2<H<Q<U<m<<<<<<<<==%=&=6=A=L=t=======>F>M>T>Y>u>>>>??????? @ @@@(@2@>@L@W@AAAAAAAAAAB&B(B7BABMBPB\B}BBBBBBBC'C(C(C*C*C+C+C-C.C0C1C3C4CSCmCoCCCCX ^ `inZeq~+!,$ = y !!(!0!u!z!!!!!""*"""" # ##/#8#=#D#P#V#r#}###i$t$h&o&&&!',''')(-(>(D(J(O(`(c(((((C)L)q)t)))))^*a************+ ++,,,,----T-l-----G.K.W._.....*/,/P/X///6090e0p0r0t000000000001112 222"2Q2d22222223 3=3B3333333334 444$4*4G4R4W4\444}55555555556 61646P6U6666677$7-72797E7K7^7i7n7s768=8888888 9969H9`9i99999+:.:S:^:`:b:::::::::::::; ;;;z<~<<<<<<<<<====@=\=a===>!>#>%>F>O>T>[>g>m>>>>>u?y?????????@ @H@K@i@l@@@@@=AAAAAAAfBiBBBBBBBBBBBB CCC'C(C(C*C*C+C+C-C.C0C1C3C4CSCmCoCCCC3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333^r,MCd?k5w8Y_> E g  $ `  9 G X ]^deomo8QuQvR $ !!X$i$*&_&&'()(?*^*&+H++C,q,,--..0601111W4444s5}566778*888 :+:;9;;;p<z<==%?u?2@H@@@vAAAAABfB'C(C(C*C*C+C+C-C.C0C1C3C4CmCoCCCCC(C(C*C*C+C+C-C.C0C1C3C4CCC.:.1b342dD0p. ({@7F*jVsVcn9fRS>luG"@ET1>B3Fr&MJ-tP\ PF_ V`8d,$VfΛ$Wy?Almq6.JDzH5Co~~C^`. ^`OJQJo( 88^8`OJQJo( ^`OJQJo(hh^h`.@q.@q.@q..@q...@ q ....@ q .....@ q ......@ q.......@ q........^`CJOJQJo(^`CJOJQJo(opp^p`CJOJQJo(@ @ ^@ `CJOJQJo(^`CJOJQJo(^`CJOJQJo(^`CJOJQJo(^`CJOJQJo(PP^P`CJOJQJo(^`CJOJQJo(^`CJOJQJo(opp^p`CJOJQJo(@ @ ^@ `CJOJQJo(^`CJOJQJo(^`CJOJQJo(^`CJOJQJo(^`CJOJQJo(PP^P`CJOJQJo(^`OJPJQJ^Jo(-tt^t`OJQJ^Jo(hHo<DD^D`OJPJQJ^Jo(hH-  ^ `OJQJo(hH  ^ `OJQJ^Jo(hHo^`OJQJo(hH^`OJQJo(hHTT^T`OJQJ^Jo(hHo$$^$`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hH^`CJOJQJo(^`CJOJQJo(opp^p`CJOJQJo(@ @ ^@ `CJOJQJo(^`CJOJQJo(^`CJOJQJo(^`CJOJQJo(^`CJOJQJo(PP^P`CJOJQJo(h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hH^`CJOJQJo(^`CJOJQJo(opp^p`CJOJQJo(@ @ ^@ `CJOJQJo(^`CJOJQJo(^`CJOJQJo(^`CJOJQJo(^`CJOJQJo(PP^P`CJOJQJo(h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hHhhh^h`OJQJo(hHh88^8`OJQJ^Jo(hHoh^`OJQJo(hHh  ^ `OJQJo(hHh  ^ `OJQJ^Jo(hHohxx^x`OJQJo(hHhHH^H`OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hH^`OJPJQJ^Jo(-tt^t`OJQJ^Jo(hHoDD^D`OJQJo(hH  ^ `OJQJo(hH  ^ `OJQJ^Jo(hHo^`OJQJo(hH^`OJQJo(hHTT^T`OJQJ^Jo(hHo$$^$`OJQJo(hH^`5OJPJQJ^Jo(-tt^t`OJQJ^Jo(hHoDD^D`OJQJo(hH  ^ `OJQJo(hH  ^ `OJQJ^Jo(hHo^`OJQJo(hH^`OJQJo(hHTT^T`OJQJ^Jo(hHo$$^$`OJQJo(hH^`CJOJQJo(^`CJOJQJo(opp^p`CJOJQJo(@ @ ^@ `CJOJQJo(^`CJOJQJo(^`CJOJQJo(^`CJOJQJo(^`CJOJQJo(PP^P`CJOJQJo(h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hH^`CJOJQJo(^`CJOJQJo(opp^p`CJOJQJo(@ @ ^@ `CJOJQJo(^`CJOJQJo(^`CJOJQJo(^`CJOJQJo(^`CJOJQJo(PP^P`CJOJQJo(^`CJOJQJo(^`CJOJQJo(opp^p`CJOJQJo(@ @ ^@ `CJOJQJo(^`CJOJQJo(^`CJOJQJo(^`CJOJQJo(^`CJOJQJo(PP^P`CJOJQJo(h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hH^`CJOJQJo(^`CJOJQJo(opp^p`CJOJQJo(@ @ ^@ `CJOJQJo(^`CJOJQJo(^`CJOJQJo(^`CJOJQJo(^`CJOJQJo(PP^P`CJOJQJo(Co~~({F*y?AlS>V`Vf1>BtP PF_mqdVcn9FG"@&MJ.JDz>b                                                     e'  Fe-dv Q@C0 AUp1 h81;2$`(&^8==] h8f.o<f.o<_ AA}P"@{A1.f.A  F HAe'1.fB+ pTfX[zH1i1pl  FtBppTfXEqlFW%pu  F ju  FqUv*(dzZey_ AAX[z  F*(dz7^(U)))4)m()+)w)w)*L*I^*Fs*u*+* +3+,t[, - -l6-Z-_. .U.9a.r. /./ F/`000T0u0?1M_1k1)2G2m23e3h3Yz3U3r4r248D4~T4/y4I5+5U5&66z#6QV6+7&47?;7>7B7&E7b8g9 H9LX9)_9}9:[:d:Mg:.;'F;TV;X<<(<o<~<$=J&=D >2>P>R>X>g>Xm?KKKK/SKWKqK&L*LpL~L M2Ml-Me3MN4M{MN6NKN^RN]mN%OOHOyOPHPlP!R"KRJpR SSvSo8T:T>TgMTiZTTUYU(VdVmV WW(WaWgWuWwWFXcfX|XzAYFaYtYtdZX[Q \D\_\"v\ O] _=_s_$~_ `d^`Xava*b 'bAb~_bQc[c}cddgd`~dEeX fxf1fZftgg;LgOg]dhV+ioiviujOjkXklmm:m:Xm?im`Sn,3o33o(p3p7p qq,qf:qWqriDr[rw]r{wrwrN;s8osys4tt,gtdgtttLu VvlvwwwZIwCxMx*yPyiy~yz9zHzczB{/ |_V|X|}}V})~:~rT[kDDR/@vB1l4:" 7sy>1YOXYr"$.F=u -6C'`L}tk p #`Y1 Bwxj,1EdUhs92[p fCJYzhm(MGh(?CvOx|26g(/K4bjk7Wi~&:OTcYo=,YK2LT{'-45XbegqrgBAx<,FtpUamK}|,@<y'RUT>}Rqx:V!J`^,v ?Q_(u{4"!TJgQ Ig .(v -Ve*9KVJif s8^wK|^8>GW_vj}vLw /({&,)eO`n< z .K;LJL'%-;tv9:@k$Jz"# *"6&8F^`o: nLV1LMRB'<@dHJ9[h,Y9tPk MThf0g}/Ull<Yjlye:m| :)KG;&wK2IRns{})5>L[m~  $&(*,-/029:?ACEGHJKMTUY[]^`bdegno &'8PQp(CQCRCSCCCCCCCCCCCCCC@mmz mmC@@UnknownGz Times New Roman5Symbol3& z Arial?5 z Courier New;Wingdings"Ve;Ҧ&kFV #9"y #9"y!V4dCCi5 2QVHP?p 2 Nokia Standard Document Template Rao AshwinSayibabu Maheshl