+ All Categories
Home > Documents > Contents · Contents I INTRODUCTION & CONCEPTS 17 1 Introduction to Internet of Things.....19 1.1...

Contents · Contents I INTRODUCTION & CONCEPTS 17 1 Introduction to Internet of Things.....19 1.1...

Date post: 07-Apr-2019
Category:
Upload: phungkhue
View: 219 times
Download: 1 times
Share this document with a friend
7
Contents I INTRODUCTION & CONCEPTS 17 1 Introduction to Internet of Things .......................... 19 1.1 Introduction 20 1.1.1 Definition & Characteristics of IoT ................................. 22 1.2 Physical Design of IoT 23 1.2.1 Things in IoT ................................................ 23 1.2.2 IoT Protocols ................................................ 23 1.3 Logical Design of IoT 29 1.3.1 IoT Functional Blocks ......................................... 29 1.3.2 IoT Communication Models ..................................... 30 1.3.3 IoT Communication APIs ....................................... 32 1.4 IoT Enabling Technologies 35 1.4.1 Wireless Sensor Networks ...................................... 35 1.4.2 Cloud Computing ............................................. 36 1.4.3 Big Data Analytics ............................................ 37 1.4.4 Communication Protocols ....................................... 37 1.4.5 Embedded Systems ........................................... 38 1.5 IoT Levels & Deployment Templates 38 1.5.1 IoT Level-1 ................................................. 39 1.5.2 IoT Level-2 ................................................. 40 1.5.3 IoT Level-3 ................................................. 41 1.5.4 IoT Level-4 ................................................. 42
Transcript
Page 1: Contents · Contents I INTRODUCTION & CONCEPTS 17 1 Introduction to Internet of Things.....19 1.1 Introduction20 1.1.1 Definition & Characteristics of IoT ...

Contents

I INTRODUCTION & CONCEPTS 17

1 Introduction to Internet of Things . . . . . . . . . . . . . . . . . . . . . . . . . . 19

1.1 Introduction 201.1.1 Definition & Characteristics of IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.2 Physical Design of IoT 231.2.1 Things in IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231.2.2 IoT Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1.3 Logical Design of IoT 291.3.1 IoT Functional Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291.3.2 IoT Communication Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301.3.3 IoT Communication APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

1.4 IoT Enabling Technologies 351.4.1 Wireless Sensor Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351.4.2 Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361.4.3 Big Data Analytics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371.4.4 Communication Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371.4.5 Embedded Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

1.5 IoT Levels & Deployment Templates 381.5.1 IoT Level-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391.5.2 IoT Level-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401.5.3 IoT Level-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411.5.4 IoT Level-4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Page 2: Contents · Contents I INTRODUCTION & CONCEPTS 17 1 Introduction to Internet of Things.....19 1.1 Introduction20 1.1.1 Definition & Characteristics of IoT ...

1.5.5 IoT Level-5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431.5.6 IoT Level-6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2 Domain Specific IoTs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

2.1 Introduction 48

2.2 Home Automation 482.2.1 Smart Lighting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.2.2 Smart Appliances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.2.3 Intrusion Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.2.4 Smoke/Gas Detectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

2.3 Cities 502.3.1 Smart Parking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502.3.2 Smart Lighting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502.3.3 Smart Roads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502.3.4 Structural Health Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512.3.5 Surveillance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512.3.6 Emergency Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

2.4 Environment 522.4.1 Weather Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522.4.2 Air Pollution Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522.4.3 Noise Pollution Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532.4.4 Forest Fire Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532.4.5 River Floods Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

2.5 Energy 542.5.1 Smart Grids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542.5.2 Renewable Energy Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552.5.3 Prognostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

2.6 Retail 562.6.1 Inventory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562.6.2 Smart Payments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562.6.3 Smart Vending Machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

2.7 Logistics 572.7.1 Route Generation & Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572.7.2 Fleet Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582.7.3 Shipment Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582.7.4 Remote Vehicle Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

2.8 Agriculture 592.8.1 Smart Irrigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592.8.2 Green House Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

