• Publicity: Public Only All

canvas-procs.tcl

Support for the Canvas REST API The Canvas REST API provides proper encodings for query and POST parameters (requests can be submitted as url-encoded or as JSON) and translates the reply into Tcl dicts. The API support also Canvas Pagination (https://canvas.instructure.com/doc/api/file.pagination.html) To call the Canvas REST API, one has to create an "app", which must acquire an access token from the Microsoft identity platform. The access token contains information about your app and the permissions it has for the resources and APIs available through Microsoft Graph. To get an access token, your app must be registered with the Microsoft identity platform and be authorized by either a user or an administrator for access to the Microsoft Graph resources it needs. https://docs.microsoft.com/en-us/graph/auth/auth-concepts https://docs.microsoft.com/en-us/graph/auth-register-app-v2 In theory, this API will allow later to switch to newer versions of the Graph API when newer versions (currently post 1.0) of the Microsoft Graph API will come out.

This file defines the following Objects and Classes: ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i], ::canvas::API[i]

Location:
packages/xooauth/tcl/canvas-procs.tcl
Author:
Gustaf Neumann

Procedures in this file

Detailed information

Class ::canvas::API (public)

 ::nx::Class ::canvas::API[i] [ -baseurl baseurl ] [ -token token ] \
    [ -version version ]

Basic Canvas API for OAuth calls. For details, see https://canvas.instructure.com/doc/api/

Switches:
-baseurl (optional)
starting URL
-token (optional)
auth token
-version (optional)
Version of the API

Testcases:
No testcase defined.

canvas::API method token (public)

 <instance of canvas::API[i]> token [ -grant_type grant_type ] \
    [ -scope scope ] [ -assertion assertion ] \
    [ -client_assertion_type client_assertion_type ] \
    [ -requested_token_use requested_token_use ]

Get bearer token (access token) from the /oauth2/v2.0/token endpoint. https://canvas.instructure.com/doc/api/file.oauth_endpoints.html#post-login-oauth2-token

Switches:
-grant_type (optional, defaults to "client_credentials")
-scope (optional)
-assertion (optional)
-client_assertion_type (optional, defaults to "urn:ietf:params:oauth:client-assertion-type:jwt-bearer")
-requested_token_use (optional)

Testcases:
No testcase defined.

canvas::API method account admins (public)

 <instance of canvas::API[i]> account admins [ -page page ] \
    [ -per_page per_page ] [ -max_entries max_entries ] account_id

Get a paginated list of the admins in the account. Details: https://canvas.instructure.com/doc/api/admins.html

Switches:
-page (optional, defaults to "1")
Return the nth page of the result set
-per_page (optional, defaults to "10")
Return this number of entries per page
-max_entries (optional)
perform potentially multiple requests until the requested number of entries can be returned.
Parameters:
account_id (required, integer)

Testcases:
No testcase defined.

canvas::API method account courses (public)

 <instance of canvas::API[i]> account courses \
    [ -with_enrollments with_enrollments ] \
    [ -enrollment_type enrollment_type ] [ -published published ] \
    [ -completed completed ] [ -blueprint blueprint ] \
    [ -blueprint_associated blueprint_associated ] \
    [ -by_teachers by_teachers ] [ -by_subaccounts by_subaccounts ] \
    [ -hide_enrollmentless_courses hide_enrollmentless_courses ] \
    [ -state state ] [ -enrollment_term_id enrollment_term_id ] \
    [ -search_term search_term ] [ -include include ] [ -sort sort ] \
    [ -order order ] [ -search_by search_by ] \
    [ -starts_before starts_before ] [ -ends_after ends_after ] \
    [ -homeroom homeroom ] [ -page page ] [ -per_page per_page ] \
    [ -max_entries max_entries ] account_id

Retrieve a paginated list of courses in this account. Details: https://canvas.instructure.com/doc/api/accounts.html

