You are building an access-control system for Stripe’s internal admin dashboard. Each employee has exactly one manager (except the CEO) and may be assigned zero or more roles. Roles themselves form a tree: every role except the root has a single parent role. An employee’s effective roles are the union of the roles explicitly assigned to them plus every ancestor role up to the root of the role tree. You will implement two operations: 1) addRole(employeeId, roleId) – assign a role to an employee (idempotent); 2) getRoles(employeeId) – return the complete set of role IDs that the employee possesses, including inherited ones. The system must be initialized with the company org chart (employee → manager mapping) and the role hierarchy (role → parent mapping). Both mappings are static after construction.