2.9 Industry 602.9.1 Machine Diagnosis & Prognosis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602.9.2 Indoor Air Quality Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Page 3: Contents · Contents I INTRODUCTION & CONCEPTS 17 1 Introduction to Internet of Things.....19 1.1 Introduction20 1.1.1 Definition & Characteristics of IoT ...

2.10 Health & Lifestyle 622.10.1 Health & Fitness Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622.10.2 Wearable Electronics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

3 IoT and M2M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

3.1 Introduction 66

3.2 M2M 66

3.3 Difference between IoT and M2M 67

3.4 SDN and NFV for IoT 693.4.1 Software Defined Networking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.4.2 Network Function Virtualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

4 IoT System Management with NETCONF-YANG . . . . . . . . . . . . . 79

4.1 Need for IoT Systems Management 80

4.2 Simple Network Management Protocol (SNMP) 814.2.1 Limitations of SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

4.3 Network Operator Requirements 82

4.4 NETCONF 83

4.5 YANG 84

4.6 IoT Systems Management with NETCONF-YANG 914.6.1 NETOPEER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

II DEVELOPING INTERNET OF THINGS 97

5 IoT Platforms Design Methodology . . . . . . . . . . . . . . . . . . . . . . . . . 99

5.1 Introduction 100

5.2 IoT Design Methodology 1005.2.1 Step 1: Purpose & Requirements Specification . . . . . . . . . . . . . . . . . . . . . . 1005.2.2 Step 2: Process Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015.2.3 Step 3: Domain Model Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1025.2.4 Step 4: Information Model Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1035.2.5 Step 5: Service Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1035.2.6 Step 6: IoT Level Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055.2.7 Step 7: Functional View Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1065.2.8 Step 8: Operational View Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1095.2.9 Step 9: Device & Component Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . 1115.2.10 Step 10: Application Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

Page 4: Contents · Contents I INTRODUCTION & CONCEPTS 17 1 Introduction to Internet of Things.....19 1.1 Introduction20 1.1.1 Definition & Characteristics of IoT ...

5.3 Case Study on IoT System for Weather Monitoring 111

5.4 Motivation for Using Python 115

6 IoT Systems - Logical Design using Python . . . . . . . . . . . . . . . . 121

6.1 Introduction 122

6.2 Installing Python 123

6.3 Python Data Types & Data Structures 1236.3.1 Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1236.3.2 Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1256.3.3 Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1266.3.4 Tuples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1276.3.5 Dictionaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1286.3.6 Type Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

6.4 Control Flow 1296.4.1 if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1296.4.2 for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1306.4.3 while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1316.4.4 range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1316.4.5 break/continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1316.4.6 pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

6.5 Functions 132

6.6 Modules 135

6.7 Packages 137

6.8 File Handling 138

6.9 Date/Time Operations 140

6.10 Classes 141

6.11 Python Packages of Interest for IoT 1446.11.1 JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1446.11.2 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1456.11.3 HTTPLib & URLLib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1476.11.4 SMTPLib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

7 IoT Physical Devices & Endpoints . . . . . . . . . . . . . . . . . . . . . . . . 153

7.1 What is an IoT Device 1547.1.1 Basic building blocks of an IoT Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

7.2 Exemplary Device: Raspberry Pi 155

7.3 About the Board 155

7.4 Linux on Raspberry Pi 156

Page 5: Contents · Contents I INTRODUCTION & CONCEPTS 17 1 Introduction to Internet of Things.....19 1.1 Introduction20 1.1.1 Definition & Characteristics of IoT ...

7.5 Raspberry Pi Interfaces 1627.5.1 Serial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1627.5.2 SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1627.5.3 I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

7.6 Programming Raspberry Pi with Python 1627.6.1 Controlling LED with Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1627.6.2 Interfacing an LED and Switch with Raspberry Pi . . . . . . . . . . . . . . . . . . . . . 1647.6.3 Interfacing a Light Sensor (LDR) with Raspberry Pi . . . . . . . . . . . . . . . . . . . 166