Switches:
-with_enrollments (optional)
If true, include only courses with at least one enrollment. If false, include only courses with no enrollments. If not present, do not filter on course enrollment status.
-enrollment_type (optional)
If set, only return courses that have at least one user enrolled in the course with one of the specified enrollment types. Allowed values: teacher, student, ta, observer, designer
-published (optional)
If true, include only published courses. If false, exclude published courses. If not present, do not filter on published status.
-completed (optional)
If true, include only completed courses (these may be in state 'completed', or their enrollment term may have ended). If false, exclude completed courses. If not present, do not filter on completed status.
-blueprint (optional)
If true, include only blueprint courses. If false, exclude them. If not present, do not filter on this basis.
-blueprint_associated (optional)
If true, include only courses that inherit content from a blueprint course. If false, exclude them. If not present, do not filter on this basis.
-by_teachers (optional)
List of User IDs of teachers; if supplied, include only courses taught by one of the referenced users.
-by_subaccounts (optional)
List of Account IDs; if supplied, include only courses associated with one of the referenced subaccounts.
-hide_enrollmentless_courses (optional)
If present, only return courses that have at least one enrollment. Equivalent to 'with_enrollments=true'; retained for compatibility.
-state (optional)
If set, only return courses that are in the given state(s). By default, all states but “deleted” are returned. Allowed values: created, claimed, available, completed, deleted, all.
-enrollment_term_id (optional)
If set, only includes courses from the specified term.
-search_term (optional)
If set, only includes courses from the specified term.
-include (optional)
List of extra values to be included. Allowed values: syllabus_body, term, course_progress, storage_quota_used_mb, total_students, teachers, account_name, concluded
-sort (optional)
The column to sort results by. Allowed values: course_name, sis_course_id, teacher, account_name
-order (optional)
the order to sort the given column by. Allowed values: asc, desc
-search_by (optional)
The filter to search by. “course” searches for course names, course codes, and SIS IDs. “teacher” searches for teacher names Allowed values: course, teacher
-starts_before (optional)
If set, only return courses that start before the value (inclusive) or their enrollment term starts before the value (inclusive) or both the course's start_at and the enrollment term's start_at are set to null. The value should be formatted as: yyyy-mm-dd or ISO 8601 YYYY-MM-DDTHH:MM:SSZ.
-ends_after (optional)
If set, only return courses that end after the value (inclusive) or their enrollment term ends after the value (inclusive) or both the course's end_at and the enrollment term's end_at are set to null. The value should be formatted as: yyyy-mm-dd or ISO 8601 YYYY-MM-DDTHH:MM:SSZ.
-homeroom (optional)
If set, only return homeroom courses.
-page (optional, defaults to "1")
Return the nth page of the result set
-per_page (optional, defaults to "10")
Return this number of entries per page
-max_entries (optional)
perform potentially multiple requests until the requested number of entries can be returned.
Parameters:
account_id (required, integer)

Testcases:
No testcase defined.

canvas::API method account get (public)

 <instance of canvas::API[i]> account get account_id

Retrieve information on an individual account, given by id or sis sis_account_id. Details: https://canvas.instructure.com/doc/api/accounts.html

Parameters:
account_id (required, integer)

Testcases:
No testcase defined.

canvas::API method account list (public)

 <instance of canvas::API[i]> account list [ -page page ] \
    [ -per_page per_page ] [ -max_entries max_entries ]

A paginated list of accounts that the current user can view or manage. Typically, students and even teachers will get an empty list in response, only account admins can view the accounts that they are in. Details: https://canvas.instructure.com/doc/api/accounts.html

Switches:
-page (optional, defaults to "1")
Return the nth page of the result set
-per_page (optional, defaults to "10")
Return this number of entries per page
-max_entries (optional)
perform potentially multiple requests until the requested number of entries can be returned.

Testcases:
No testcase defined.

canvas::API method account permissions (public)

 <instance of canvas::API[i]> account permissions \
    [ -permissions permissions ] account_id

