text:
# Rest API description

## Table Of Contents

+ [Face Recognition Service](#face-recognition-service)
  + [Managing Subjects](#managing-subjects)
      + [Add a Subject](#add-a-subject)
      + [Rename a Subject](#rename-a-subject)
      + [Delete a Subject](#delete-a-subject)
      + [Delete All Subjects](#delete-all-subjects)
      + [List Subjects](#list-subjects)
  + [Managing Subject Examples](#managing-subject-examples)
    + [Add an Example of a Subject](#add-an-example-of-a-subject)
    + [List of All Saved Examples of the Subject](#list-of-all-saved-examples-of-the-subject)
    + [Delete All Examples of the Subject by Name](#delete-all-examples-of-the-subject-by-name)
    + [Delete an Example of the Subject by ID](#delete-an-example-of-the-subject-by-id)
    + [Direct Download an Image example of the Subject by ID](#direct-download-an-image-example-of-the-subject-by-id)
    + [Download an Image example of the Subject by ID](#download-an-image-example-of-the-subject-by-id)
  + [Recognize Faces from a Given Image](#recognize-faces-from-a-given-image)
  + [Verify Faces from a Given Image](#verify-faces-from-a-given-image)
+ [Face Detection Service](#face-detection-service)
+ [Face Verification Service](#face-verification-service)
+ [Base64 Support](#base64-support)

To know more about face services and face plugins visit [this page](Face-services-and-plugins.md).

## Face Recognition Service

### Managing Subjects

These endpoints allow you to work with subjects.

The most popular case of subject usage is to assign a subject to one person.
So, to upload several images of one person, you need to upload them to one subject.
As a result, when you perform face recognition, you find a person who is on the image.

Another case of subject usage is assigning a photo of several people as a subject.
In this case, you need to detect all faces on the image and then save them to one subject.
As a result, when you perform face recognition, you find all photos on which there is the person who is on the image.
You don’t need to work with subjects explicitly.
You can just upload a new example of the subject and the subject will be created automatically.
Or if you delete all the examples of the subject, it will be deleted automatically.

### Add a Subject
```since 0.6 version```

Create a new subject in Face Collection. Creating a subject is an optional step,
you can [upload an example](#add-an-example-of-a-subject) without an existing subject, and a subject will be created automatically.

```shell
curl -X POST "http://localhost:8000/api/v1/recognition/subjects" \
-H "Content-Type: application/json" \
-H "x-api-key: <service_api_key>" \
-d '{"subject: <subject_name>"}'
```
| Element             | Description | Type   | Required | Notes                                                        |
| ------------------- | ----------- | ------ | -------- | ------------------------------------------------------------ |
| Content-Type        | header      | string | required | application/json                                          |
| x-api-key           | header      | string | required | api key of the Face recognition service, created by the user          |
| subject             | body param  | string | required | is the name of the subject. It can be a person name, but it can be any string                 |

Response body on success:
```json
{
  "subject": "<subject_name>"
}
```

| Element  | Type   | Description                |
| -------- | ------ | -------------------------- |
| subject  | string | is the name of the subject |

### Rename a Subject
```since 0.6 version```

Rename existing subject. If a new subject name already exists,
subjects are merged - all faces from the old subject name are **reassigned** to the subject with the new name, old subject removed.

```shell
curl -X PUT "http://localhost:8000/api/v1/recognition/subjects/<subject>" \
-H "Content-Type: application/json" \
-H "x-api-key: <service_api_key>" \
-d '{"subject: <subject_name>"}'
```
| Element             | Description | Type   | Required | Notes                                                        |
| ------------------- | ----------- | ------ | -------- | ------------------------------------------------------------ |
| Content-Type        | header      | string | required | application/json                                          |
| x-api-key           | header      | string | required | api key of the Face recognition service, created by the user          |
| subject             | body param  | string | required | is the name of the subject. It can be a person name, but it can be any string                 |

Response body on success:
```json
{
  "updated": "true|false"
}
```

| Element  | Type    | Description |
| -------- | ------- | ----------------- |
| updated  | boolean | failed or success |

### Delete a Subject
```since 0.6 version```

Delete existing subject and all saved faces.

```shell
curl -X DELETE "http://localhost:8000/api/v1/recognition/subjects/<subject>" \
-H "Content-Type: application/json" \
-H "x-api-key: <service_api_key>"
```
| Element             | Description | Type   | Required | Notes                                                        |
| ------------------- | ----------- | ------ | -------- | ------------------------------------------------------------ |
| Content-Type        | header      | string | required | application/json                                          |
| x-api-key           | header      | string | required | api key of the Face recognition service, created by the user          |
| subject             | body param  | string | required | is the name of the subject. It can be a person name, but it can be any string |

Response body on success:
```json
{
  "subject": "<subject_name>"
}
```

| Element  | Type   | Description                |
| -------- | ------ | -------------------------- |
| subject  | string | is the name of the subject |

### Delete All Subjects
```since 0.6 version```

Delete all existing subjects and all saved faces.

```shell
curl -X DELETE "http://localhost:8000/api/v1/recognition/subjects" \
-H "Content-Type: application/json" \
-H "x-api-key: <service_api_key>"
```
| Element             | Description | Type   | Required | Notes                                                        |
| ------------------- | ----------- | ------ | -------- | ------------------------------------------------------------ |
| Content-Type        | header      | string | required | application/json                                          |
| x-api-key           | header      | string | required | api key of the Face recognition service, created by the user          |

Response body on success:
```json
{
  "deleted": "<count>"
}
```

| Element  | Type    | Description                |
| -------- | ------- | -------------------------- |
| deleted  | integer | number of deleted subjects |

### List Subjects
```since 0.6 version```

This returns all subject related to Face Collection.

```shell
curl -X GET "http://localhost:8000/api/v1/recognition/subjects/" \
-H "Content-Type: application/json" \
-H "x-api-key: <service_api_key>"
```
| Element             | Description | Type   | Required | Notes                                                        |
| ------------------- | ----------- | ------ | -------- | ------------------------------------------------------------ |
| Content-Type        | header      | string | required | application/json                                          |
| x-api-key           | header      | string | required | api key of the Face recognition service, created by the user          |

Response body on success:
```json
{
  "subjects": [
    "<subject_name1>",
    "<subject_name2>"
    ]
}
```

| Element  | Type   | Description                |
| -------- | ------ | -------------------------- |
| subjects | array  | the list of subjects in Face Collection |

### Managing Subject Examples

The subject example is basically an image of a known face that you want to save to face collection.

When you save a subject example, CompreFace calculates the embedding of the face (faceprint) and saves it into the database.
By default, the image itself is also saved, it is needed for managing images, e.g. [download of the image](#direct-download-an-image-example-of-the-subject-by-id). You can change it using `save_images_to_db` parameter in [configuration](Configuration.md).

One subject example is enough for face recognition, the accuracy will be high enough. But if you add more examples, the accuracy may be even better.

### Add an Example of a Subject

This creates an example of the subject by saving images. You can add as many images as you want to train the system. Image should
contain only one face.

```http request
curl -X POST "http://localhost:8000/api/v1/recognition/faces?subject=<subject>&det_prob_threshold=<det_prob_threshold>" \
-H "Content-Type: multipart/form-data" \
-H "x-api-key: <service_api_key>" \
-F file=@<local_file>
```
| Element             | Description | Type   | Required | Notes                                                        |
| ------------------- | ----------- | ------ | -------- | ------------------------------------------------------------ |
| Content-Type        | header      | string | required | multipart/form-data                                          |
| x-api-key           | header      | string | required | api key of the Face recognition service, created by the user          |
| subject             | param       | string | required | is the name you assign to the image you save                 |
| det_prob_threshold  | param       | string | optional | minimum required confidence that a recognized face is actually a face. Value is between 0.0 and 1.0. |
| file                | body        | image  | required | allowed image formats: jpeg, jpg, ico, png, bmp, gif, tif, tiff, webp. Max size is 5Mb |

Response body on success:
```json
{
  "image_id": "6b135f5b-a365-4522-b1f1-4c9ac2dd0728",
  "subject": "subject1"
}
```

| Element  | Type   | Description                |
| -------- | ------ | -------------------------- |
| image_id | UUID   | UUID of uploaded image     |
| subject  | string | Subject of the saved image |

### List of All Saved Examples of the Subject

To retrieve a list of subjects saved in a Face Collection:

```http request
curl -X GET "http://localhost:8000/api/v1/recognition/faces?page=<page>&size=<size>" \
-H "x-api-key: <service_api_key>" \
```

| Element   | Description | Type    | Required | Notes                                     |
| --------- | ----------- | ------- | -------- | ----------------------------------------- |
| x-api-key | header      | string  | required | api key of the Face recognition service, created by the user |
| page      | param       | integer | optional | page number of examples to return. Can be used for pagination. Default value is 0. Since 0.6 version |
| size      | param       | integer | optional | faces on page (page size). Can be used for pagination. Default value is 20. Since 0.6 version |

Response body on success:

```
{
  "faces": [
    {
      "image_id": <image_id>,
      "subject": <subject>
    },
    ...
  ],
  "page_number": 0,
  "page_size": 10,
  "total_pages": 2,
  "total_elements": 12
}
```

| Element        | Type    | Description                                                  |
| -------------- | ------- | ------------------------------------------------------------ |
| face.image_id  | UUID    | UUID of the face                                             |
| fase.subject   | string  | <subject> of the person, whose picture was saved for this api key |
| page_number    | integer | page number |
| page_size      | integer | **requested** page size |
| total_pages    | integer | total pages |
| total_elements | integer | total faces |

### Delete All Examples of the Subject by Name

To delete all image examples of the <subject>:

```http request
curl -X DELETE "http://localhost:8000/api/v1/recognition/faces?subject=<subject>" \
-H "x-api-key: <service_api_key>"
```

| Element   | Description | Type   | Required | Notes                                                        |
| --------- | ----------- | ------ | -------- | ------------------------------------------------------------ |
| x-api-key | header      | string | required | api key of the Face recognition service, created by the user                    |
| subject   | param       | string | optional | is the name subject. If this parameter is absent, all faces in Face Collection will be removed |

Response body on success:
```
{
    "deleted": <count>
}
```

| Element  | Type    | Description              |
| -------- | ------- | ------------------------ |
| deleted  | integer | Number of deleted faces  |

### Delete an Example of the Subject by ID

Endpoint to delete an image by ID. If no image found by id - 404.

```http request
curl -X DELETE "http://localhost:8000/api/v1/recognition/faces/<image_id>" \
-H "x-api-key: <service_api_key>"
```

| Element   | Description | Type   | Required | Notes                                     |
| --------- | ----------- | ------ | -------- | ----------------------------------------- |
| x-api-key | header      | string | required | api key of the Face recognition service, created by the user |
| image_id  | variable    | UUID   | required | UUID of the removing face                 |

Response body on success:
```
{
  "image_id": <image_id>,
  "subject": <subject>
}
```

| Element  | Type   | Description                                                  |
| -------- | ------ | ------------------------------------------------------------ |
| image_id | UUID   | UUID of the removed face                                     |
| subject  | string | <subject> of the person, whose picture was saved for this api key |

### Direct Download an Image example of the Subject by ID
```since 0.6 version```

You can paste this URL into the <img> html tag to show the image.

```http request
curl -X GET "http://localhost:8000/api/v1/static/<service_api_key>/images/<image_id>"
```

| Element         | Description | Type   | Required | Notes                                     |
| --------------- | ----------- | ------ | -------- | ----------------------------------------- |
| service_api_key | variable    | string | required | api key of the Face recognition service, created by the user |
| image_id        | variable    | UUID   | required | UUID of the image to download                 |

Response body is binary image. Empty bytes if image not found.

### Download an Image example of the Subject by ID
```since 0.6 version```

To download an image example of the Subject by ID:

```http request
curl -X GET "http://localhost:8000/api/v1/recognition/faces/<image_id>/img"
-H "x-api-key: <service_api_key>"
```

| Element   | Description | Type   | Required | Notes                                     |
| --------- | ----------- | ------ | -------- | ----------------------------------------- |
| x-api-key | header      | string | required | api key of the Face recognition service, created by the user |
| image_id  | variable    | UUID   | required | UUID of the image to download                 |

Response body is binary image. Empty bytes if image not found.

### Recognize Faces from a Given Image

To recognize faces from the uploaded image:

```http request
curl  -X POST "http://localhost:8000/api/v1/recognition/recognize?limit=<limit>&prediction_count=<prediction_count>&det_prob_threshold=<det_prob_threshold>&face_plugins=<face_plugins>&status=<status>" \
-H "Content-Type: multipart/form-data" \
-H "x-api-key: <service_api_key>" \
-F file=<local_file>
```

| Element            | Description | Type    | Required | Notes                                                        |
| ------------------ | ----------- | ------- | -------- | ------------------------------------------------------------ |
| Content-Type       | header      | string  | required | multipart/form-data                                          |
| x-api-key          | header      | string  | required | api key of the Face recognition service, created by the user                    |
| file               | body        | image   | required | allowed image formats: jpeg, jpg, ico, png, bmp, gif, tif, tiff, webp. Max size is 5Mb |
| limit              | param       | integer | optional | maximum number of faces on the image to be recognized. It recognizes the biggest faces first. Value of 0 represents no limit. Default value: 0 |
| det_prob_threshold | param       | string  | optional | minimum required confidence that a recognized face is actually a face. Value is between 0.0 and 1.0. |
| prediction_count   | param       | integer | optional | maximum number of subject predictions per face. It returns the most similar subjects. Default value: 1    |
| face_plugins       | param       | string  | optional | comma-separated slugs of face plugins. If empty, no additional information is returned. [Learn more](Face-services-and-plugins.md)  |
| status             | param       | boolean | optional | if true includes system information like execution_time and plugin_version fields. Default value is false |

Response body on success:
```json
{
  "result" : [ {
    "age" : {
      "probability": 0.9308982491493225,
      "high": 32,
      "low": 25
    },
    "gender" : {
      "probability": 0.9898611307144165,
      "value": "female"
    },
    "mask" : {
      "probability": 0.9999470710754395,
      "value": "without_mask"
    },
    "embedding" : [ 9.424854069948196E-4, "...", -0.011415496468544006 ],
    "box" : {
      "probability" : 1.0,
      "x_max" : 1420,
      "y_max" : 1368,
      "x_min" : 548,
      "y_min" : 295
    },
    "landmarks" : [ [ 814, 713 ], [ 1104, 829 ], [ 832, 937 ], [ 704, 1030 ], [ 1017, 1133 ] ],
    "subjects" : [ {
      "similarity" : 0.97858,
      "subject" : "subject1"
    } ],
    "execution_time" : {
      "age" : 28.0,
      "gender" : 26.0,
      "detector" : 117.0,
      "calculator" : 45.0,
      "mask": 36.0
    }
  } ],
  "plugins_versions" : {
    "age" : "agegender.AgeDetector",
    "gender" : "agegender.GenderDetector",
    "detector" : "facenet.FaceDetector",
    "calculator" : "facenet.Calculator",
    "mask": "facemask.MaskDetector"
  }
}
```

| Element                        | Type    | Description                                                  |
| ------------------------------ | ------- | ------------------------------------------------------------ |
| age                            | object  | detected age range. Return only if [age plugin](Face-services-and-plugins.md#face-plugins) is enabled         |
| gender                         | object  | detected gender. Return only if [gender plugin](Face-services-and-plugins.md#face-plugins) is enabled         |
| mask                           | object  | detected mask. Return only if [face mask plugin](Face-services-and-plugins.md#face-plugins) is enabled.          |
| embedding                      | array   | face embeddings. Return only if [calculator plugin](Face-services-and-plugins.md#face-plugins) is enabled      |
| box                            | object  | list of parameters of the bounding box for this face         |
| probability                    | float   | probability that a found face is actually a face             |
| x_max, y_max, x_min, y_min     | integer | coordinates of the frame containing the face                 |
| landmarks                      | array   | list of the coordinates of the frame containing the face-landmarks. Return only if [landmarks plugin](Face-services-and-plugins.md#face-plugins) is enabled      |
| subjects                       | list    | list of similar subjects with size of <prediction_count> order by similarity |
| similarity                     | float   | similarity that on that image predicted person               |
| subject                        | string  | name of the subject in Face Collection                       |
| execution_time                 | object  | execution time of all plugins                       |
| plugins_versions               | object  | contains information about plugin versions                       |

### Verify Faces from a Given Image

To compare faces from the uploaded images with the face in saved image ID:
```http request
curl -X POST "http://localhost:8000/api/v1/recognition/faces/<image_id>/verify?
limit=<limit>&det_prob_threshold=<det_prob_threshold>&face_plugins=<face_plugins>&status=<status>" \
-H "Content-Type: multipart/form-data" \
-H "x-api-key: <service_api_key>" \
-F file=<local_file>
```

| Element            | Description | Type    | Required | Notes                                                        |
| ------------------ | ----------- | ------- | -------- | ------------------------------------------------------------ |
| Content-Type       | header      | string  | required | multipart/form-data                                          |
| x-api-key          | header      | string  | required | api key of the Face recognition service, created by the user                    |
| image_id           | variable    | UUID    | required | UUID of the verifying face                                   |
| file               | body        | image   | required | allowed image formats: jpeg, jpg, ico, png, bmp, gif, tif, tiff, webp. Max size is 5Mb |
| limit              | param       | integer | optional | maximum number of faces on the target image to be recognized. It recognizes the biggest faces first. Value of 0 represents no limit. Default value: 0 |
| det_prob_threshold | param       | string  | optional | minimum required confidence that a recognized face is actually a face. Value is between 0.0 and 1.0. |
| face_plugins       | param       | string  | optional | comma-separated slugs of face plugins. If empty, no additional information is returned. [Learn more](Face-services-and-plugins.md)  |
| status             | param       | boolean | optional | if true includes system information like execution_time and plugin_version fields. Default value is false |

Response body on success:
```json
{
  "result": [
    {
      "age" : {
        "probability": 0.9308982491493225,
        "high": 32,
        "low": 25
      },
      "gender" : {
        "probability": 0.9898611307144165,
        "value": "female"
      },
      "mask" : {
        "probability": 0.9999470710754395,
        "value": "without_mask"
      },
      "embedding" : [ -0.049007344990968704, "...", -0.01753818802535534 ],
      "box" : {
        "probability" : 0.9997453093528748,
        "x_max" : 205,
        "y_max" : 167,
        "x_min" : 48,
        "y_min" : 0
      },
      "landmarks" : [ [ 260, 129 ], [ 273, 127 ], [ 258, 136 ], [ 257, 150 ], [ 269, 148 ] ],
      "similarity" : 0.97858,
      "execution_time" : {
        "age" : 59.0,
        "gender" : 30.0,
        "detector" : 177.0,
        "calculator" : 70.0,
        "mask": 36.0
      }
    }
  ],
  "plugins_versions" : {
    "age" : "agegender.AgeDetector",
    "gender" : "agegender.GenderDetector",
    "detector" : "facenet.FaceDetector",
    "calculator" : "facenet.Calculator",
    "mask": "facemask.MaskDetector"
  }
}
```

| Element                        | Type    | Description                                                  |
| ------------------------------ | ------- | ------------------------------------------------------------ |
| age                            | object  | detected age range. Return only if [age plugin](Face-services-and-plugins.md#face-plugins) is enabled         |
| gender                         | object  | detected gender. Return only if [gender plugin](Face-services-and-plugins.md#face-plugins) is enabled         |
| mask                           | object  | detected mask. Return only if [face mask plugin](Face-services-and-plugins.md#face-plugins) is enabled         |
| embedding                      | array   | face embeddings. Return only if [calculator plugin](Face-services-and-plugins.md#face-plugins) is enabled      |
| box                            | object  | list of parameters of the bounding box for this face         |
| probability                    | float   | probability that a found face is actually a face             |
| x_max, y_max, x_min, y_min     | integer | coordinates of the frame containing the face                 |
| landmarks                      | array   | list of the coordinates of the frame containing the face-landmarks. Return only if [landmarks plugin](Face-services-and-plugins.md#face-plugins) is enabled      |
| similarity                     | float   | similarity that on that image predicted person               |
| execution_time                 | object  | execution time of all plugins                       |
| plugins_versions               | object  | contains information about plugin versions                       |

## Face Detection Service

To detect faces from the uploaded image:

```http request
curl  -X POST "http://localhost:8000/api/v1/detection/detect?limit=<limit>&det_prob_threshold=<det_prob_threshold>&face_plugins=<face_plugins>&status=<status>" \
-H "Content-Type: multipart/form-data" \
-H "x-api-key: <service_api_key>" \
-F file=<local_file>
```

| Element            | Description | Type    | Required | Notes                                                        |
| ------------------ | ----------- | ------- | -------- | ------------------------------------------------------------ |
| Content-Type       | header      | string  | required | multipart/form-data                                          |
| x-api-key          | header      | string  | required | api key of the Face Detection service, created by the user                    |
| file               | body        | image   | required | image where to detect faces. Allowed image formats: jpeg, jpg, ico, png, bmp, gif, tif, tiff, webp. Max size is 5Mb |
| limit              | param       | integer | optional | maximum number of faces on the image to be recognized. It recognizes the biggest faces first. Value of 0 represents no limit. Default value: 0 |
| det_prob_threshold | param       | string  | optional | minimum required confidence that a recognized face is actually a face. Value is between 0.0 and 1.0 |
| face_plugins       | param       | string  | optional | comma-separated slugs of face plugins. If empty, no additional information is returned. [Learn more](Face-services-and-plugins.md)  |
| status             | param       | boolean | optional | if true includes system information like execution_time and plugin_version fields. Default value is false |

Response body on success:
```json
{
  "result" : [ {
    "age" : {
      "probability": 0.9308982491493225,
      "high": 32,
      "low": 25
    },
    "gender" : {
      "probability": 0.9898611307144165,
      "value": "female"
    },
    "mask" : {
      "probability": 0.9999470710754395,
      "value": "without_mask"
    },
    "embedding" : [ -0.03027934394776821, "...", -0.05117142200469971 ],
    "box" : {
      "probability" : 0.9987509250640869,
      "x_max" : 376,
      "y_max" : 479,
      "x_min" : 68,
      "y_min" : 77
    },
    "landmarks" : [ [ 156, 245 ], [ 277, 253 ], [ 202, 311 ], [ 148, 358 ], [ 274, 365 ] ],
    "execution_time" : {
      "age" : 30.0,
      "gender" : 26.0,
      "detector" : 130.0,
      "calculator" : 49.0,
      "mask": 36.0
    }
  } ],
  "plugins_versions" : {
    "age" : "agegender.AgeDetector",
    "gender" : "agegender.GenderDetector",
    "detector" : "facenet.FaceDetector",
    "calculator" : "facenet.Calculator",
    "mask": "facemask.MaskDetector"
  }
}
```

| Element                        | Type    | Description                                                  |
| ------------------------------ | ------- | ------------------------------------------------------------ |
| age                            | object  | detected age range. Return only if [age plugin](Face-services-and-plugins.md#face-plugins) is enabled         |
| gender                         | object  | detected gender. Return only if [gender plugin](Face-services-and-plugins.md#face-plugins) is enabled         |
| mask                           | object  | detected mask. Return only if [face mask plugin](Face-services-and-plugins.md#face-plugins) is enabled         |
| embedding                      | array   | face embeddings. Return only if [calculator plugin](Face-services-and-plugins.md#face-plugins) is enabled      |
| box                            | object  | list of parameters of the bounding box for this face (on processedImage) |
| probability                    | float   | probability that a found face is actually a face (on processedImage)     |
| x_max, y_max, x_min, y_min     | integer | coordinates of the frame containing the face (on processedImage)         |
| landmarks                      | array   | list of the coordinates of the frame containing the face-landmarks. Return only if [landmarks plugin](Face-services-and-plugins.md#face-plugins) is enabled      |
| execution_time                 | object  | execution time of all plugins                       |
| plugins_versions               | object  | contains information about plugin versions                       |

## Face Verification Service

To compare faces from given two images:
```http request
curl  -X POST "http://localhost:8000/api/v1/verification/verify?limit=<limit>&prediction_count=<prediction_count>&det_prob_threshold=<det_prob_threshold>&face_plugins=<face_plugins>&status=<status>" \
-H "Content-Type: multipart/form-data" \
-H "x-api-key: <service_api_key>" \
-F source_image=<local_check_file>
-F target_image=<local_process_file>
```

| Element            | Description | Type    | Required | Notes                                                        |
| ------------------ | ----------- | ------- | -------- | ------------------------------------------------------------ |
| Content-Type       | header      | string  | required | multipart/form-data                                          |
| x-api-key          | header      | string  | required | api key of the Face verification service, created by the user                    |
| source_image       | body        | image   | required | file to be verified. Allowed image formats: jpeg, jpg, ico, png, bmp, gif, tif, tiff, webp. Max size is 5Mb |
| target_image       | body        | image   | required | reference file to check the source file. Allowed image formats: jpeg, jpg, ico, png, bmp, gif, tif, tiff, webp. Max size is 5Mb |
| limit              | param       | integer | optional | maximum number of faces on the target image to be recognized. It recognizes the biggest faces first. Value of 0 represents no limit. Default value: 0 |
| det_prob_threshold | param       | string  | optional | minimum required confidence that a recognized face is actually a face. Value is between 0.0 and 1.0. |
| face_plugins       | param       | string  | optional | comma-separated slugs of face plugins. If empty, no additional information is returned. [Learn more](Face-services-and-plugins.md)  |
| status             | param       | boolean | optional | if true includes system information like execution_time and plugin_version fields. Default value is false |

Response body on success:
```json
{
  "result" : [{
    "source_image_face" : {
      "age" : {
        "probability": 0.9308982491493225,
        "high": 32,
        "low": 25
      },
      "gender" : {
        "probability": 0.9898611307144165,
        "value": "female"
      },
      "mask" : {
        "probability": 0.9999470710754395,
        "value": "without_mask"
      },
      "embedding" : [ -0.0010271212086081505, "...", -0.008746841922402382 ],
      "box" : {
        "probability" : 0.9997453093528748,
        "x_max" : 205,
        "y_max" : 167,
        "x_min" : 48,
        "y_min" : 0
      },
      "landmarks" : [ [ 92, 44 ], [ 130, 68 ], [ 71, 76 ], [ 60, 104 ], [ 95, 125 ] ],
      "execution_time" : {
        "age" : 85.0,
        "gender" : 51.0,
        "detector" : 67.0,
        "calculator" : 116.0,
        "mask": 36.0
      }
    },
    "face_matches": [
      {
        "age" : {
          "probability": 0.9308982491493225,
          "high": 32,
          "low": 25
        },
        "gender" : {
          "probability": 0.9898611307144165,
          "value": "female"
        },
        "mask" : {
          "probability": 0.9999470710754395,
          "value": "without_mask"
        },
        "embedding" : [ -0.049007344990968704, "...", -0.01753818802535534 ],
        "box" : {
          "probability" : 0.99975,
          "x_max" : 308,
          "y_max" : 180,
          "x_min" : 235,
          "y_min" : 98
        },
        "landmarks" : [ [ 260, 129 ], [ 273, 127 ], [ 258, 136 ], [ 257, 150 ], [ 269, 148 ] ],
        "similarity" : 0.97858,
        "execution_time" : {
          "age" : 59.0,
          "gender" : 30.0,
          "detector" : 177.0,
          "calculator" : 70.0,
          "mask": 36.0
        }
      }],
    "plugins_versions" : {
      "age" : "agegender.AgeDetector",
      "gender" : "agegender.GenderDetector",
      "detector" : "facenet.FaceDetector",
      "calculator" : "facenet.Calculator",
      "mask": "facemask.MaskDetector"
    }
  }]
}
```

| Element                        | Type    | Description                                                  |
| ------------------------------ | ------- | ------------------------------------------------------------ |
| source_image_face              | object  | additional info about source image face |
| face_matches                   | array   | result of face verification |
| age                            | object  | detected age range. Return only if [age plugin](Face-services-and-plugins.md#face-plugins) is enabled         |
| gender                         | object  | detected gender. Return only if [gender plugin](Face-services-and-plugins.md#face-plugins) is enabled         |
| mask                           | object  | detected mask. Return only if [face mask plugin](Face-services-and-plugins.md#face-plugins) is enabled         |
| embedding                      | array   | face embeddings. Return only if [calculator plugin](Face-services-and-plugins.md#face-plugins) is enabled      |
| box                            | object  | list of parameters of the bounding box for this face         |
| probability                    | float   | probability that a found face is actually a face             |
| x_max, y_max, x_min, y_min     | integer | coordinates of the frame containing the face                 |
| landmarks                      | array   | list of the coordinates of the frame containing the face-landmarks. Return only if [landmarks plugin](Face-services-and-plugins.md#face-plugins) is enabled      |
| similarity                     | float   | similarity between this face and the face on the source image               |
| execution_time                 | object  | execution time of all plugins                       |
| plugins_versions               | object  | contains information about plugin versions                       |

## Base64 Support
`since 0.5.1 version`

Except `multipart/form-data`, all CompreFace endpoints, that require images as input, accept images in `Base64` format.
The base rule is to use `Content-Type: application/json` header and send JSON in the body.
The name of the JSON parameter coincides with the name of the `multipart/form-data` parameter.

repository: AlexRogalskiy/CompreFace

repo_name: AlexRogalskiy/CompreFace


text:
Release 2.10.8
===========

Date: 2018-03-23

Name:  "cafe mocha dodgerblue bell"

## Upgrading from Earlier versions

* See the [Upgrading Guide](http://rundeck.org/docs/upgrading/index.html)

## Notes

Bug Fixes:

* Fix an issue causing Vault key storage plugin to not work
* Fix issue with cluster mode using MSSQL or Oracle DB field types. Note: If using those DBs see [#3125](https://github.com/rundeck/rundeck/issues/3125)

Enhancements:

* SCM git plugin enhancements [#3192](https://github.com/rundeck/rundeck/pull/3192):
    * Import can delete jobs which were removed from git
    * API updated to include synch status for jobs
    * API updated to allow specifying list of jobs to delete during import action

Other changes:

* Ansible plugin upgraded to version 2.3.0
* API version → 22

## Contributors

* Antoine-Auffret
* Greg Schueler (gschueler)
* Jaime Tobar (jtobard)
* Luis Toledo (ltamaster)

## Bug Reporters

* Antoine-Auffret
* gschueler
* jplassnibatt
* jtobard
* komodo472
* ltamaster
* sebastianbello

## Issues

[Milestone 2.10.8](https://github.com/rundeck/rundeck/milestone/72)

* [Update/apiv22 scm import](https://github.com/rundeck/rundeck/pull/3216)
* [API: SCM Git plugin Import action 'import-all' should be renamed to 'import-jobs'](https://github.com/rundeck/rundeck/issues/3215)
* [fix: update dependencies flagged by snyk](https://github.com/rundeck/rundeck/pull/3213)
* [Upgrade ansible plugin to the 2.3.0 release](https://github.com/rundeck/rundeck/pull/3202)
* [Fix: key storage data type not set automatically with Vault plugin](https://github.com/rundeck/rundeck/pull/3196)
* [Scm Git Import can delete jobs when git file is removed](https://github.com/rundeck/rundeck/pull/3192)
* [correct optional options when creating a project](https://github.com/rundeck/rundeck/pull/3191)
* [Referenced job error handlers cannot be found when job is referenced from other projects](https://github.com/rundeck/rundeck/issues/3189)
* [Fix: Matched Nodes list is not (Auto) Refreshed in Jobs](https://github.com/rundeck/rundeck/pull/3171)
* [Can't abort a job, message is "Unable to modify the execution"](https://github.com/rundeck/rundeck/issues/3155)
* [serverNodeUUID field to varchar ](https://github.com/rundeck/rundeck/pull/3126)
* [Oracle+MSSQL DB error SqlExceptionHelper](https://github.com/rundeck/rundeck/issues/3125)
* [Log File Storage exception: NullPointerException: Cannot get property 'filetype' on null object](https://github.com/rundeck/rundeck/issues/3089)
* [Bug / Matched Nodes list is not (Auto) Refreshed in Jobs](https://github.com/rundeck/rundeck/issues/3075)
* [API: Scm (export/import) action inputs should include item status](https://github.com/rundeck/rundeck/issues/2330)

repository: lubry/rundeck

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: lubry/rundeck


text:
# React Article Search

[![standard-readme compliant](https://img.shields.io/badge/standard--readme-OK-green.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)

> App that uses Mongo, Express, React & Node to search for articles on the New York Times site.

This is a Full Stack MERN app that utilizes the New York Times Article Search API. Users can search for articles by Topic, specifying Begin Date and End Date are option.
User can save articles, which are then displayed on a second page, where they can be unsaved.

### Technologies used:
* React
* React Router
* Express
* Node
* Mongoose
* Axios
* date-fns

## Table of Contents

- [Install](#install)
- [Usage](#usage)
- [API](#api)
- [Maintainers](#maintainers)
- [Contribute](#contribute)
- [License](#license)

## Install

```
git clone
yarn install
cd client
yarn install
cd ..
yarn start
```

## Screenshot
![Screenshot](/client/public/screencapture.png)

## API
Article Search uses the [New York Times API](https://developer.nytimes.com/)

## Maintainers

[@Ovieh](https://github.com/Ovieh)

## License

MIT © 2018 Ovieh Mosley

license: MIT

repository: ovieh/Article-Search

gha_language: JavaScript

repo_name: ovieh/Article-Search


text:
---
layout: post
title: "JoJo's Bizarre Adventure"
description: "Chronicles the struggles of the cursed Joestar bloodline against the forces of evil. Beginning in 1880, Part I follows Jonathan Joestar as he matures with and eventually combats his adoptive brother, the cunning, merciless Dio Brando. Set in 1938, Part II follows the misadventures of Joseph Joestar, grandson of Jonathan, as he masters the Ripple in order to combat hostile, ancient super-beings named the Pillar Men; creators of the Stone Mask. Part III follows Jotaro Kujo and his group as they journey from Tokyo to Cairo to save his m.."
img: 2359704.jpg
kind: tv series
genres: [Animation,Action,Adventure,Drama,Fantasy]
tags: Animation Action Adventure Drama Fantasy
year: 2012
imdb_rating: 8.4
votes: 7581
imdb_id: 2359704
netflix_id: 80179831
color: 513b56
---
Director: `N/A`

Cast: `Matthew Mercer` `Daisuke Ono` `Fuminori Komatsu` `Unshô Ishizuka` `Tôru Ohkawa`

Chronicles the struggles of the cursed Joestar bloodline against the forces of evil. Beginning in 1880, Part I follows Jonathan Joestar as he matures with and eventually combats his adoptive brother, the cunning, merciless Dio Brando. Set in 1938, Part II follows the misadventures of Joseph Joestar, grandson of Jonathan, as he masters the Ripple in order to combat hostile, ancient super-beings named the Pillar Men; creators of the Stone Mask. Part III follows Jotaro Kujo and his group as they journey from Tokyo to Cairo to save his mother's life by defeating his family's resurrected archenemy, Dio. In Part IV, an Arrow manifesting latent Stand abilities travels throughout Morioh, Japan in 1999; as high-schooler Josuke Higashikata (illegitimate son of Joseph) and friends seek out the culprit of a series of decade-long homicides. Set in 2001, Part V follows Giorno Giovanna, son of Dio, and his ambition to rise within the Neapolitan mafia by subverting its most powerful gang: Passione.

repository: meparth/BongNetflix

repo_name: meparth/BongNetflix


text:
---
title: 'About'
layout: 'page'
---

ISARIC4C Consortium Authors
=======

The ISARIC4C author list aims to respect contributions to the
Protocol, MRC and DHSC grant applications and those who since have made
a substantive academic contribution to delivering the CCP-UK, which
includes CO-CIN related activity (described in the protocol as CCP-UK
Tier Zero activity).

This document is managed by the co-leads of the ISARIC4C.
We hope we have done everything we can to recognise your contribution.
Please email<EMAIL_ADDRESS>if there you spot any omission.

The **Protocol Authors** are: J Kenneth Baillie, Malcolm (Calum) G Semple,
Gail Carson, Peter Openshaw, Jake Dunning, Laura Merson, Clark D
Russell, Maria Zambon, Meera Chand, Richard Tedder, Saye Khoo, Peter
Horby, Lance CW Turtle, Tom Solomon, Samreen Ijaz, Tom Fletcher, Massimo
Palmarini, Antonia Ho, Nicholas Price.

ISARIC4C Investigators
--------

**Co-Lead Investigator (Consorium Lead & joint CI)*: J Kenneth Baillie.

**Co-Lead Investigator (Imperial Colllege)*: Peter JM Openshaw.

**Co-Lead Investigator (Protocol CI)*: Malcolm G Semple.

*Co-Investigator*:
Beatrice Alex,
Petros Andrikopoulos,
Benjamin Bach,
Wendy S Barclay,
Debby Bogaert,
Meera Chand,
Kanta Chechi,
Graham S Cooke,
Ana da Silva Filipe,
Thushan de Silva,
Annemarie B Docherty,
Gonçalo dos Santos Correia,
Marc-Emmanuel Dumas,
Jake Dunning,
Tom Fletcher,
Christoper A Green,
William Greenhalf,
Julian L Griffin,
Rishi K Gupta,
Ewen M Harrison,
Antonia Ying Wai Ho,
Karl Holden,
Peter W Horby,
Samreen Ijaz,
Saye Khoo,
Paul Klenerman,
Andrew Law,
Matthew R Lewis,
Sonia Liggi,
Wei Shen Lim,
Lynn Maslen,
Alexander J Mentzer,
Laura Merson,
Alison M Meynert,
Shona C Moore,
Mahdad Noursadeghi,
Michael Olanipekun,
Anthonia Osagie,
Massimo Palmarini ,
Carlo Palmieri,
William A Paxton,
Georgios Pollakis,
Nicholas Price,
Andrew Rambaut,
David L Robertson,
Clark D Russell,
Vanessa Sancho-Shimizu,
Caroline J Sands,
Janet T Scott,
Louise Sigfrid,
Tom Solomon,
Shiranee Sriskandan,
David Stuart,
Charlotte Summers,
Olivia V Swann,
Zoltan Takats,
Panteleimon Takis,
Richard S Tedder,
AA Roger Thompson,
Emma C Thomson,
Ryan S Thwaites,
Lance CW Turtle,
Maria Zambon.

*Data Analyst*:
Thomas M Drake,
Cameron J Fairfield,
Stephen R Knight,
Kenneth A Mclean,
Derek Murphy,
Lisa Norman ,
Riinu Pius,
Catherine A Shaw.

*Data and Information System Manager*:
Marie Connor,
Jo Dalton,
Carrol Gamble,
Michelle Girvan,
Sophie Halpin,
Janet Harrison,
Clare Jackson,
James Lee,
Laura Marsh,
Daniel Plotkin,
Stephanie Roberts,
Egle Saviciute.

*Data Integration and Presentation*:
Sara Clohisey,
Ross Hendry,
Susan Knight,
Eva Lahnsteiner,
Andrew Law,
Gary Leeming,
Lucy Norris,
James Scott-Brown,
Sarah Tait,
Murray Wham.

*ISARIC Clinical Coordinator*: Gail Carson.

*Edinburgh Laboratory Staff and Volunteers*:
Richard Clark,
Audrey Coutts,
Lorna Donnelly,
Angie Fawkes,
Tammy Gilchrist,
Katarzyna Hafezi,
Louise MacGillivray,
Alan Maclean,
Sarah McCafferty,
Kirstie Morrice,
Lee Murphy,
Nicola Wrobel.

*Local Principal Investigators*:
Kayode Adeniji,
Daniel Agranoff,
Ken Agwuh,
Dhiraj Ail,
Erin L. Aldera,
Ana Alegria,
Sam Allen,
Brian Angus,
Abdul Ashish,
Dougal Atkinson,
Shahedal Bari,
Gavin Barlow,
Stella Barnass,
Nicholas Barrett,
Christopher Bassford,
Sneha Basude,
David Baxter,
Michael Beadsworth,
Jolanta Bernatoniene,
John Berridge,
Colin Berry,
Nicola Best,
Pieter Bothma,
Robin Brittain-Long,
Naomi Bulteel,
Tom Burden,
Andrew Burtenshaw,
Vikki Caruth,
David Chadwick,
David Chadwick,
Duncan Chambler,
Nigel Chee,
Jenny Child,
Srikanth Chukkambotla,
Tom Clark,
Paul Collini,
Catherine Cosgrove,
Jason Cupitt,
Maria-Teresa Cutino-Moguel,
Paul Dark,
Chris Dawson,
Samir Dervisevic,
Phil Donnison,
Sam Douthwaite,
Andrew Drummond,
Ingrid DuRand,
Ahilanadan Dushianthan,
Tristan Dyer,
Cariad Evans,
Chi Eziefula,
Chrisopher Fegan,
Adam Finn,
Duncan Fullerton,
Sanjeev Garg,
Atul Garg,
Effrossyni Gkrania-Klotsas,
Jo Godden,
Arthur Goldsmith,
Clive Graham,
Tassos Grammatikopoulos,
Elaine Hardy,
Stuart Hartshorn,
Daniel Harvey,
Peter Havalda,
Daniel B Hawcutt,
Maria Hobrok,
Luke Hodgson,
Anil Hormis,
Joanne Howard,
Michael Jacobs,
Susan Jain,
Paul Jennings,
Agilan Kaliappan,
Vidya Kasipandian,
Stephen Kegg,
Michael Kelsey,
Jason Kendall,
Caroline Kerrison,
Ian Kerslake,
Oliver Koch,
Gouri Koduri,
George Koshy,
Shondipon Laha,
Steven Laird,
Susan Larkin,
Tamas Leiner,
Patrick Lillie,
James Limb,
Vanessa Linnett,
Jeff Little,
Mark Lyttle,
Michael MacMahon,
Emily MacNaughton,
Ravish Mankregod,
Huw Masson,
Elijah Matovu,
Katherine McCullough,
Ruth McEwen,
Manjula Meda,
Gary Mills,
Jane Minton,
Kavya Mohandas,
Quen Mok,
James Moon,
Elinoor Moore,
Patrick Morgan,
Craig Morris,
Katherine Mortimore,
Samuel Moses,
Mbiye Mpenge,
Rohinton Mulla,
Michael Murphy,
Thapas Nagarajan,
Megan Nagel,
Mark Nelson,
Lillian Norris,
Matthew K. O'Shea,
Marlies Ostermann,
Igor Otahal,
Mark Pais,
Carlo Palmieri,
Selva Panchatsharam,
Danai Papakonstantinou,
Padmasayee Papineni,
Hassan Paraiso,
Brij Patel,
Natalie Pattison,
Justin Pepperell,
Mark Peters,
Mandeep Phull,
Stefania Pintus,
Tim Planche,
Frank Post,
David Price,
Rachel Prout,
Nikolas Rae,
Henrik Reschreiter,
Tim Reynolds,
Neil Richardson,
Mark Roberts,
Devender Roberts,
Alistair Rose,
Guy Rousseau,
Bobby Ruge,
Brendan Ryan,
Taranprit Saluja,
Sarah Cole,
Matthias L Schmid,
Aarti Shah,
Manu Shankar-Hari,
Prad Shanmuga,
Anil Sharma,
Anna Shawcross,
Jagtur Singh Pooni,
Jeremy Sizer,
Richard Smith,
Catherine Snelson,
Nick Spittle,
Nikki Staines,
Tom Stambach,
Richard Stewart,
Pradeep Subudhi,
Tamas Szakmany,
Kate Tatham,
Jo Thomas,
Chris Thompson,
Robert Thompson,
Ascanio Tridente,
Darell Tupper-Carey,
Mary Twagira,
Nick Vallotton,
Rama Vancheeswaran,
Rachel Vincent,
Lisa Vincent-Smith,
Shico Visuvanathan,
Alan Vuylsteke,
Sam Waddy,
Rachel Wake,
Andrew Walden,
Ingeborg Welters,
Tony Whitehouse,
Paul Whittaker,
Ashley Whittington,
Meme Wijesinghe,
Martin Williams,
Lawrence Wilson,
Stephen Winchester,
Martin Wiselka,
Adam Wolverson,
Daniel G Wootton,
Andrew Workman,
Bryan Yates,
Peter Young.

*Material Management*:
Sarah E McDonald,
Victoria Shaw.

*Outbreak Laboratory Staff and Volunteers*:
Katie A. Ahmed,
Jane A Armstrong,
Milton Ashworth,
Innocent G Asiimwe,
Siddharth Bakshi,
Samantha L Barlow,
Laura Booth,
Benjamin Brennan,
Katie Bullock,
Nicola Carlucci ,
Emily Cass,
Benjamin WA Catterall,
Jordan J Clark,
Emily A Clarke,
Sarah Cole,
Louise Cooper,
Helen Cox,
Christopher Davis,
Oslem Dincarslan,
Alejandra Doce Carracedo,
Chris Dunn,
Philip Dyer,
Angela Elliott,
Anthony Evans,
Lorna Finch,
Lewis WS Fisher,
Lisa Flaherty,
Terry Foster,
Isabel Garcia-Dorival,
Philip Gunning,
Catherine Hartley,
Anthony Holmes,
Rebecca L Jensen,
Christopher B Jones,
Trevor R Jones,
Shadia Khandaker,
Katharine King,
Robyn T. Kiy,
Chrysa Koukorava,
Annette Lake,
Suzannah Lant,
Diane Latawiec,
Lara Lavelle-Langham,
Daniella Lefteri,
Lauren Lett,
Lucia A Livoti,
Maria Mancini,
Hannah Massey,
Nicole Maziere,
Sarah McDonald,
Laurence McEvoy,
John McLauchlan,
Soeren Metelmann,
Nahida S Miah,
Joanna Middleton,
Joyce Mitchell,
Shona C Moore,
Ellen G Murphy,
Rebekah Penrice-Randal,
Jack Pilgrim,
Tessa Prince,
Will Reynolds,
P. Matthew Ridley,
Debby Sales,
Victoria E Shaw,
Rebecca K Shears,
Benjamin Small,
Krishanthi S Subramaniam,
Agnieska Szemiel,
Aislynn Taggart,
Jolanta Tanianis-Hughes,
Jordan Thomas,
Erwan Trochu,
Libby van Tonder,
Eve Wilcock,
J. Eunice Zhang.

*Patient Engagement*:
Seán Keating.

*Project Administrator*:
Cara Donegan,
Rebecca G. Spencer.

*Project Manager*:
Chloe Donohue,
Fiona Griffiths,
Hayley Hardwick,
Wilna Oosthuyzen.

## Acknowledgements
This work uses data provided by patients and collected by the NHS as part of their care and support #DataSavesLives. We are extremely grateful to the 2,648 frontline NHS clinical and research staff and volunteer medical students, who collected this data in challenging circumstances; and the generosity of the participants and their families for their individual contributions in these difficult times. We also acknowledge the support of Jeremy J Farrar and Nahoko Shindo.

gha_language: SCSS

gha_license_id: MIT


text:
# Harinezumi
Harinezumi (HZ short) is a on Sonic Dash based Framework for Game Maker 8.1 and Studio 1.4/2

# Description.
Harinezumi is a fork of the Dash Engine (Dash, Revival, SRE, GMate)
with the main goal of making it as accurate to the original games as possible while improving on the base framework to make it easy and bug-free.

Developement on HZ started in 2020 and is the successor to my previous S8E framework, now themed around Sonic Mania.

# What you will need.
You will need the full version of either Game Maker 8.1 or Game Maker Studio 1.4.9999/2.

I highly recommend using Studio for building your game for better compatibility.

# Before starting...
Please check the wiki to get a better understanding of the new tile flag system present in HZ and for additional questions you may have.

# Credits.
- Original Framework: Damizean, Mercury
- Main Developer/Programmer: A.NB
- Additional programming or assistance: Noah Copeland, Lapper, Starz0r
- Original Music by: RB (RamiroBandicoot)
- Artwork: Bryce, SEGA, MrLevRocks
- Beta Testers:
 - BlueSpeedster
 - BriceTAS
 - Bryce
 - Dashboy (Tuna)
 - Dark04
 - Illias3000
 - Lilac
 - Loser
 - Michael Staple
 - MrLevRocks
 - NapTime / XZoneAct1
 - Neweegee
 - Nihil
 - Noah Copeland
 - Moonchild6279
 - Polar-Star
 - PorteWeeker
 - Pvic
 - Savordez
 - SoniKast
 - Spitfya
 - TheEpicDude
 - Trinitronity
 - Xiyarent
 - Everyone else in the HZ server.

branch_name: refs/heads/main


text:
# arvis-css-triggers

> Search through [csstriggers.com](https://csstriggers.com/)

## 🔗 This workflow is converted from [alfred-workflow](https://github.com/SamVerschueren/alfred-css-triggers).

* Note that there might be some code change or different actions from the original workflow.

* Marked original workflow's creator to author.

## Install

```
$ npm install --global arvis-css-triggers
```

## Usage

In arvis, type `css`, Enter, and your query.

Select an item and press Enter to go to the [csstriggers.com](https://csstriggers.com) documentation.

Hold Alt to show the subsequent update pipeline.

### Engines

Optionally, you can pass the name of the engine as argument. The following engines are supported.

- `blink` (default)
- `gecko`
- `webkit`
- `edge`

## License

MIT © [Sam Verschueren](https://github.com/SamVerschueren)

repository: arvis-workflows/arvis-css-triggers

repo_name: arvis-workflows/arvis-css-triggers


text:
# Interface: TargetDependencyConfig

## Table of contents

### Properties

- [dependencies](../../devkit/documents/TargetDependencyConfig#dependencies): boolean
- [params](../../devkit/documents/TargetDependencyConfig#params): "ignore" | "forward"
- [projects](../../devkit/documents/TargetDependencyConfig#projects): string | string[]
- [target](../../devkit/documents/TargetDependencyConfig#target): string

## Properties

### dependencies

• `Optional` **dependencies**: `boolean`

If true, the target will be executed for each project that this project depends on.
Should not be specified together with `projects`.

---

### params

• `Optional` **params**: `"ignore"` \| `"forward"`

Configuration for params handling.

---

### projects

• `Optional` **projects**: `string` \| `string`[]

A list of projects that have `target`.
Should not be specified together with `dependencies`.

---

### target

• **target**: `string`

The name of the target to run. If `projects` and `dependencies` are not specified,
the target will be executed for the same project the the current target is running on`.

repository: nrwl/nx

gha_language: TypeScript

repo_name: nrwl/nx


text:
# Conditionally independent multiresolution Gaussian process

This is an implementation of the conditionally independent multiresolution Gaussian process (ciMRGP) model based on Taghia and Schön (2019). Unlike the common assumption of the full independence, ciMRGP assumes conditional independence among Gaussian processes (GPs) across all resolutions.

References:

Jalil Taghia and Thomas B. Schön. Conditionally Independent Multiresolution Gaussian Processes. AISTATS, 2019.

Note:
The source files are in <./src/> folder. The main file is MRGP.py. Two test examples are provided in <./scripts/tests/>:
- The first example ciMRGP_vs_fiMRGP.py compares the two different MRGP architectures, namely: fully independent MRGP (fiMRGP) and conditionally independent MRGP (ciMRGP). The only difference between the two model variants is that the former assumes full independence between resolutions and the latter assumes conditional independence. This is simalr to the Figure 2 in (Taghia and Schön, 2019) but a different random seed.
- The second example GPRBF_vs_ciMRGP_vs_fiMRGP.py compares ciMRGP and fiMRGP against a standard Gaussian process with an RBF kernel. For this example, an RBF kernel is not the best choice as the underlying function is highly nonstationary. But the question is if a multiresolution GP, seen as a collection of smooth GPs, could tackle this problem?

Hope you find the implemtation helpful, and if so, please cite our paper. Finally, if you have questions, please let me know<EMAIL_ADDRESS>

Jalil Taghia

(Feb. 22, 2019, Uppsala)

repository: jtaghia/ciMRGP

repo_name: jtaghia/ciMRGP


text:
# CPU Efficiency script

We use condor data in HDFS to generate statistics about data use in cpu efficiency for workflows//request. We use the following attributes from the condor documents for completed jobs:

- GlobalJobId  - To identify the unique jobs
- Workflow - Because we want to group by workflow
- WMAgent_RequestName - Because for production jobs we want to group by request
- ScheddName - Used to generate the log links
- WMAgent_JobID - Used to generate the log links
- RecordTime -  To filter the job reports and to get the earliest and latest use date for a given datablock
- JobFailed -  To take into account successful jobs only
- Status - To take into account only completed jobs
- Site - To have details by site
- Type -  To filter by CMS job type
- WallClockHr - Used to calculate the CPU efficiency
- CpuTimeHr - Used to calculate the CPU efficiency
- RequestCpus - Used to calculate the CPU efficiency

And produce a web site with CPU efficiency by workflow or request (according to the selected cms type) for the requests/workflows matching the selected range.

## Some context

The condor monitoring data provides information at job level for all the tasks running in the infrastructure.
![Condor data flow](img/CondorJobsDataMonit.png)

The json documents have a flexible schema and currently they have more than 1000 different fields. We also have more than 300GB/day in data (Monit has a compaction method, so data older than a day is deduplicated and compressed, making the data weight around 80GB/day).

## How to run it

You can run the python script directly, but it will require that you setup the environment first. The run_condor_cpu_efficiency.sh script will setup the environment in a lxplus-like machine and will run the python script.

```bash
Usage: run_condor_cpu_efficiency.sh [OPTIONS]

Options:
  --start_date [%Y/%m/%d|%Y-%m-%d|%Y%m%d]
  --end_date [%Y/%m/%d|%Y-%m-%d|%Y%m%d]
  --cms_type [analysis|production|folding@home|test]
                                  Workflow type to query
  --min_eff INTEGER               Minimum efficiency to be included in the
                                  report
  --max_eff INTEGER               Max efficiency to be included in the report
  --output_folder TEXT            local output directory
  --help                          Show this message and exit.
```

The default time period will be the last 30 days; the default efficiency range is (5, 70); the default type is production; and the default output folder will be `./www/cpu_eff`

E.g.

```bash
run_condor_cpu_efficiency.sh --start_date 20200507 --end_date 20200407
```

This will generate a web site at `./www/cpu_eff` with a main page called `CPU_Efficiency_Table.html` and a folder (`wfbysite` ) with a folder by workflow with a file by request with details by site (because production jobs will have grouping by request).

## Requirements

This script uses Condor data from  `analytix` cluster. They should be available at `/project/monitoring/archive/condor/raw/metric/`

### How to run the script without LCG release environment

This instructions are not necessary in a lxplus-like environment.

All python packages are already available at the [LCG release]( http://lcginfo.cern.ch/release/96python3/ ). If you want to run it without an LCG environment, you will need this python 3 and this packages:

- pandas
- pyspark (2.4.x)
- click

And you will need to setup the [environment for hadoop]( https://cern.service-now.com/service-portal/article.do?n=KB0004426 ).

repository: dmwm/CMSSpark

gha_language: Python

repo_name: dmwm/CMSSpark


text:
# Css Flags

![Build status](https://travis-ci.org/runjak/css-flags.svg?branch=master)

Inspired by
* https://codepen.io/thebabydino/post/css-the-world-flags
* https://codepen.io/thebabydino/post/challenge-css-the-world-flags-level-2
* https://codepen.io/thebabydino/post/challenge-css-the-world-flags-level-3

I wanted to try my hands on this and get more fluent with `linear-gradient`.
Since I'm working with react a lot lately I decided to bend the rules in the sense that I'll use JavaScript
to generate the css using styled-components.
However I shall not use JavaScript to perform any runtime calculations or measurements to achieve my goals.

repository: runjak/css-flags

repo_name: runjak/css-flags


text:
---
layout: post
title: "A Bottom Up Procedure for Text Line Segmentation of Latin Script"
date: 2017-10-09 11:00:00
categories: arXiv_CV
tags: arXiv_CV Segmentation
author: Himanshu Jain, Archana Praveen Kumar
mathjax: true
---

* content
{:toc}

##### Abstract
In this paper we present a bottom up procedure for segmentation of text lines written or printed in the Latin script. The proposed method uses a combination of image morphology, feature extraction and Gaussian mixture model to perform this task. The experimental results show the validity of the procedure.

##### Abstract (translated by Google)
在本文中，我们提供了一个用拉丁脚本书写或打印的文本行分割的自下而上的过程。所提出的方法使用图像形态学，特征提取和高斯混合模型的组合来执行该任务。实验结果表明该程序的有效性。

##### URL
[https://arxiv.org/abs/1710.03027](https://arxiv.org/abs/1710.03027)

##### PDF
[https://arxiv.org/pdf/1710.03027](https://arxiv.org/pdf/1710.03027)


text:
## WELCOME
Welcome to the introductory workshop on cloud-native application development!
For background information about this workshop check out https://slides.com/victorionescu/understanding-cloud-native-apps/

## SOURCES

Throughout this workshop we are not focusing on implementation, but on understanding the underlying cloud concepts and how they are implemented using CloudFoundry. As a result sources for the .msg Kitchen application are readily available with the `learncf` package https://github.com/ionescuv/learncf/ under the `sources` folder.

## LET'S GET STARTED

In this first exercise you will use the CF CLI to connect to your CloudFoundry account and check if you have any running apps.

 Trial versions are available from Pivotal or SAP. Alternatively you can install your own CloudFoundry using BoshLite
* If you are within a corporate network, make sure you have configured your proxy settings:

```
set http_proxy=<host:port>
set https_proxy=<host:port>
```

## STEPS

* Use CF TARGET to set the API endpoint of your cloud foundry provider. For the SAP Cloud Platform, this is https://api.cf.eu10.hana.ondemand.com
* LOGIN to your account
* Target an ORG and a SPACE in your cloud foundry installation. These are logical separations which can be used to group together applications based on various criteria
* Check to see if you have any apps running in your account

## HINTS

The CF CLI commands are extremely intuitive. Type `cf` to see a list of available commands or use `cf help <command>` to find out the exact syntax of a CF command.

repository: ionescuv/learncf

repo_name: ionescuv/learncf


text:
# Ruqus Changelog

## 2.0.0
* Support for Realm 2.0.2

## 1.2.6
* Fix the fix in 1.2.4 😓

## 1.2.5
* Another minute, another bug fix after a big release: Fix issue where human-readable query string doesn't put "and"s before nots

## 1.2.4
* Fixed some *blatantly* obvious NPEs 🙃

## 1.2.3
* Corrected string in dialog for removing conditions; now says "Condition" or "Operator" depending on type
* No more unformatted dates in `RealmQueryView`'s main mode
* Improved human-readable query strings, especially in the areas of handling string-related conditions and how the `Not` operator affects each condition's string
    * To support this change, all `RUQTransformer`s now must implement a new method, `makeReadableString(Condition current, Condition previous, Condition next)`. See the JavaDoc for more information.
    * Since the pairing of the `Not` and `Equal` operators now displays as *"is not"* in query strings, the name of the `NotEqualTo` operator has been changed from *"is not"* to *"is unequal"* to help distinguish it... sorry for any confusion!
* Now the query type and sort type cards (the top and bottom cards) are visually distinguished with an alternate color
* Card background colors can now be overridden. See the end of the README for details

## 1.2.2
* Fixed a bug with a method in `Ruqus` which, looking at it now, I'm at a loss as to how it ever worked

## 1.2.1
* Fixed bug where the `Not` transformer was causing crashes due to a missed "`break;`" in the `Condition` class

## 1.2.0
* Tested with Realm 1.0.0 and confirmed working
* Added a transformer, `Not`, to wrap `RealmQuery.not()`. This is particularly important for link queries since `.notEqualTo()` and `.not().equalTo()` work differently for `RealmList` fields
* Added method `RealmQueryView.leaveBuilderMode()` to help improve integration with host. See the end of [Adding a `RealmQueryView`](https://github.com/bkromhout/ruqus#rqv) for more information
* Views now have touch feedback

## 1.1.0
* Support for Realm 0.89.0; Ruqus will now handle any `RealmModel`-implementing class (which still includes `RealmObject` subclasses, of course)

## 1.0.6
* Followup fix for 1.0.5.

## 1.0.5
* Fixed an issue with RealmUserQuery's parsing of internal RealmUserQuery strings.

## 1.0.4
* Added support for [AboutLibraries](https://github.com/mikepenz/AboutLibraries)

## 1.0.3
* Fixed an off by one error.

## 1.0.2
* Made ruqus-compiler ignore static fields on classes when processing them.

## 1.0.1
* Added ability for `RealmQueryView` to notify a listener about mode changes

## 1.0.0
* Initial release

repository: bkromhout/Ruqus

repo_name: bkromhout/Ruqus


text:
# HTX: **H**igh-**T**hroughput e**X**plorer

HTX is a computer vision and machine learning pipeline for the exploration and visualization of high-throughput image assays.
This a full demo implementation of HTX in MATLAB.

## Dependencies

* [MatConvNet](http://www.vlfeat.org/matconvnet/)
* [vl_feat](http://www.vlfeat.org/)
* [t-SNE MATLAB library](https://lvdmaaten.github.io/tsne/code/tSNE_matlab.zip)

## Demo

A pretrained demo is provided using the [Broad Institute's dataset BBBC021v1](https://data.broadinstitute.org/bbbc/BBBC021/) ([Caie et al., Molecular Cancer Therapeutics, 2010](http://mct.aacrjournals.org/content/9/6/1913)), available from the Broad Bioimage Benchmark Collection ([Ljosa et al., Nature Methods, 2012](https://www.nature.com/nmeth/journal/v9/n7/full/nmeth.2083.html)).

To confirm that everything is setup correctly, follow these steps:

* Install and setup the dependencies.
* Download the demo data (shown below).
* Set the appropriate root folder in `ProcessData.m`.
* Run `ProcessData.m`.

## Basic demo: data visualization

The basic demo includes trained models and pre-computed visualizations.
Downloading the raw TIF data is not required for trying most data exploration functionalities in HTX, as they can be used with only the normalized RGB images.

* [BBBC021v1 - RGB images & models](http://www.robots.ox.ac.uk/~vgg/data/BBBC021_xxuM_MCF7/BBBC021_xxuM_MCF7.zip)

## Full demo: model training and full functionalities

In order to try the training, as well as the feature highlighting functionality of the toolbox, the raw TIF data is required.

* [Broad Institute's dataset BBBC021v1](https://data.broadinstitute.org/bbbc/BBBC021/)

The MATLAB script `preprocess/BBBC021v1/arrangeIMDB_BBBC021v1.m` is provided to arrange the data in the format required by HTX.

Finally, a set of rough cell masks are provided for the BBBC021v1 dataset, which is used during training to discard empty frames.

* [BBBC021v1 - masks](http://www.robots.ox.ac.uk/~vgg/data/BBBC021_xxuM_MCF7/BBBC021_xxuM_MCF7_masks.zip)

## General usage information

The main script is `ProcessData.m`, which executes the configuration of the
experiment, and runs the training, image encoding and exploration GUI.

The configuration of the experiment is done in `dataConfig()`,
and it consists of setting the relevant paths (e.g. paths to raw data, models, etc.), and the different running parameters.

The image database (IMDB) is a MATLAB structure containing the necessary information about each of image stack in the dataset.
Per image stack, it consists of 9 fields:

| Field Name    | Example         | Description                                                                                |
| :------------ |:----------------| :------------------------------------------------------------------------------------------------------------|
| filename      | stack_ABCD.tif  | name of the image stack                                                                                |
| folder        | plate_1         | parent folder                                                                                |
| role          | control         | role of the well, e.g. treated or control                                                                    |
| treatment     | taxol-3uM       | name of the treatment in the well                                                                            |
| wellpos       | A01             | position of the well in its plate                                                                            |
| wellsite      | 2               | position of the FoV within the well                                                                          |
| plateID       | ABDC_2017       | identifier of the plate                                                                                |
| class         | 100             | class index of the well for training, e.g. all wells which received the same treatment are of the same class |
| plateclass    | 1               | analogous to the well class, but for plates. Usually, different plates would the of different class          |

An example imdb can be found in demo folder `metadata/BBBC021_xxuM_MCF7_imdb.mat`.
This is also generated automatically by the data preparation script `arrangeIMDB_BBBC021v1.m`

The core training of the method is based on the class information provided in the IMDB.
That is, images from wells of the same class (i.e. receiving the same treatment) will be considered as *similar*,
and *dissimilar* otherwise. Likewise, plate class information is used to discourage the texture description network to learn plate-specific feature (i.e. batch effects).

## License

Copyright (C) 2016-2017 by Carlos Arteta

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

repository: henanjun/htx

repo_name: henanjun/htx


text:
---
layout: post
title: Personal Coding Projects
---

{{ page.title }}
================

07 Feb 2022 - NW

The project list on my resume has been getting kind of long recently and it's a bit difficult to decide
what I should keep and what should go. I also can't exactly link to the repo list in GitHub since
that contains a lot of uninteresting forks that I needed for PR's or things like that. So this post is
just a list of things that I think are interesting but may have not made it on to my resume (in no
particular order).

## GoLang

* [liquidswards](https://github.com/RyanJarv/liquidswards) -- Know, don't guess, who can access what (IAM Roles).
* [lq](https://github.com/RyanJarv/lq) -- An exactly once, in-order queue that delivers both past and future messages to all subscribers.
* [UserDataSwap](https://github.com/RyanJarv/UserDataSwap) -- Example of how an attacker might swap user data temporarily to execute arbitrary commands
* [ditto](https://github.com/RyanJarv/ditto) -- Mimic any command
* [EC2FakeImds](https://github.com/RyanJarv/EC2FakeImds) -- Spoofing IMDS for nodes in a VPC. PoC based on https://blog.ryanjarv.sh/2020/10/19/imds-persistence.html
* [cli-hijacker](https://github.com/RyanJarv/cli-hijacker) -- Fork of aws-vault for the cli-hijacker PoC.
* [coderun](https://github.com/RyanJarv/coderun) -- Running scripts in an isolated environment should be stupid easy.
* [dockersnitch](https://github.com/RyanJarv/dockersnitch) -- Like little snitch but for docker
* [gocash](https://github.com/RyanJarv/gocash) -- Redis like cashier service in GoLang
* [RhinoSecurityLabs/amazon-ssm-agent](https://github.com/RhinoSecurityLabs/amazon-ssm-agent) -- Fork of amazon-ssm-agent that can run as any user in parallel with the official service.

## Python
* [dsnap](https://github.com/RhinoSecurityLabs/dsnap) -- Utility for downloading and mounting EBS snapshots using the EBS Direct API's
* [marionette](https://github.com/RyanJarv/marionette) -- Active/Passive UserData swap PoC
  * This is a rewrite of UserDataSwap which solves some issues that came up in practice.
* [steampipe_alchemy](https://github.com/RyanJarv/steampipe_alchemy) -- SQLAlchemy wrapper around Steampipe.
* [aws_session_recorder](https://github.com/RyanJarv/aws_session_recorder) (Python) -- AWS session that records discovered resources to a database
* [awsconfig](https://github.com/RyanJarv/awsconfig) -- AWS Config rules for non-default IMDS routes (partially obsolete)
* [nettomidi](https://github.com/RyanJarv/nettomidi) -- Net -> MIDI (Listen to your network!)
* [pingscan](https://github.com/RyanJarv/pingscan/blob/master/pingscan.py) -- Messing around with sockets
* [msh](https://github.com/RyanJarv/msh) -- Multivac Shell

## Other
* [randrust](https://github.com/RyanJarv/randrust) -- Rust HTTP server that returns random bytes encoded with base64
* [puppet-randrust](https://github.com/RyanJarv/puppet-randrust) -- Puppet module for randrust
* [minecraft_server](https://github.com/RyanJarv/minecraft_server) -- Chef repo for creating a Minecraft server in AWS
* [awesome-cloud-sec](https://github.com/RyanJarv/awesome-cloud-sec) -- Awesome list for cloud security related projects.

## Maintainer and Significant Contributor
* [Pacu](https://github.com/RhinoSecurityLabs/pacu) -- The AWS exploitation framework, designed for testing the security of Amazon Web Services environments.
* [CloudGoat](https://github.com/RhinoSecurityLabs/cloudgoat) -- CloudGoat is Rhino Security Labs' "Vulnerable by Design" AWS deployment tool
* [sous-chefs/varnish](https://github.com/sous-chefs/varnish) -- Chef Development repository for the varnish cookbook

gha_language: CSS


text:
## What’s on the homepage?

The homepage is arranged by a list of 'quick reports' - which are there to help you find the most useful information on story performance as easily as possible. The default quick report is a list of top stories published on BBC News within the last 48 hours, ordered by pageviews for the specific day you've selected.

![Quick Reports](../images/Screen%20Shot%202018-12-20%20at%2017.24.51.png "Telescope quick reports ")

The other reports are the Youth Report - note this only works for News. This shows the percentage of UK readers aged 18-34 that read the most popular stories on the website (not the app) on the dates selected, regardless of the date they were published. You can read more about this report and where we get demographic data from [on this page](https://telescope-beta.tools.bbc.co.uk/guides/getting-started/demographic-data).

The bottom stories report shows the least popular stories published on the dates selected; top search and top social list the stories that are earning the most clicks from search engines and social networks; and the bottom recirculation report will bring up the stories that have the lowest percentage of readers going on to read another story.

If you’d like to see traffic for a specific World Service site, you can select one from the **‘News’** drop-down menu at the top of the page:

![Choosing a World Service site](../images/Screen%20Shot%202018-12-20%20at%2017.27.14.png "Choosing a World Service site")

To change the date you'd like to view stories for, click the 'Today' link. This will bring up a calendar from which you can choose from a list of dates, a specific day, or your own custom range of days:

![Selecting a date or date range](../images/Screen%20Shot%202018-12-20%20at%2017.29.07.png "Selecting a date or date range")

To view stats for a specific story, just click through on the box the story appears in in the list of items you’ve searched for. Alternatively, you can search for it by putting the story’s CPS ID in the search box in the top right of the page:

![Searching for a story by CPS ID](../images/Screen%20Shot%202017-08-25%20at%2009.53.58.png?token=AY5378beyQnFeWvq08bFtANN5hx7Cu1Dks5ZVOQCwA%3D%3D "Telescope search bar")

If you wish to run a more advanced query, select the 'Advanced' toggle on the right hand side of the page. This will bring up a variety of options, such as the ability to sort the list by traffic source (entry type, mobile or desktop, region), and story type (story page, MAP, live page):

![Advanced filters](../images/Screen%20Shot%202018-12-20%20at%2017.32.54.png "Advanced filters")

![Advanced filters](../images/Screen%20Shot%202018-12-20%20at%2017.33.02.png "Advanced filters")

url: https://raw.githubusercontent.com/danm/writedown/a776dc6ce916064500fa3e70bf0ef9f56a78caee/content/1. Getting Started/2. What's on the homepage?.md

repository: danm/writedown

filename: 2. What's on the homepage?.md

repo_name: danm/writedown


text:
# Minsynth
"Min synth" is a small software synth intended for integration into other projects.
The name is swedish and means "my synth", but it could also mean "minimal (or minimum) synth" (works in english too).

## Current features

 * A few basic oscilator
 * envelopes
 * arpegiators
 * polyphonic output

## Planned features

 * integer based
 * load instruments/configurations from file
 * simple effects like reverb, delay and bitcrusher
   inspiration: https://github.com/ElectroSmash/pedal-pi
 * look into borrowing/copying features supported by https://github.com/mbitsnbites/soundbox
 * play samples, perhaps as a instrument
 * soundfonts
 * possible nyquist plugins
 * basic general audio input, so you can connect a guitar and play
 * perhaps create a fake buzz interface to use the open source [buzz machines](https://github.com/Buzztrax/buzzmachines)

repository: madeso/euphoria

repo_name: madeso/euphoria


text:
[< Previous](../asteroid-collision "Asteroid Collision")

[Next >](../sentence-similarity-ii "Sentence Similarity II")

## [736. Parse Lisp Expression (Hard)](https://leetcode.com/problems/parse-lisp-expression "Lisp 语法解析")

You are given a string expression representing a Lisp-like expression to return the integer value of.

The syntax for these expressions is given as follows.

An expression is either an integer, a let-expression, an add-expression, a mult-expression, or an assigned variable.  Expressions always evaluate to a single integer.

(An integer could be positive or negative.)

A let-expression takes the form (let v1 e1 v2 e2 ... vn en expr), where let is always the string "let", then there are 1 or more pairs of alternating variables and expressions, meaning that the first variable v1 is assigned the value of the expression e1, the second variable v2 is assigned the value of the expression e2, and so on sequentially; and then the value of this let-expression is the value of the expression expr.

An add-expression takes the form (add e1 e2) where add is always the string "add", there are always two expressions e1, e2, and this expression evaluates to the addition of the evaluation of e1 and the evaluation of e2.

A mult-expression takes the form (mult e1 e2) where mult is always the string "mult", there are always two expressions e1, e2, and this expression evaluates to the multiplication of the evaluation of e1 and the evaluation of e2.

For the purposes of this question, we will use a smaller subset of variable names.  A variable starts with a lowercase letter, then zero or more lowercase letters or digits.  Additionally for your convenience, the names "add", "let", or "mult" are protected and will never be used as variable names.

Finally, there is the concept of scope.  When an expression of a variable name is evaluated, within the context of that evaluation, the innermost scope (in terms of parentheses) is checked first for the value of that variable, and then outer scopes are checked sequentially.  It is guaranteed that every expression is legal.  Please see the examples for more details on scope.

Evaluation Examples:

Input: (add 1 2)
Output: 3

Input: (mult 3 (add 2 3))
Output: 15

Input: (let x 2 (mult x 5))
Output: 10

Input: (let x 2 (mult x (let x 3 y 4 (add x y))))
Output: 14
Explanation: In the expression (add x y), when checking for the value of the variable x,
we check from the innermost scope to the outermost in the context of the variable we are trying to evaluate.
Since x = 3 is found first, the value of x is 3.

Input: (let x 3 x 2 x)
Output: 2
Explanation: Assignment in let statements is processed sequentially.

Input: (let x 1 y 2 x (add x y) (add x y))
Output: 5
Explanation: The first (add x y) evaluates as 3, and is assigned to x.
The second (add x y) evaluates as 3+2 = 5.

Input: (let x 2 (add (let x 3 (let x 4 x)) x))
Output: 6
Explanation: Even though (let x 4 x) has a deeper scope, it is outside the context
of the final x in the add-expression.  That final x will equal 2.

Input: (let a1 3 b2 (add a1 1) b2)
Output 4
Explanation: Variable names can contain digits after the first character.

Note:

The given string expression is well formatted: There are no leading or trailing spaces, there is only a single space separating different components of the string, and no space between adjacent parentheses.  The expression is guaranteed to be legal and evaluate to an integer.

The length of expression is at most 2000.  (It is also non-empty, as that would not be a legal expression.)

The answer and all intermediate calculations of that answer are guaranteed to fit in a 32-bit integer.

### Related Topics
  [[String](../../tag/string/README.md)]

### Similar Questions
  1. [Ternary Expression Parser](../ternary-expression-parser) (Medium)
  1. [Number of Atoms](../number-of-atoms) (Hard)
  1. [Basic Calculator IV](../basic-calculator-iv) (Hard)

### Hints

Hint 1
* If the expression starts with a digit or '-', it's an integer: return it.

* If the expression starts with a letter, it's a variable.  Recall it by checking the current scope in reverse order.

* Otherwise, group the tokens (variables or expressions) within this expression by counting the "balance" `bal` of the occurrences of `'('` minus the number of occurrences of `')'`.  When the balance is zero, we have ended a token.  For example, `(add 1 (add 2 3))` should have tokens `'1'` and `'(add 2 3)'`.

* For add and mult expressions, evaluate each token and return the addition or multiplication of them.

* For let expressions, evaluate each expression sequentially and assign it to the variable in the current scope, then return the evaluation of the final expression.

repository: rohini-raja/leetcode

repo_name: rohini-raja/leetcode


text:
# README

This directory contains some utility scripts for rebuilding test environments from scratch:

* `init-testnet-env.sh`: deploys a fake DAI, fake USDC and a option series in test mode. Run it to build and deploy a set of test contracts on some testnet.
l

repository: ohmydai/ohmydai-contracts

branch_name: refs/heads/develop

repo_name: ohmydai/ohmydai-contracts


text:
# People API

OAuth 2.0 user authentication and authorization.

## Requirements

People API is tested against MRI 1.9.3.

## Installation

    $ git clone git@github.com:lelylan/people.git && cd people
    $ gem install bundler
    $ bundle install
    $ foreman start

## Install with docker

    $ docker build --tag=people .
    $ docker run -d -it --name people people

## Resources

* [Lelylan OAuth 2.0 API](http://dev.lelylan.com/api#api-oauth)

## Contributing

Fork the repo on github and send a pull requests with topic branches.
Do not forget to provide specs to your contribution.

### Running specs

        $ gem install bundler
        $ bundle install
        $ bundle exec guard

Press enter to execute all specs.

## Spec guidelines

Follow [betterspecs.org](http://betterspecs.org) guidelines.

## Coding guidelines

Follow [github](https://github.com/styleguide/) guidelines.

## Feedback

Use the [issue tracker](http://github.com/lelylan/people/issues) for bugs or [stack overflow](http://stackoverflow.com/questions/tagged/lelylan) for questions.
<EMAIL_ADDRESS>or [Tweet](http://twitter.com/lelylan) us for any idea that can improve the project.

## Links

* [GIT Repository](http://github.com/lelylan/people)
* [Lelylan Dev Center](http://dev.lelylan.com)
* [Lelylan Site](http://lelylan.com)

## Authors

[Andrea Reginato](https://www.linkedin.com/in/andreareginato)

## Contributors

Special thanks to all [contributors](https://github.com/lelylan/people/contributors)
for submitting patches.

## Changelog

See [CHANGELOG](https://github.com/lelylan/people/blob/master/CHANGELOG.md)

## License

Lelylan is licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).

repository: exo-dev/people

gha_language: Ruby

repo_name: exo-dev/people


text:
# OpenTelemetry Rationale

When creating a library, often times designs and decisions are made that get lost over time. This
document tries to collect information on design decisions to answer common questions that may come
up when you explore the SDK.

## Versioning and Releasing

The OpenTelemetry Applications and OpenTelemetry Spec itself use semver v2.

## Goals

### API Stability

Once the API for a given signal (spans, logs, metrics, baggage) has been officially released, that API module will function with any SDK that has the same major version, and equal or greater minor or patch version.

For example, libraries that are instrumented with `opentelemetry-api 1.0.1` will function with SDK library `opentelemetry-sdk 1.11.33` or `opentelemetry-sdk 1.3.4`.

### SDK Stability:

Public portions of the SDK (constructors, configuration, end-user interfaces) must remain backwards compatible.
Internal interfaces are allowed to break.

## Methods

### Mature Signals
API modules for mature (i.e. released) signals will be included in the `opentelemetry-api` module.

### Immature or experimental signals
API modules for experimental signals will not be included in the `opentelemetry-api` module, and must be installed manually. API modules will remain at version v0.x.y to make it abundantly clear that depending on them is at your own risk. For example, the `opentelemetry-metrics-api` v0.x.y module will provide experimental access to the unfinished metrics API. NO STABILITY GUARANTEES ARE MADE.

## Examples

Purely for illustration purposes, not intended to represent actual releases:

#### V1.0.0 Release (tracing, baggage, propagators, context)

- `opentelemetry-api` 1.0.0
  - Contains APIs for tracing, baggage, propagators, context
- `opentelemetry-tracing` 1.0.0
  - Contains the tracing SDK
- `opentelemetry-sdk` 1.0.0
  - Contains SDK components for tracing, baggage, propagators, and context

##### Contains the following experimental packages

- `opentelemetry-api-metrics` 0.x.y
  - Contains the EXPERIMENTAL API for metrics. There are no stability guarantees.
- `opentelemetry-metrics` 0.x.y
  - Contains the EXPERIMENTAL SDK for metrics. There are no stability guarantees.

#### V1.15.0 Release (with metrics)

- `opentelemetry-api` 1.15.0
  - Contains APIs for tracing, baggage, propagators, context, and metrics
- `opentelemetry-tracing` 1.15.0
  - Contains tracing SDK
- `opentelemetry-metrics` 1.15.0
  - Contains metrics SDK
- `opentelemetry-sdk` 1.15.0
  - Contains SDK components for tracing, baggage, propagators, context and metrics

repository: owais/opentelemetry-python

repo_name: owais/opentelemetry-python


text:
# DIY_Stop_Me_Game_Kit

# Description and details
"Stop Me" game is small and simple game running on ATtiny13 microcontroller. It consists of 7 LEDs, push button, small CR2032 battery and microcontroller. The game starts with LEDs lightning up in sequential order. LED in the middle (4th in row) is different color in comparison to the rest of the LEDs. Goal of the game is very simple, player must press the push button when the middle LED (only one in different color) is light up. If the correct LED is turned on when the push button is pressed, the player goes on next level where time delay between LED lighting up is shortened. If any other LED is turned on when the push button is pressed, the game restarts to the first level. The game is designed to have multiple levels (12 in total).

This game is designed as a DIY soldering kit. This kit is ideal for kids and soldering beginners who can exercise their skills with this simple & easy game. While learning to solder, you will also create unique gadget which you can carry around. In addition, while playing this simple game, players can exercise their reflex skills.

# Repository content

This repo is divided into two parts: Eagle Files and Firmware. Eagle Files folder contains Cadsoft Eagle .sch and .brd files for "Stop Me" game PCB board. in addition there is schematic in .pdf created from .sch eagle file. In Firmware folder you can find C code for programming ATtiny13 microcontroller. The entire program code uses less than 1kB of Flash memory.

# Instructions on soldering

1. Insert the 8 pin IC socket into IC. Flip the board over, then solder into place.
2. Insert the switch and pushbutton into S1 and S2. Flip the board over and solder into place.
3. Insert 7 LEDs into LED1, LED2, LED2, LED3, LED4, LED5, LED6. Each LED has a short leg and a long leg. The long leg goes into the hole closest to the "+" sign on the board. NOTE: The green LED goes into LED4 place. Flip the board over, then solder into place.
4. Flip the board over. Put CR2032 battery holder into BAT place. Don't put battery in holder just yet. Flip the board over again and solder into place. The battery holder is only piece which is soldered on the back side of PCB.
5. Insert Attiny13 microcontroller into 8 pin IC socket. Make sure the dot in the corner of the chip is on bottom left corner.
6. Insert CR2032 battery into soldered battery holder.
7. Yay you're done! Flip the switch to the ON position and the game should start. Have Fun playing it.

# Board versions
- v1.0 - initial version

# License info
This product is open-source. YAY!

e-radionica.com Team.


text:
# Traveler Theme

**Traveler**, a theme for travelers or anyone who likes a modern website and wants to share their experiences with others. Works with the [Grav CMS](http://github.com/getgrav/grav).

## Sample

My own personal website uses this theme. Feel free to [check it out](https://hirter.dev) or show it on the [demo site](https://demo.hirter.dev/grav/traveler)

## Intstallation

1. From the root of your Grav installation, run `bin/gpm install traveler`.
   - Alternatively, download this repository, unzip it, rename the folder to `traveler`, and place it in the `user/themes/` directory of your Grav install
2. Edit `user/config/system.yaml` to contain the following:
	```yaml
	pages:
      theme: traveler
	```

Alternatively, you can install Traveler via the Grav Admin interface.

## Templates

Traveler offers several templates for your site's pages. Here's a brief overview of each one.

### Default

The `default` template is a simple template that just renders your content as-is.

### Blog

This template is to list your blogs and entries so that your visitors get an overview.
Here you can define how many entries per page will be displayed and if you have one day in the
Options have been entered so can be additionally filtered by tags.

### Entry Default

This is one of two templates to create an entry on your blog. Here is based on the template "Default".
If you want to have a simple and simple entry the best solution.

### Entry Modular

The second template for a blog entry. The modular design leaves you plenty of room and you are
free to set the respective modules in order There are some modules that you can use here.
More about the different modules below ...

### Form

This template is here to integrate a contact form on your site.
However, this is just the container and must still be filled with the desired fields.
I have an example in the `_demo / pages / 05.contact` folder.
If you want to know more about creating a contact form
I refer to the [Grav documentation](https://learn.getgrav.org/16/forms/forms/example-form?target=_blank)

### Home

A separate template for the home page

### Modular

This template is intended for pages and can also be built with any modules.

### Gallerie (Modular)

With this module you can create small galleries.
The gallery will also open a big preview when clicking on a picture.

### Image (Modular)
This module is used to insert an image

### Last Entries (Modular)

This module displays the last three entries of the blog.
It can be selected which subpages should be considered.
Originally intended for the home page

### Modul Container (Modular)

I have created this module as help for the start page.
With this module, several text blocks can be combined into one on the start page.
How exactly does that work you see in the example.

### Text (Modular)
Hereby a text can be inserted, it is handled as markdown.

### Youtube (Modular)

Simply insert a Youtube video by the ID.

repository: Memurame/grav-theme-traveler

repo_name: Memurame/grav-theme-traveler


text:
# Azure Cognitive Search Indexer Operations task

### [Overview](https://docs.microsoft.com/en-us/rest/api/searchservice/indexer-operations)

An indexer is a resource that crawls a data source and loads documents into a target search index. Key scenarios for indexers can be described as follows:
Perform a one-time copy of the data to populate an index.
Sync an index with incremental changes from the data source on a recurring schedule. The schedule is part of the indexer definition.
Invoke an indexer on-demand to update an index as needed.
All of the above scenarios are achieved through the Run Indexer (Azure Cognitive Search REST API), which you can run as a standalone operation or scheduled using the built-in scheduler, to load data from supported data sources.

X [Create Data Source](https://docs.microsoft.com/en-us/rest/api/searchservice/create-data-source)
DataSourceName
(azureblob) connectionstring, container
file ou inline

X [Update Data Source](https://docs.microsoft.com/en-us/rest/api/searchservice/update-data-source)
[Get Data Source](https://docs.microsoft.com/en-us/rest/api/searchservice/get-data-source)
[Delete Data Source](https://docs.microsoft.com/en-us/rest/api/searchservice/delete-data-source)
[List Data Sources](https://docs.microsoft.com/en-us/rest/api/searchservice/list-data-sources)

[Create Indexer](https://docs.microsoft.com/en-us/rest/api/searchservice/create-indexer)
[Update Indexer](https://docs.microsoft.com/en-us/rest/api/searchservice/update-indexer)
[List Indexers](https://docs.microsoft.com/en-us/rest/api/searchservice/list-indexers)
[Get Indexer](https://docs.microsoft.com/en-us/rest/api/searchservice/get-indexer)
[Delete Indexer](https://docs.microsoft.com/en-us/rest/api/searchservice/delete-indexer)
[Run Indexer](https://docs.microsoft.com/en-us/rest/api/searchservice/run-indexer)
[Get Indexer Status](https://docs.microsoft.com/en-us/rest/api/searchservice/get-indexer-status)
[Reset Indexer](https://docs.microsoft.com/en-us/rest/api/searchservice/reset-indexer)

[Create Skillset](https://docs.microsoft.com/en-us/rest/api/searchservice/reset-indexer)

## Pre-requisites for the task

The following pre-requisites need to be setup for the task to work properly.

#### Azure Subscription

To deploy to Azure, an Azure subscription has to be linked to Team Foundation Server or to Azure Pipelines using the Services tab in the Account Administration section. Add the Azure subscription to use in the Build or Release Management definition by opening the Account Administration screen (gear icon on the top-right of the screen) and then click on the Services Tab. Create a service endpoint of 'Azure Resource Manager' type. For more troubleshooting guidance around endpoint creation, refer [this](https://www.visualstudio.com/en-us/docs/build/actions/azure-rm-endpoint).

For Azure MSDN accounts, one can either use a [Service Principal](https://go.microsoft.com/fwlink/?LinkID=623000&clcid=0x409) or a work account. It's easy to create a work account as shown below:

1. Create an user in the Azure Active Directory from the [portal](https://msdn.microsoft.com/en-us/library/azure/hh967632.aspx) (this is the old Azure portal). After adding the account, the following two things need to be done to use the organization in Azure Pipelines:
  - Add the Active Directory account to the co-administrators in the subscription. Go to the Settings and then click on administrators and add the account as a co-admin like, [testuser<EMAIL_ADDRESS>  - Login to the portal with this Active Directory account wiz. [testuser@joehotmail.onmicrosoft.com](mailto:testuser@joehotmail.onmicrosoft.com), and change the password. Initially a temporary password is created and that needs to be changed at the first login.
2. Add that user and password in the service connections in Azure Pipelines and deployments will work with that account.

### Parameters of the task:

The parameters of the task are described below. The parameters listed with a \* are required parameters for the task:

repository: joalmeid/azsearch-ado-extension

gha_license_id: NOASSERTION

repo_name: joalmeid/azsearch-ado-extension