7.7 Other IoT Devices 1677.7.1 pcDuino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1677.7.2 BeagleBone Black . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1687.7.3 Cubieboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

8 IoT Physical Servers & Cloud Offerings . . . . . . . . . . . . . . . . . . . 171

8.1 Introduction to Cloud Storage Models & Communication APIs 172

8.2 WAMP - AutoBahn for IoT 172

8.3 Xively Cloud for IoT 176

8.4 Python Web Application Framework - Django 1798.4.1 Django Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1808.4.2 Starting Development with Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

8.5 Designing a RESTful Web API 188

8.6 Amazon Web Services for IoT 1938.6.1 Amazon EC2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1938.6.2 Amazon AutoScaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1968.6.3 Amazon S3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1998.6.4 Amazon RDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1998.6.5 Amazon DynamoDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2028.6.6 Amazon Kinesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2048.6.7 Amazon SQS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2068.6.8 Amazon EMR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

8.7 SkyNet IoT Messaging Platform 211

9 Case Studies Illustrating IoT Design . . . . . . . . . . . . . . . . . . . . . . 217

9.1 Introduction 218

9.2 Home Automation 2189.2.1 Smart Lighting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2189.2.2 Home Intrusion Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

9.3 Cities 2379.3.1 Smart Parking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

Page 6: Contents · Contents I INTRODUCTION & CONCEPTS 17 1 Introduction to Internet of Things.....19 1.1 Introduction20 1.1.1 Definition & Characteristics of IoT ...

9.4 Environment 2479.4.1 Weather Monitoring System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2479.4.2 Weather Reporting Bot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2639.4.3 Air Pollution Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2669.4.4 Forest Fire Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270

9.5 Agriculture 2759.5.1 Smart Irrigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275

9.6 Productivity Applications 2789.6.1 IoT Printer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278

III ADVANCED TOPICS 283

10 Data Analytics for IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285

10.1 Introduction 286

10.2 Apache Hadoop 29210.2.1 MapReduce Programming Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29210.2.2 Hadoop MapReduce Job Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29210.2.3 MapReduce Job Execution Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29410.2.4 Hadoop Cluster Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295

10.3 Using Hadoop MapReduce for Batch Data Analysis 30110.3.1 Hadoop YARN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

10.4 Apache Oozie 31110.4.1 Setting up Oozie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31110.4.2 Oozie Workflows for IoT Data Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312

10.5 Apache Spark 320

10.6 Apache Storm 32510.6.1 Setting up a Storm Cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326

10.7 Using Apache Storm for Real-time Data Analysis 33010.7.1 REST-based approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33010.7.2 WebSocket-based approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337

10.8 Structural Health Monitoring Case Study 342

11 Tools for IoT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351

11.1 Introduction 352

11.2 Chef 35211.2.1 Setting up Chef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354

Page 7: Contents · Contents I INTRODUCTION & CONCEPTS 17 1 Introduction to Internet of Things.....19 1.1 Introduction20 1.1.1 Definition & Characteristics of IoT ...

11.3 Chef Case Studies 35511.3.1 Multi-tier Application Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35511.3.2 Hadoop Cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36011.3.3 Storm Cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368

11.4 Puppet 372

11.5 Puppet Case Study - Multi-tier Deployment 374

11.6 NETCONF-YANG Case Studies 37711.6.1 Steps for IoT device Management with NETCONF-YANG . . . . . . . . . . . . . . . 37811.6.2 Managing Smart Irrigation IoT System with NETCONF-YANG . . . . . . . . . . . 37911.6.3 Managing Home Intrusion Detection IoT System with NETCONF-YANG . . . . 392

11.7 IoT Code Generator 405

Appendix-A - Setting up Raspberry Pi . . . . . . . . . . . . . . . . . . . . 413

Appendix-B - Setting up Ubuntu VM . . . . . . . . . . . . . . . . . . . . . . 419

Appendix-C - Setting up Django . . . . . . . . . . . . . . . . . . . . . . . . . 432

Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441


Recommended