Returns permission information for the calling user and the given account. You may use `self` as the account id to check permissions against the domain root account. The caller must have an account role or admin (teacher/TA/designer) enrollment in a course in the account. Details: https://canvas.instructure.com/doc/api/accounts.html

Switches:
-permissions (optional)
Parameters:
account_id (required, integer)

Testcases:
No testcase defined.

canvas::API method account settings (public)

 <instance of canvas::API[i]> account settings account_id

Returns all of the settings for the specified account as a JSON object. The caller must be an Account admin with the manage_account_settings permission. Details: https://canvas.instructure.com/doc/api/accounts.html

Parameters:
account_id (required, integer)

Testcases:
No testcase defined.

canvas::API method course activities (public)

 <instance of canvas::API[i]> course activities [ -page page ] \
    [ -per_page per_page ] [ -max_entries max_entries ] course_id

Returns the paginated Returns the current user's course-specific activity stream, paginated. Details: https://canvas.instructure.com/doc/api/courses.html

Switches:
-page (optional, defaults to "1")
Return the nth page of the result set
-per_page (optional, defaults to "10")
Return this number of entries per page
-max_entries (optional)
perform potentially multiple requests until the requested number of entries can be returned.
Parameters:
course_id (required, integer)

Testcases:
No testcase defined.

canvas::API method course todo (public)

 <instance of canvas::API[i]> course todo [ -page page ] \
    [ -per_page per_page ] [ -max_entries max_entries ] course_id

Returns a paginated list of the current user's course-specific todo items. Details: https://canvas.instructure.com/doc/api/courses.html

Switches:
-page (optional, defaults to "1")
Return the nth page of the result set
-per_page (optional, defaults to "10")
Return this number of entries per page
-max_entries (optional)
perform potentially multiple requests until the requested number of entries can be returned.
Parameters:
course_id (required, integer)

Testcases:
No testcase defined.

canvas::API method course users (public)

 <instance of canvas::API[i]> course users \
    [ -search_term search_term ] [ -sort sort ] \
    [ -enrollment_type enrollment_type ] \
    [ -enrollment_role_id enrollment_role_id ] [ -include include ] \
    [ -user_ids user_ids ] [ -enrollment_state enrollment_state ] \
    [ -page page ] [ -per_page per_page ] [ -max_entries max_entries ] \
    course_id

Returns the paginated list of users in this course. And optionally the user's enrollments in the course. Details: https://canvas.instructure.com/doc/api/courses.html

Switches:
-search_term (optional)
The partial name or full ID of the users to match and return in the results list.
-sort (optional)
When set, sort the results of the search based on the given Allowed values: username, last_login, email, sis_id
-enrollment_type (optional)
When set, only return users where the user is enrolled as this type. “student_view” implies include[]=test_student. This argument is ignored if enrollment_role is given. Allowed values: teacher, student, student_view, ta, observer, designer
-enrollment_role_id (optional)
When set, only return courses where the user is enrolled with the specified course-level role. This can be a role created with the Add Role API or a built_in role id with type 'StudentEnrollment', 'TeacherEnrollment', 'TaEnrollment', 'ObserverEnrollment', or 'DesignerEnrollment'.
-include (optional)
Optionally included content. Allowed values: enrollments, locked, avatar_url, test_student, bio, custom_links, current_grading_period_scores, uuid
-user_ids (optional)
If included, the course users set will only include users with IDs specified by the param.
-enrollment_state (optional)
When set, only return users where the enrollment workflow state is of one of the given types. “active” and “invited” enrollments are returned by default. Allowed values: active, invited, rejected, completed, inactive
-page (optional, defaults to "1")
Return the nth page of the result set
-per_page (optional, defaults to "10")
Return this number of entries per page
-max_entries (optional)
perform potentially multiple requests until the requested number of entries can be returned.
Parameters:
course_id (required, integer)

Testcases:
No testcase defined.
[ show source ]